Praca w toku.
Żeby zmaksymalizować wydajność konieczne jest prawidłowe skonfigurowanie systemu Zabbix.
Uwagi ogólne do sprzętu:
Wiele z parametrów można tuningować, żeby uzyskać optymalną wydajność.
StartPollers
Zasada ogólna - wartość tego parametru powinna być najmniejsza jak tylko to możliwe. Każda dodatkowa instancja zabbix_server zwiększa wydajność zabierając zasoby, jednocześnie zwiększa się zrównoleglenie. Optymalna liczba instancji jest wtedy, gdy kolejki, średnio, zawierają najmniejszą liczbę parametrów (idealnie, 0 w dowolnym momencie). Wartość ta może być monitorowana przy pomocy testu wewnętrznego zabbix[queue].
Zobacz rozdział "Zobacz też" na końcu tej strony, żeby dowiedzieć się jak skonfigurować optymalną ilość procesów zabbix.
DebugLevel
Optymalną wartością jest 3.
DBSocket
Tylko MySQL. Rekomendujemy używanie DBSocket do łączenia się do bazy danych. Jest to najszybsza i najbezpieczniejsza metoda.
Jest to najprawdopodobniej najważniejsza część tuningu Zabbix. Zabbix silnie zależy od dostępności i wydajności silnika bazy danych.
Zabbix 2.2 zapoczątkował nową funkcjonalność - procesy zmieniają swoją linię poleceń, wyświetlając aktualną aktywność i znaczące statystyki, np.:
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]
Proces główny stanowi wyjątek. Zamiast bieżącej aktywności wyświetlana jest oryginalna linia poleceń. Pomaga to w odróżnieniu procesu na systemach z wieloma instancjami Zabbix.
Ta funkcjonalność nie jest dostępna na Microsoft Windows.
Jeżeli poziom logowania jest ustawiony na DebugLevel=4 aktywności te oraz komunikaty statystyczne zapisywane są również do pliku logu.
Na systemach Linux, do obserwowania jak działa Zabbix można wykorzystać polecenie ps
w połączeniu z poleceniem watch
. Na przykład, żeby zobaczyć aktywność procesu, można uruchomić polecenie ps
5 razy na sekundę:
Żeby zobaczyć tylko procesy proxy i agenta Zabbix:
Żeby zobaczyć historię procesów synchronizacji:
Polecenie ps
daje na wyjściu długi tekst (około 190 znaków), jako że niektóre komunikaty aktywności są długie. Jeżeli terminal obsługuje mniej niż 190 kolumn tekstu można spróbować
żeby wyświetlić tylko linie komend bez UID, PID, czasu startu itp.
Do obserwacji wydajności Zabbix można używać również polecenia top
. Naciśnięcie klawisza 'c' w top
pokazuje procesy z ich liniami komend. W naszych testach na Linuxie top
i atop
prawidłowo wyświetlały zmieniające się aktywności procesów Zabbix, ale htop
nie wyświetlał zmian aktywności.
Jeżeli nie zainstalowano polecenia watch
, podobny efekt można uzyskać przy pomocy
Jeżeli polecenie watch
nie jest dostępne, można spróbować
Domyślnie polecenie ps
nie wyświetla zmian aktywności. Jedną z opcji jest użycie /usr/ucb/ps
. Jeżeli nie zainstalowano polecenia watch
, okresową aktualizację listy procesów można wyświetlić przy pomocy
Na Solaris 11:
/usr/ucb/ps
domyślnie nie jest zainstalowany. Może byćkonieczne zainstalowanie pakietu ucb, np. pkg install compatibility/ucb
,sleep
dopuszcza nie tylko całe sekundy ale również ułamki sekund (np. sleep 0.2
).