Данный раздел в разработке.
Очень важно, чтобы система Zabbix была оптимизирована для получения максимальной производительности.
Типовые советы по выбору аппаратной конфигурации:
Можно оптимизировать многие параметры для получения оптимальной производительности.
StartPollers
Основное правило - использовать как можно меньшее значение. Каждый лишний процесс zabbix добавляет определенную нагрузку, В то же время, распараллеливание увеличивается. Оптимальное количество процессов достигается, когда очередь, в среднем, содержит минимальное количество параметров (идеально, 0 в любой момент времени). За этим значением можно следить, используя внутренний элемент данных zabbix[queue].
Смотрите раздел "смотрите также" внизу этой страницы, чтобы понять как настроить оптимальное количество zabbix процессов.
DebugLevel (Уровень журналирования)
Оптимальное значение 3.
DBSocket (Сокет базы данных)
Только для MySQL. Для соединения с базой данных рекомендуется использовать DBSocket. Это более быстрый и более защищенный путь.
Это возможно наиболее важная часть оптимизации Zabbix. Zabbix сильно зависит от доступности и производительности базы данных.
Проблемы связанные с производительностью веб-интерфейса можно диагностировать при помощи режима отладки веб-интерфейса.
Zabbix 2.2 внёс новую функцию - процессы отображают в командной строке текущую активность и значимую статистику, примерно так:
UID PID PPID C STIME TTY TIME CMD
zabbix22 4584 1 0 14:55 ? 00:00:00 zabbix_server -c /home/zabbix22/zabbix_server.conf
zabbix22 4587 4584 0 14:55 ? 00:00:00 zabbix_server: configuration syncer [synced configuration in 0.041169 sec, idle 60 sec]
zabbix22 4588 4584 0 14:55 ? 00:00:00 zabbix_server: db watchdog [synced alerts config in 0.018748 sec, idle 60 sec]
zabbix22 4608 4584 0 14:55 ? 00:00:00 zabbix_server: timer #1 [processed 3 triggers, 0 events in 0.007867 sec, 0 maint.periods in 0.005677 sec, idle 30 sec]
zabbix22 4609 4584 0 14:55 ? 00:00:00 zabbix_server: timer #2 [processed 2 triggers, 0 events in 0.004209 sec, idle 30 sec]
zabbix22 4637 4584 0 14:55 ? 00:00:01 zabbix_server: history syncer #4 [synced 35 items in 0.166198 sec, idle 5 sec]
zabbix22 4657 4584 0 14:55 ? 00:00:00 zabbix_server: vmware collector #1 [updated 0, removed 0 VMware services in 0.000004 sec, idle 5 sec]
zabbix22 4670 1 0 14:55 ? 00:00:00 zabbix_proxy -c /home/zabbix22/zabbix_proxy.conf
zabbix22 4673 4670 0 14:55 ? 00:00:00 zabbix_proxy: configuration syncer [synced config 15251 bytes in 0.111861 sec, idle 60 sec]
zabbix22 4674 4670 0 14:55 ? 00:00:00 zabbix_proxy: heartbeat sender [sending heartbeat message success in 0.013643 sec, idle 30 sec]
zabbix22 4688 4670 0 14:55 ? 00:00:00 zabbix_proxy: icmp pinger #1 [got 1 values in 1.811128 sec, idle 5 sec]
zabbix22 4690 4670 0 14:55 ? 00:00:00 zabbix_proxy: housekeeper [deleted 9870 records in 0.233491 sec, idle 3599 sec]
zabbix22 4701 4670 0 14:55 ? 00:00:08 zabbix_proxy: http poller #2 [got 1 values in 0.024105 sec, idle 1 sec]
zabbix22 4707 4670 0 14:55 ? 00:00:00 zabbix_proxy: history syncer #4 [synced 22 items in 0.008565 sec, idle 5 sec]
zabbix22 4738 1 0 14:55 ? 00:00:00 zabbix_agentd -c /home/zabbix22/zabbix_agentd.conf
zabbix22 4739 4738 0 14:55 ? 00:00:00 zabbix_agentd: collector [idle 1 sec]
zabbix22 4740 4738 0 14:55 ? 00:00:00 zabbix_agentd: listener #1 [waiting for connection]
zabbix22 4741 4738 0 14:55 ? 00:00:00 zabbix_agentd: listener #2 [processing request]
Основной процесс является исключением. Вместо текущей активности отображается изначальная командная строка. Такое поведение помогает разделять в системе процессы с несколькими экземплярами Zabbix.
Такая возможность не реализована на платформах Microsoft Windows.
Если уровень журналирования указан равным DebugLevel=4, подобные сообщения о активности и статистике также записываются в файл журнала.
В системах Linux команда ps
может использоваться с командой watch
для наблюдения, что делает Zabbix. Например, запуска команды ps
5 раз в секунду для наблюдения за активностью процессов:
Наблюдение только за процессами Zabbix прокси и агента:
Наблюдение только за процессами history syncer:
Команда ps
предоставляет широкий вывод (примерно 190 символов), который требуется для некоторых сообщений активности. Если ваш терминал имеет менее чем 190 символов для текста, вы можете попробовать следующий способ:
для отображения только полезной информации без UID, PID, времени старта и прочего.
Можно также использовать команду top
для наблюдения за производительностью Zabbix. Нажатие клавиши 'c' в команде top
отобразит процессы с их командами строками. В наших тестах в Linux top
и atop
отображают корректно изменения активности процессов Zabbix, но в htop
смена активности не отображалась.
Если команда watch
не установлена, подобный вывод можно получить следующим способом:
Если команда watch
не доступна, можно использовать следующий метод:
По умолчанию команда ps
не отображает изменения активности. Вместо этой команды можно использовать /usr/ucb/ps
. Если команда watch
не установлена, периодическое обновление списка процессов может выполнить следующим сособом:
В Solaris 11:
/usr/ucb/ps
по умолчанию не установлен. Вам возможно потребуется установить ucb пакет, т.е. pkg install compatibility/ucb
,sleep
принимает не только секунды, но также и дроби секунд (т.е. sleep 0.2
).