Out of memory или please increase CacheSize и poller в Zabbix

ZABBIX — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым.

Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle. Веб-интерфейс написан на PHP. ZABBIX поддерживает несколько видов мониторинга:

  • Simple checks — может проверять доступность и реакцию стандартных сервисов, таких как SMTP или HTTP, без установки какого-либо программного обеспечения на наблюдаемом хосте.
  • ZABBIX agent — может быть установлен на UNIX-подобных или Windows-хостах для получения данных о нагрузке процессора, использования сети, дисковом пространстве и т. д.
  • External check — выполнение внешних программ. ZABBIX также поддерживает мониторинг через SNMP.

Если Вы только недавно решили использовать Zabbix начали вносить оборудование, то быстрей всего очень скоро Вы столкнётесь с подобным:

zbx_mem_realloc(): out of memory (requested x bytes)
zbx_mem_realloc(): please increase CacheSize configuration parameter

Если Вы уже столкнулись с подобным, необходимо проделать следующие действия в конфигурационном файле

/etc/zabbix/zabbix-server.conf

Для начала изменим следующие пункты:

CacheSize=1024M
HistoryCacheSize=512M
TrendCacheSize=128M
HistoryTextCacheSize=512M
ValueCacheSize=256M

Изменим количество процессов опрашивающих различные системы:

StartPollers=20

# Стоит учесть накладные расходы по созданию новых процессов, слишком большое число процессов может загрузить систему

StartIPMIPollers=10

# Если вы используете опрос по IPMI

Тут следует сделать замечание относительно количества полеров. Каждый из них подключается к БД, и выставляя большое количество процессов скорее всего положит всю систему, т.к. БД имеет вполне ограниченное количество подключений.

Что такое poller в zabbix?

poller — это процесс который опрашивает агентов. Их много надо в двух случаях: большая сеть и мониторятся много недоступных ресурсов.

Дополнительные ошибки и пути решения

Zabbix poller processes more than 75% busy - 

Заходим в конфигурационный файл zabbix_server.conf и исправляем строчку:

StartPollers=20

Обычно 20-ти хватает.

Zabbix unreachable poller processes more than 75% busy - 

Заходим в конфигурационный файл zabbix_server.conf и исправляем строчку:

 
StartPollersUnreachable=20

Так же возможно что перестанет хватать подключений для СУБД, если вы видите в разделе Dashboard в некоторых блоках сообщение о проблеме с подключением к БД, то надо увеличивать лимит подключений.