Прочитано:
3 715
Часто случается, что дефолтные значения не всегда подходят для работы, в большинстве случаев они помогают начать работать, а уже потом из сложившейся ситуации сделать выводы и смотреть в сторону их изменения. Вот и сейчас мой сервер мониторинга за состоянием узлов — Zabbix порадовал меня сообщением, с первого взгляда пока для меня ничего не значащим. Последующее чтение документации показало, что по дефолту у меня в конфигурационном файле zabbix_server.conf значение параметра StartPingers равно единице:
ekzorchik@srv-mon:~$ sudo nano /etc/zabbix/zabbix_server.conf
# Mandatory: no
# Range: 0-1000
# Default:
# StartPingers=1
а вот шаблон Template ICMP Ping у меня применим к более чем одному хосту, когда хостов стало 8 штук, панель управления мониторингом zabbix вывело сообщение:
Zabbix discoverer processes more than 75% busy
На заметку: Данное сообщение означает, что процесс или процессы задействующие работу по нацеленному шаблону перегружены.
Для равномерного создания процессов, нужно параметр StartPingers увеличить к примеру до:
StartPingers = 5
Значение подбирается опытным путем и предсказать его заранее не представляется возможным. Изменяя данный параметр мы распределяем количество задействованных процессов входимых в шаблон Template ICMP Ping
По окончании изменений необходимо сделать перезапуск серверной части Zabbix:
ekzorchik@srv-mon:~$ sudo service zabbix-server restart
Также не лишним будет увеличить «Интервал обновления» данных задейстованных в определении доступности/не доступности узла поставленного на мониторинг. Делается это следующим образом:
http://IP&DNS/zabbix — Configuration — Templates — находим шаблон Template ICMP Ping — после в нем переходим к Items (Элемент Данных) и для каждого элемента:
- ICMP loss
- ICMP Ping
- ICMP response time
корректируем значение в параметре: Update interval (in sec) c 60 секунд к примеру до 180 секунд, т. е. Вместо одной минуты следующих запрос проводить через три минуты на предмет проверки.
Этими действиями мы тюнингуем Zabbix сервер с целью оптимизированного съема/анализа узлов и при этом не нарушая работы Zabbix сервера вызванного повышенной нагрузкой дефолтных параметров.
Пока вышеприведенные значения в моем случае успешно справляются, также добавил на мониторинг еще 14 узлов базовых станции, таких как Grandstream GP715, D-Link DVG-5008SG, D-Link DVG-2024S и результат Zabbix сервер не испытывает проблем. Как что-то у меня будет не так с Zabbix сервер все это и многое другое будет оформлено в виде пошаговой заметки и опубликовано на моем блоге, а пока все. С уважением, автор блога — ekzorchik.
I am monitoring certain FreeIPA servers that are normally forking <= 460 process (roughly). This generates the «Too many processes on {HOST.NAME}» as part of the «Template OS Linux» template.
The Expression that does the check is looking for processes greater than 300:
{Template OS Linux:proc.num[].avg(5m)}>300
What is the best way to over ride the value in another template I created particularly for these class of servers that is also inheriting «Template OS Linux» and «Template IPA Servers?»
Richlv
3,8621 gold badge16 silver badges20 bronze badges
asked Jul 6, 2016 at 21:21
Probably user macros. You would add a user macro in the original template:
{$TRIGGER_THRESHOLD_PROCESSES_RUNNING}
And you would modify the trigger expression like this :
{Template OS Linux:proc.num[].avg(5m)}>{$TRIGGER_THRESHOLD_PROCESSES_RUNNING}
Then you could define a user macro with the same name on the lower level template — or even individual hosts — with a different value.
The user macro name is up to you, as long as it follows the syntax rules.
answered Jul 6, 2016 at 21:47
RichlvRichlv
3,8621 gold badge16 silver badges20 bronze badges
If you consistently have more than 300 processes on all the systems that you monitor, you can also just edit the original template. As an example, 450 is a better value for my specific use case since I always have at least 160+ processes enclosed in brackets that don’t reflect what I’m actually trying to monitor — user space. You may want to use a number more appropriate to your environment than my example.
I changed this value by going to the original template, which you can find from Configuration —> Templates —> Template OS Linux —> Triggers —> Too many processes on {HOST.NAME}, and then changing the value from 300 to a more reasonable value for your specific need.
One thing to note is that not all servers in an environment are the same, and if your environment has multiple different types of servers, the user macros solution is going to be far superior.
answered Sep 12, 2017 at 20:37
На чтение 3 мин Просмотров 2.7к. Опубликовано 1 ноября, 2021 Обновлено 1 ноября, 2021
Стандартные настройки в zabbix, не всегда хорошо работают и их необходимо тюнить под свои нужды. Я собрал в данной статье, основные параметры для оптимизации. Возможно, — это не все и вы знаете больше, но я постараюсь максимизировать.
Содержание
- Настройка кеша
- Zabbix discoverer processes more than 75% busy
- Zabbix icmp pinger processes more than 75% busy
- Zabbix poller processes more than 75% busy
- Zabbix housekeeper processes more than 75% busy
Настройка кеша
Для оптимизации заббикс сервера, стоит увеличить размер кеша, для этого — открываем:
# vim /etc/zabbix/zabbix_server.conf
Находим строку «CacheSize» и увеличиваем его.
### Option: CacheSize
# Size of configuration cache, in bytes.
# Shared memory size for storing host, item and trigger data.
#
# Mandatory: no
# Range: 128K-8G
# Default:
CacheSize=256M
Я увеличил до 256M. При надобности, можно добавить.
Zabbix discoverer processes more than 75% busy
Недавно получил алерт в заббиксе:
Zabbix discoverer processes more than 75% busy
Это можно исправить, откроем zabbix_server.conf конфиг-файл:
# vim /etc/zabbix/zabbix_server.conf
Ищем строку с опцией «StartDiscoverers» и увеличиваем данный параметр:
### Option: StartDiscoverers
# Number of pre-forked instances of discoverers.
#
# Mandatory: no
# Range: 0-250
# Default:
StartDiscoverers=5
Я, опцию StartDiscoverers увеличил до 5. На этом настройка заканчивается, нужно сохранить конфиг и перезагрузить zabbix сервер:
# service zabbix-server resta
Можно увидеть наглядный пример:
Если после добавления хостов ( с разными подсетями) вы увидите что снова сработал этот триггер, то нужно увеличить StartDiscoverers.
Zabbix icmp pinger processes more than 75% busy
Недавно получил алерт в заббиксе:
Zabbix icmp pinger processes more than 75% busy
Данное сообщение, говорит — что процесс(ы) выполняющие ping по хостам, перегружены.
Это можно исправить, откроем zabbix_server.conf конфиг-файл:
# vim /etc/zabbix/zabbix_server.conf
Ищем строку с опцией «StartPingers» и увеличиваем данный параметр:
### Option: StartPingers
# Number of pre-forked instances of ICMP pingers.
#
# Mandatory: no
# Range: 0-1000
# Default:
StartPingers=5
Я, опцию StartPingers увеличил до 5, тем самым — я увеличил количество процессов выполняющих ICMP Ping.
На этом настройка заканчивается, нужно сохранить конфиг и перезагрузить zabbix сервер:
# service zabbix-server restart
Zabbix poller processes more than 75% busy
poller — это процесс который опрашивает агентов.
Данный параметр стоит увеличивать в 2- случаях:
- Большая сеть
- Есть много недоступных ресурсов и они мониторятся.
Как исправить?
Это можно исправить, откроем zabbix_server.conf конфиг-файл:
# vim /etc/zabbix/zabbix_server.conf
Ищем строку с опцией «StartPollers» и увеличиваем данный параметр:
### Option: StartPollers
# Number of pre-forked instances of pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
StartPollers=5
Я установил данный параметр в 5. Если очень будет худо, то увеличиваем его до 20. Ничто не приходит бесследно, увеличение процессов ведет к увеличение потребления ресурсов.
После этого, вы можете получить:
Zabbix unreachable poller processes more than 75% busy
Если видите у себя данное сообщение ( алерт, сработанный триггер), открываем конфиг:
# vim /etc/zabbix/zabbix_server.conf
Ищем строку с опцией «StartPollersUnreachable» и увеличиваем данный параметр:
### Option: StartPollersUnreachable
# Number of pre-forked instances of pollers for unreachable hosts (including IPMI and Java).
# At least one poller for unreachable hosts must be running if regular, IPMI or Java pollers
# are started.
#
# Mandatory: no
# Range: 0-1000
# Default:
# StartPollersUnreachable=1
PS: У меня данный параметр используется по умолчанию и я его не трогал ( не было ошибок).
Имеется вероятность того, что перестанет хватать коннекщенов для БД, то надо увеличивать лимит подключений.
Zabbix housekeeper processes more than 75% busy
Это можно исправить, откроем zabbix_server.conf конфиг-файл:
# vim /etc/zabbix/zabbix_server.conf
И приводим к виду:
HousekeepingFrequency=1
MaxHousekeeperDelete=100
Сохраняем файл и перезагружаем zabbix:
# service zabbix-server restart
“ZABBIX poller processes more than 75% busy” alert problem solved
Although there are various monitoring alarms in ZABBIX, the most frequently encountered ones are memory exhaustion, network congestion, IO slow and “ZABBIX poller processes more than 75% busy”. At the beginning, I didn’t care much because it didn’t affect the use and lasted for a while. With the increase of the database, ZABBIX consumes more and more memory. Poller processes are busy every day, and finally ZABBIX has to be moved to another server.
But this has not completely solved the problem, and the alarm is still coming for several days. When the email function of ZABBIX alert is turned on, this kind of email is frequently received. There are many problems causing busy polling. It is possible that MySQL supporting ZABBIX is stuck, io of ZABBIX server is stuck, and ZABBIX process is not enough to allocate memory. A simple way is to increase the number of processes initialized at the start of ZABBIX server, which directly increases the polling load and proportionally reduces the busy situation.
The method of adding initialization process is very simple. Edit the configuration file/ZABBIX of ZABBIX server_ server.conf , find the paragraph to configure startpollers:
one two three four five six seven |
### Option: StartPollers # Number of pre-forked instances of pollers. # # Mandatory: no # Range: 0-1000 # Default: # StartPollers=5 |
Cancel the comment of “startpollers = line” or add it directly after:
How many startpollers are changed depends on the performance of the server and the number of monitors. Kaijia did not encounter any alerts after setting startpollers to 12. If there is enough memory, it can be set higher. Run after setup:
one |
servicezabbix-serverrestart |
Restart ZABBIX. Of course, another way to reduce the load of ZABBIX server as a whole is to restart ZABBIX regularly. This method can be implemented with cron
Add a plan in the cron editor:
one |
@dailyservicezabbix-serverrestart&>/dev/null2&>&1 |
This plan will automatically restart ZABBIX service every day to end the zombie process and clean up memory. At present, Kaijia has not encountered the problem of “ZABBIX poller processes more than 75% busy” again after configuring ZABBIX in this way.
or/ZABBIX_ server.conf
Most likely, you have this setting:
startdiscoverers = 1 can also become larger
continue to increase the number of instances discovered by pre forced.
If you decide not to use the discovery function, you can set the parameters:
startdiscoverers = 0