Диагностика работы Zabbix
Диагностика работы сервера и агента Zabbix. Самые простые способы найти причины неработоспособности.
Проблемы, проблемы, проблемы…
В предыдущей статье мы рассматривали процесс установки Zabbix. Сегодня мы коснемся основных способов диагностики работы сервера и агента Zabbix, а также решение некоторых возникающих проблем.
Ничего сверхестественного. Только базовая информация, которая дает представление о том куда нужно двигаться при наличии проблем в работе мониторинга на базе Zabbix.
Как себя чувствует сервер
Бывает, что на сервере возникают какие-либо проблемы, связанные как с самой службой Zabbix-сервера, так и с его взаимодействием с агентами или связанными компонентами. Первый источник информации, который может помочь в поиске причин проблем — это логи Zabbix-сервера. Еще одним важным источником данных может быть сама система мониторинга, которая мониторит сама себя.
Логи наше все
Логи по традиции мира *.nix хранятся в текстовых файлах и располагаются в каталоге ‘/var/log/zabbix’.
В этом же каталоге можно увидеть файлы логов Zabbix-агента. Чаще всего на сервере Zabbix для отслеживания работы сервера установлен агент. Да, Zabbix-сервер следит сам за собой.
Прочитать содержимое можно стандартными для Linux способами:
- Смотрим файл логов с возможностью прокрутки.
- Просмотр файла логов в реальном времени.
- Смотрим первые записи
- Смотрим последние события
- Получаем только записи с ошибками
В общем, это самые простые способы прочитать содержимое файла логов. Если Вы знаете что нужно искать, то grep Вам в помощью. В противном случае в бой вступает tail, но можно выполнять анализ и более сложными способами.
Вот, например, вывод последних 10 событий из файла логов.
Здесь мы видим события процесса housekeeper, который отвечает за удаление устаревшей информации из базы данных мониторинга. Далее идут более интересные события об ошибке связи с хостом “YY-COMP”, а также события последующего восстановления соединения с агентом этого хоста.
В любом случае, основным источником данных о том, что и как делает процесс Zabbix-сервера, есть ли у него проблемы и другую связанную с ним информацию можно найти в его логах. Метод “тыка” тоже работает, но эффективнее просто посмотреть в файл лога событий.
Мониторинг системы мониторинга
Благодаря тому, что Zabbix позволяет собирает метрики о состоянии самого себя, мы можем отслеживать некоторые проблемы с его помощью. После установки сервера, по умолчанию в списке хостов содержится сам сервер с шаблоном “Template App Zabbix Server”.
Этот шаблон является ключевым для диагностики работы Zabbix, т.к. содержит множество полезных метрик и триггеров на критичные события.

Например, если Вы увидите уведомления о проблеме “Zabbix poller processes more than 75% busy” от одного из триггеров этого шаблона, то идем в официальную документацию и читаем что это. Можно увидеть, что проблему можно решить изменив параметр “StartPollers” в файле конфигурации Zabbix-сервера.
Вообще, оптимизация настроек этой системы мониторинга отдельная тема, но должно быть понятно, что следить за сервером Zabbix является неотъемлемой частью мониторинга. Иначе как Вы узнаете, что пора актуализировать настройки сервера или проапгрейдить железо?
Все в очередь
Кроме логов и мониторинга Zabbix-сервера есть еще один важный показатель, демонстрирующий общую картину производительности процессов системы мониторинга. Причем помогает диагностировать проблемы не только в работе сервера, но и агентов Zabbix.
Речь идет про очередь обработки элементов данных, которая отлично описана в официальной документации. На следующем скриншоте показана идеальная картина, когда никаких очередей нет и все элементы обрабатываются за минимальное время.

Самыми распространёнными причинами увеличения очереди являются:
- Агент сбора данных стал недоступен и не присылает данные / не может ответить на запрос.
- У сервера не хватает ресурсов для выполнения обработки присланных элементов данных или опроса хостов (зависит от типа агента — активный или пассивный).
В случаях, когда Вы будете наблюдать большие значения очередей с периодом обработки более 1 минуты, то стоит насторожиться и начать диагностику сервера и агентов.
Вы всегда можете посмотреть элементы очереди детально, чтобы понять, где именно появилась проблема. Плюс ко всему, очередь обработки сообщений можно добавить в метрики сбора данных мониторинга и привязать на них триггеры. Таким образом, очереди позволяют отслеживать общее состояние как сервера Zabbix, так и состояние всего мониторинга с учетом агентов.
База данных требует внимания
Zabbix хранит данные метрик в одной из поддерживаемых СУБД: MySQL или PostgreSQL. Для оптимальной производительности обязательно нужно выполнить их настройку. Я предпочитаю использовать PostgreSQL, но тут все полностью зависит от задач.
Касательно PostgreSQL нужно обязательно адаптировать ее настройки под ресурсы сервера, т.к. по умолчанию там установлены максимальные ограничения на используемую память и другие ресурсы. Рекомендую зайти на сайт PGTune, который поможет подобрать параметры СУБД под Ваш сервер. Просто берете и переносите их в свой файл конфигурации “postgresql.conf”.
Конечно, со временем может понадобиться адаптировать эти параметры под свою нагрузку и задачи. Подробнее о настройках Вы можете прочитать здесь.

То же самое относится и к MySQL. Вы можете обратиться к официальной документации, чтобы узнать больше.
Главное помнить, что настройки сервера баз данных являются ключевым фактором для достижения высокой производительности всей системы мониторинга.
Агент еще жив
Основные способы диагностики сервера Zabbix мы рассмотрели. А что на счет агентов на хостах, которые входят в мониторинг?
Выше уже было упомянуто, что у агента есть свои логи. Именно они и являются основным источником данных для диагностики его работы. Если мы говорим о *.nix системах, то обычно файл лога находится в “/var/log/zabbix/zabbix_agent.log”. Вот, например, его содержимое при старте процесса агента.
Это идеальный вариант, когда агент был запущен и никаких проблем с его работой не наблюдается. Но там могут быть и ошибки или информация о проблемах связи. Например, вот это событие говорит о том, что что-то блокирует доступ агента к серверу Zabbix.
Может не открыт порт на сервере? Или сервер недоступен? Или ошибка в конфигурационном файле агента?
Аналогичный файл лога есть для агентов всех поддерживаемых операционных систем, в том числе и Windows. Его расположение можно уточнить в самом конфигурационном файле агента в параметре “LogFile”. Для Windows это может быть каталог самого агента, например:
В любом случае, если у Вас проблемы в работе агента, то первым делом идем в его логи и смотрим что вообще происходит.
Решение некоторых проблем
Рассмотрим решение некоторых проблем в работе сервера и агента. Это ни в коем случае не полноценный мануал, а скорее пара заметок. Небольшая порция “траблшутинга”. Более развернутую информацию Вы можете найти в официальной Wiki.
Немного опечатались
Иногда бывает так, что порты и все доступы настроены, агент установлен, ошибок в логах нет, но метрики не приходят или приходят не полностью. В самом Zabbix хост “горит зеленым” и непонятно, что вообще происходит.

Можно потратить много времени на разбор ситуации, а причина окажется очень проста — ошибка в файле конфигурации из-за “копипасты”. То есть конфигурацию скопировали, но в файле не поменяли параметр “Hostname”. В итоге сервер Zabbix говорит, что агент доступен, но сам агент присылает данные для другого хоста. Вот так выглядит список дисков для проблемной машины. Нет никакой информации о дисках, но при этом общие показатели агент все же передал.

Как только мы исправим в файле конфигурации параметр “Hostname” на нужный (в нашем случае это “SRV-SQL-01-VM”), то картина сразу же изменится. В списке появятся все диски сервера.

Данные могут появиться не сразу, т.к. правила обнаружения выполняются не так часто, как получение обычных метрик, но Вы можете запустить их вручную в настройках хоста.
Копипаст — зло! Будьте осторожны!
Ребут и агента нет
Бывают случаи, когда агент был успешно установлен и настроен на хосте, мониторинг работает как надо. НО! При очередном запланированном перезапуске сервера (хоста) Zabbix-агент не смог запуститься.
Причин тому может быть несколько:
- Агент запускается от доменной учетной записи, но на момент старта сервера связи с доменом не оказалось.
- В момент запуска агент пытался запуститься, когда еще не “поднялся” доступ к сети.
При этом в файле лога агента может не быть какой-либо полезной информации, но она есть в системных журналах ОС. Чаще всего это поведение встречал в ОС Windows.
Решение достаточно простое: нужно установить для службы Windows режим запуска “Автоматически (отложенный запуск)”. В большинстве случаев проблема будет решена.

Быстро и просто!
Особые проблемы со счетчиками
Особой проблемой, которая встречается не очень часто, бывают проблемы со счетчиками производительности Windows. После настройки мониторинга на сервере можно увидеть для хоста элементы данных со статусом “Не поддерживается”. При этом все они получаются через показатели производительности Windows. Обратившись к логам агента Zabbix можно увидеть следующее.
При этом для хоста у элементов данных будет такая ошибка.
Проблема в некорректном списке доступных счетчиков производительности Windows на хосте с агентом, то есть на машине, которую мы собираемся мониторить. Можно проверить наличие нужного счетчика через “Монитор производительности” (perfmon.exe) или через ветку реестра:
Если нужного счетчика нет, то можно попытаться перестроить все счетчики ОС командой:
В большинстве случаев это помогает. Если остаются проблемы со счетчиками производительности сторонних приложений, то нужно изучить документацию по этим счетчикам. Например, для Microsoft SQL Server можно отдельно восстановить счетчики из поставляемых настроек. Подробнее можно узнать здесь.
Счетчики производительности для мониторинга Windows — отличный инструмент. И его, конечно же, нужно использовать.
Таймаут выполнения скриптов
Еще небольшой ошибкой может быть ситуация, когда на сервер не поступают данные по каким-либо элементам данных, а в логах агента можно увидеть ошибки вида:
Так происходит, поскольку выполняемый скрипт не укладывается в заданное время выполнения. Время задается также в конфигурации агента Zabbix и по умолчанию составляет 3 секунды.
Имеется три основных варианта решения:
- Увеличить таймаут до подходящего значения. Например, до 30 секунд:
Второй вариант — разобраться в причинах долгого выполнения и попытаться их исправить. Конечно, если это возможно.
Отказаться от сбора этих метрик 🙂
В любом случае, посмотрите почему скрипт может выполняться дольше, чем запланировано. Только после этого меняйте настройки.
Продолжение следует
Это была еще одна небольшая публикация по теме мониторинга с помощью Zabbix. В следующих статьях мы поговорим об обновлении Zabbix с версии 4.0 на 5.0, создадим свой шаблон для сбора метрик и рассмотрим некоторые особенности этого процесса, настроим уведомления в Telegram-канал, а также получении данных с Prometheus и визуализации данных в Grafana. И, конечно же, оптимизация производительности сервера мониторинга Zabbix!
Будьте на связи 🙂
Будьте в курсе
Создание материалов будет продолжаться. Хотите быть в курсе последних обновлений? Подписывайтесь на канал.
По любым вопросам пишите на электронную почту. Адрес в самом низу страницы.
Zabbix server is not running
Cannot execute script.
• Connection to Zabbix server “localhost” refused. Possible reasons:
• 1. Incorrect server IP/DNS in the “zabbix.conf.php”;
• 2. Security environment (for example, SELinux) is blocking the connection;
• 3. Zabbix server daemon not running;
• 4. Firewall is blocking TCP connection.
• Connection refused

Проверяем запущен ли zabbix сервер
Делаем бекап лог-файла, очищаем и перезапускаем сервер и опять проверяем логи.
Из логов заслуживаем внимание несколько строк:
проверяем конфигурационный файл забикс сервера
Конечно стоит посмотреть графики использования кеша и на основании их уже сделать выводы на сколько стоит увеличить. Но так как я практически не ограничен в оперативной памяти, указал сразу 512M
Zabbix server is not running: the information displayed may not be current
The error says: Zabbix server is not running: the information displayed may not be current.
Any idea why is this happening ll of a sudden and out of the blue? I restarted the machine — which should automatically restore the zabbix server upon startup — but it’s still not running.
I also researched for a startup or restart command but true to form with zabbix helpful, clear documentation is non-existent.
MySQL is running normally. I’m able to select , insert into , whatever I want.
Doing /etc/init.d/zabbix-server status results in * zabbix_server is not running
The last entry in zabbix_server.log is Zabbix Server stopped. Zabbix 2.2.9 (revision 52686).
Doing sudo /etc/init.d/zabbix-server start results in * Starting Zabbix server zabbix_server but the status is still not running and the log file doesn’t have any new entries.
24 Answers 24
just get into the zabbix.conf.php
just change the ip address you can resolve the error
Zabbix server is not running: the information displayed may not be current
After that restart the zabbix server
To verify go to Dashboard Administration -> queue there you see data
i resolved my error like this works fine for me.
![]()
To solve the problem zabbix server is not running you have to :
First — Check that all of the database parameters in zabbix.conf.php ( /etc/zabbix/web/zabbix.conf.php) and zabbix_server.conf ( /etc/zabbix/zabbix_server.conf) to be the same. Including:
• DBHost
• DBName
• DBUser
• DBPassword
Second- Change SElinux parameters:
After all, restart all services:
Edit this file: sudo nano /etc/default/zabbix-server
Adjust the START property to yes :
Then try to run Zabbix again: sudo service zabbix-server start
![]()
This may happen because of the old and new IP address I have faced same issue which was solve by below method:
then restart zabbix server
![]()
I was using a special character in my DB password — wrapping the DBPassword option in /etc/zabbix/zabbix_server.conf and doing sudo service zabbix-server restart got me back up and running.
Not Working DBPassword=MyString?
Working DBPassword=’MyString?’
Solution might be this simple:
Remove "#" in front of DBPassword=YourPassword (will change from blue to grey)
Ctrl x (Y to save and press enter to exit)
Now you can refresh your browser running ZABBIX. If not, you will have to do the same steps for CacheSize=32M
You do not have to change anything in /etc/zabbix/web/zabbix.conf.php (localhost is fine)
When editing anything, remember "#" in front of line means invisible to linux.
As Zabbix Senior Instructor and Consultant Hernandes Martins says in his "Zabbix server is not running what to do?" blog post:
This is the first step that should be checked regardless of the situation, always view the logs, from the moment the error message appeared in the zabbix web interface always view the log.
By following his advice I could be able to identify the cause of the issue with my Zabbix server, and then apply the solution related to the specific problem.
In my case, as I’ve commented in the page:
The problem in my server was of "4. Resource Allocation Issues". Just like you wrote above, Zabbix was showing out of memory errors on the log when trying to start the server.
After increasing the value of parameter CacheSize I tried to restart the service, but it didn’t respond. So, I ended up restarting the whole machine. Fortunately, in the end it resolved the problem for good.
1 Server
Zabbix server is the central process of Zabbix software.
The server performs the polling and trapping of data, it calculates triggers, sends notifications to users. It is the central component to which Zabbix agents and proxies report data on availability and integrity of systems. The server can itself remotely check networked services (such as web servers and mail servers) using simple service checks.
The server is the central repository in which all configuration, statistical and operational data is stored, and it is the entity in Zabbix that will actively alert administrators when problems arise in any of the monitored systems.
The functioning of a basic Zabbix server is broken into three distinct components; they are: Zabbix server, web frontend and database storage.
All of the configuration information for Zabbix is stored in the database, which both the server and the web frontend interact with. For example, when you create a new item using the web frontend (or API) it is added to the items table in the database. Then, about once a minute Zabbix server will query the items table for a list of the items which are active that is then stored in a cache within the Zabbix server. This is why it can take up to two minutes for any changes made in Zabbix frontend to show up in the latest data section.
Running server
If installed as package
Zabbix server runs as a daemon process. The server can be started by executing:
This will work on most of GNU/Linux systems. On other systems you may need to run:
Similarly, for stopping/restarting/viewing status, use the following commands:
Start up manually
If the above does not work you have to start it manually. Find the path to the zabbix_server binary and execute:
You can use the following command line parameters with Zabbix server:
Examples of running Zabbix server with command line parameters:
Runtime control
Runtime control options:
| Option | Description | Target |
|---|---|---|
| config_cache_reload | Reload configuration cache. Ignored if cache is being currently loaded. | |
| diaginfo[=<target>] | Gather diagnostic information in the server log file. | historycache — history cache statistics valuecache — value cache statistics preprocessing — preprocessing manager statistics alerting — alert manager statistics lld — LLD manager statistics locks — list of mutexes (is empty on BSD systems) connector — statistics for connectors with the largest queue |
| ha_status | Log high availability (HA) cluster status. | |
| ha_remove_node=target | Remove the high availability (HA) node specified by its name or ID. Note that active/standby nodes cannot be removed. |
target — name or ID of the node (can be obtained by running ha_status) |
| ha_set_failover_delay=delay | Set high availability (HA) failover delay. Time suffixes are supported, e.g. 10s, 1m. |
|
| proxy_config_cache_reload[=<target>] | Reload proxy configuration cache. | target — comma-delimited list of proxy names If no target is specified, reload configuration for all proxies |
| secrets_reload | Reload secrets from Vault. | |
| service_cache_reload | Reload the service manager cache. | |
| snmp_cache_reload | Reload SNMP cache, clear the SNMP properties (engine time, engine boots, engine id, credentials) for all hosts. | |
| housekeeper_execute | Start the housekeeping procedure. Ignored if the housekeeping procedure is currently in progress. | |
| trigger_housekeeper_execute | Start the trigger housekeeping procedure. Ignored if the trigger housekeeping procedure is currently in progress. | |
| log_level_increase[=<target>] | Increase log level, affects all processes if target is not specified. Not supported on **BSD* systems. |
process type — All processes of specified type (e.g., poller) See all server process types. process type,N — Process type and number (e.g., poller,3) pid — Process identifier (1 to 65535). For larger values specify target as ‘process type,N’. |
| log_level_decrease[=<target>] | Decrease log level, affects all processes if target is not specified. Not supported on **BSD* systems. |
|
| prof_enable[=<target>] | Enable profiling. Affects all processes if target is not specified. Enabled profiling provides details of all rwlocks/mutexes by function name. |
process type — All processes of specified type (e.g. history syncer) Supported process types as profiling targets: alerter, alert manager, availability manager, configuration syncer, discoverer, escalator, history poller, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, lld manager, lld worker, odbc poller, poller, preprocessing manager, preprocessing worker, proxy poller, self-monitoring, service manager, snmp trapper, task manager, timer, trapper, unreachable poller, vmware collector process type,N — Process type and number (e.g., history syncer,1) pid — Process identifier (1 to 65535). For larger values specify target as ‘process type,N’. scope — rwlock , mutex , processing can be used with the process type and number (e.g., history syncer,1,processing) or all processes of type (e.g., history syncer,rwlock) |
| prof_disable[=<target>] | Disable profiling. Affects all processes if target is not specified. |
process type — All processes of specified type (e.g. history syncer) Supported process types as profiling targets: see prof_enable process type,N — Process type and number (e.g., history syncer,1) pid — Process identifier (1 to 65535). For larger values specify target as ‘process type,N’. |
Example of using runtime control to reload the server configuration cache:
Examples of using runtime control to reload the proxy configuration:
Examples of using runtime control to gather diagnostic information:
Example of using runtime control to reload the SNMP cache:
Example of using runtime control to trigger execution of housekeeper:
Examples of using runtime control to change log level:
Example of setting the HA failover delay to the minimum of 10 seconds:
Process user
Zabbix server is designed to run as a non-root user. It will run as whatever non-root user it is started as. So you can run server as any non-root user without any issues.
If you will try to run it as ‘root’, it will switch to a hardcoded ‘zabbix’ user, which must be present on your system. You can only run server as ‘root’ if you modify the ‘AllowRoot’ parameter in the server configuration file accordingly.
If Zabbix server and agent are run on the same machine it is recommended to use a different user for running the server than for running the agent. Otherwise, if both are run as the same user, the agent can access the server configuration file and any Admin level user in Zabbix can quite easily retrieve, for example, the database password.
Configuration file
See the configuration file options for details on configuring zabbix_server.
Start-up scripts
The scripts are used to automatically start/stop Zabbix processes during system’s start-up/shutdown. The scripts are located under directory misc/init.d.
Server process types
- alert manager — alert queue manager
- alert syncer — alert DB writer
- alerter — process for sending notifications
- availability manager — process for host availability updates
- configuration syncer — process for managing in-memory cache of configuration data
- connector manager — manager process for connectors
- connector worker — process for handling requests from the connector manager
- discoverer — process for discovery of devices
- escalator — process for escalation of actions
- history poller — process for handling calculated checks requiring a database connection
- history syncer — history DB writer
- housekeeper — process for removal of old historical data
- http poller — web monitoring poller
- icmp pinger — poller for icmpping checks
- ipmi manager — IPMI poller manager
- ipmi poller — poller for IPMI checks
- java poller — poller for Java checks
- lld manager — manager process of low-level discovery tasks
- lld worker — worker process of low-level discovery tasks
- odbc poller — poller for ODBC checks
- poller — normal poller for passive checks
- preprocessing manager — manager of preprocessing tasks
- preprocessing worker — process for data preprocessing
- problem housekeeper — process for removing problems of deleted triggers
- proxy poller — poller for passive proxies
- report manager — manager of scheduled report generation tasks
- report writer — process for generating scheduled reports
- self-monitoring — process for collecting internal server statistics
- snmp trapper — trapper for SNMP traps
- task manager — process for remote execution of tasks requested by other components (e.g. close problem, acknowledge problem, check item value now, remote command functionality)
- timer — timer for processing maintenances
- trapper — trapper for active checks, traps, proxy communication
- unreachable poller — poller for unreachable devices
- vmware collector — VMware data collector responsible for data gathering from VMware services
The server log file can be used to observe these process types.
Various types of Zabbix server processes can be monitored using the zabbix[process,<type>,<mode>,<state>] internal item.
Supported platforms
Due to the security requirements and mission-critical nature of server operation, UNIX is the only operating system that can consistently deliver the necessary performance, fault tolerance and resilience. Zabbix operates on market leading versions.
Zabbix server is tested on the following platforms:
- Linux
- Solaris
- AIX
- HP-UX
- Mac OS X
- FreeBSD
- OpenBSD
- NetBSD
- SCO Open Server
- Tru64/OSF1
Zabbix may work on other Unix-like operating systems as well.
Locale
Note that the server requires a UTF-8 locale so that some textual items can be interpreted correctly. Most modern Unix-like systems have a UTF-8 locale as default, however, there are some systems where that may need to be set specifically.