Как проверить запущен ли zabbix сервер
Перейти к содержимому

Как проверить запущен ли zabbix сервер

  • автор:

Диагностика работы Zabbix

Диагностика работы сервера и агента Zabbix. Самые простые способы найти причины неработоспособности.

Проблемы, проблемы, проблемы…

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

Ничего сверхестественного. Только базовая информация, которая дает представление о том куда нужно двигаться при наличии проблем в работе мониторинга на базе Zabbix.

Как себя чувствует сервер

Бывает, что на сервере возникают какие-либо проблемы, связанные как с самой службой Zabbix-сервера, так и с его взаимодействием с агентами или связанными компонентами. Первый источник информации, который может помочь в поиске причин проблем — это логи Zabbix-сервера. Еще одним важным источником данных может быть сама система мониторинга, которая мониторит сама себя.

Логи наше все

Логи по традиции мира *.nix хранятся в текстовых файлах и располагаются в каталоге ‘/var/log/zabbix’.

[ypermitin@zabbix zabbix]$ ls zabbix_agentd.log zabbix_agentd.log-20201011 zabbix_server.log-20201004.gz zabbix_agentd.log-20201004.gz zabbix_server.log zabbix_server.log-20201011 

В этом же каталоге можно увидеть файлы логов Zabbix-агента. Чаще всего на сервере Zabbix для отслеживания работы сервера установлен агент. Да, Zabbix-сервер следит сам за собой.

Прочитать содержимое можно стандартными для Linux способами:

  • Смотрим файл логов с возможностью прокрутки.
less /var/log/zabbix/zabbix_server.log 
  • Просмотр файла логов в реальном времени.
tail -f /var/log/zabbix/zabbix_server.log 
  • Смотрим первые записи
head /var/log/zabbix/zabbix_server.log 
  • Смотрим последние события
tail -n 30 /var/log/zabbix/zabbix_server.log 
  • Получаем только записи с ошибками
grep -i error /var/log/zabbix/zabbix_server.log 

В общем, это самые простые способы прочитать содержимое файла логов. Если Вы знаете что нужно искать, то grep Вам в помощью. В противном случае в бой вступает tail, но можно выполнять анализ и более сложными способами.

Вот, например, вывод последних 10 событий из файла логов.

[ypermitin@zabbix zabbix]$ tail -n 10 /var/log/zabbix/zabbix_server.log 1370:20201016:230008.844 housekeeper [deleted 4601 hist/trends, 0 items/triggers, 0 events, 0 problems, 0 sessions, 0 alarms, 0 audit items in 0.047217 sec, idle for 1 hour(s)] 1370:20201017:000346.901 executing housekeeper 1370:20201017:000346.958 housekeeper [deleted 4857 hist/trends, 0 items/triggers, 0 events, 0 problems, 0 sessions, 0 alarms, 0 audit items in 0.053027 sec, idle for 1 hour(s)] 1386:20201017:002028.428 Zabbix agent item "system.swap.size[,free]" on host "YY-COMP" failed: first network error, wait for 15 seconds 1394:20201017:002043.521 Zabbix agent item "system.uptime" on host "YY-COMP" failed: another network error, wait for 15 seconds 1394:20201017:002058.554 Zabbix agent item "agent.ping" on host "YY-COMP" failed: another network error, wait for 15 seconds 1394:20201017:002113.579 temporarily disabling Zabbix agent checks on host "YY-COMP": host unavailable 1394:20201017:003815.366 enabling Zabbix agent checks on host "YY-COMP": host became available 1370:20201017:010352.434 executing housekeeper 1370:20201017:010352.503 housekeeper [deleted 4599 hist/trends, 0 items/triggers, 0 events, 0 problems, 0 sessions, 0 alarms, 0 audit items in 0.063396 sec, idle for 1 hour(s)] 

Здесь мы видим события процесса housekeeper, который отвечает за удаление устаревшей информации из базы данных мониторинга. Далее идут более интересные события об ошибке связи с хостом “YY-COMP”, а также события последующего восстановления соединения с агентом этого хоста.

 1386:20201017:002028.428 Zabbix agent item "system.swap.size[,free]" on host "YY-COMP" failed: first network error, wait for 15 seconds 1394:20201017:002043.521 Zabbix agent item "system.uptime" on host "YY-COMP" failed: another network error, wait for 15 seconds 1394:20201017:002058.554 Zabbix agent item "agent.ping" on host "YY-COMP" failed: another network error, wait for 15 seconds 1394:20201017:002113.579 temporarily disabling Zabbix agent checks on host "YY-COMP": host unavailable 1394:20201017:003815.366 enabling Zabbix agent checks on host "YY-COMP": host became available 

В любом случае, основным источником данных о том, что и как делает процесс 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”. Вот, например, его содержимое при старте процесса агента.

[ypermitin@zabbix zabbix]$ tail -n 30 /var/log/zabbix/zabbix_agentd.log 88139:20201017:164146.511 Starting Zabbix Agent [Zabbix server]. Zabbix 4.0.25 (revision 32662425e6). 88139:20201017:164146.511 **** Enabled features **** 88139:20201017:164146.511 IPv6 support: YES 88139:20201017:164146.511 TLS support: YES 88139:20201017:164146.511 ************************** 88139:20201017:164146.511 using configuration file: /etc/zabbix/zabbix_agentd.conf 88139:20201017:164146.511 agent #0 started [main process] 88140:20201017:164146.511 agent #1 started [collector] 88141:20201017:164146.512 agent #2 started [listener #1] 88144:20201017:164146.513 agent #5 started [active checks #1] 88143:20201017:164146.515 agent #4 started [listener #3] 88142:20201017:164146.516 agent #3 started [listener #2] 

Это идеальный вариант, когда агент был запущен и никаких проблем с его работой не наблюдается. Но там могут быть и ошибки или информация о проблемах связи. Например, вот это событие говорит о том, что что-то блокирует доступ агента к серверу Zabbix.

 3900:20201017:002349.716 active check configuration update from [192.168.11.149:10051] started to fail (cannot connect to [[192.168.11.149]:10051]: (null)) 

Может не открыт порт на сервере? Или сервер недоступен? Или ошибка в конфигурационном файле агента?

Аналогичный файл лога есть для агентов всех поддерживаемых операционных систем, в том числе и Windows. Его расположение можно уточнить в самом конфигурационном файле агента в параметре “LogFile”. Для Windows это может быть каталог самого агента, например:

### Option: LogFile # Log file name for LogType 'file' parameter. # # Mandatory: no # Default: # LogFile= LogFile=C:\Program Files\ZabbixAgent\zabbix_agentd.log 

В любом случае, если у Вас проблемы в работе агента, то первым делом идем в его логи и смотрим что вообще происходит.

Решение некоторых проблем

Рассмотрим решение некоторых проблем в работе сервера и агента. Это ни в коем случае не полноценный мануал, а скорее пара заметок. Небольшая порция “траблшутинга”. Более развернутую информацию Вы можете найти в официальной Wiki.

Немного опечатались

Иногда бывает так, что порты и все доступы настроены, агент установлен, ошибок в логах нет, но метрики не приходят или приходят не полностью. В самом Zabbix хост “горит зеленым” и непонятно, что вообще происходит.

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

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

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

Копипаст — зло! Будьте осторожны!

Ребут и агента нет

Бывают случаи, когда агент был успешно установлен и настроен на хосте, мониторинг работает как надо. НО! При очередном запланированном перезапуске сервера (хоста) Zabbix-агент не смог запуститься.

Причин тому может быть несколько:

  • Агент запускается от доменной учетной записи, но на момент старта сервера связи с доменом не оказалось.
  • В момент запуска агент пытался запуститься, когда еще не “поднялся” доступ к сети.

При этом в файле лога агента может не быть какой-либо полезной информации, но она есть в системных журналах ОС. Чаще всего это поведение встречал в ОС Windows.

Решение достаточно простое: нужно установить для службы Windows режим запуска “Автоматически (отложенный запуск)”. В большинстве случаев проблема будет решена.

Быстро и просто!

Особые проблемы со счетчиками

Особой проблемой, которая встречается не очень часто, бывают проблемы со счетчиками производительности Windows. После настройки мониторинга на сервере можно увидеть для хоста элементы данных со статусом “Не поддерживается”. При этом все они получаются через показатели производительности Windows. Обратившись к логам агента Zabbix можно увидеть следующее.

zabbix agent log: check_counter_path(): cannot make counterpath zabbix agent log: A required argument is missing or not correct. active check "perf_counter[. ]" is not supported 

При этом для хоста у элементов данных будет такая ошибка.

ZBX_NOTSUPPORTED: Cannot obtain system information. 

Проблема в некорректном списке доступных счетчиков производительности Windows на хосте с агентом, то есть на машине, которую мы собираемся мониторить. Можно проверить наличие нужного счетчика через “Монитор производительности” (perfmon.exe) или через ветку реестра:

"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009" # Ключ "Counter" содержит список всех доступных счетчиков производительности. 

Если нужного счетчика нет, то можно попытаться перестроить все счетчики ОС командой:

lodctr /r # Утилита находится в "C:\WINDOWS\System32" 

В большинстве случаев это помогает. Если остаются проблемы со счетчиками производительности сторонних приложений, то нужно изучить документацию по этим счетчикам. Например, для Microsoft SQL Server можно отдельно восстановить счетчики из поставляемых настроек. Подробнее можно узнать здесь.

Счетчики производительности для мониторинга Windows — отличный инструмент. И его, конечно же, нужно использовать.

Таймаут выполнения скриптов

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

ZBX_NOTSUPPORTED: Timeout while executing a shell script 

Так происходит, поскольку выполняемый скрипт не укладывается в заданное время выполнения. Время задается также в конфигурации агента Zabbix и по умолчанию составляет 3 секунды.

### Option: Timeout # Spend no more than Timeout seconds on processing # # Mandatory: no # Range: 1-30 # Default: # Timeout=3 

Имеется три основных варианта решения:

  • Увеличить таймаут до подходящего значения. Например, до 30 секунд:
### Option: Timeout # Spend no more than Timeout seconds on processing # # Mandatory: no # Range: 1-30 # Default: # Timeout=3 Timeout=30 
  • Второй вариант — разобраться в причинах долгого выполнения и попытаться их исправить. Конечно, если это возможно.
  • Отказаться от сбора этих метрик 🙂

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

Продолжение следует

Это была еще одна небольшая публикация по теме мониторинга с помощью Zabbix. В следующих статьях мы поговорим об обновлении Zabbix с версии 4.0 на 5.0, создадим свой шаблон для сбора метрик и рассмотрим некоторые особенности этого процесса, настроим уведомления в Telegram-канал, а также получении данных с Prometheus и визуализации данных в Grafana. И, конечно же, оптимизация производительности сервера мониторинга Zabbix!

Будьте на связи 🙂

Будьте в курсе

Создание материалов будет продолжаться. Хотите быть в курсе последних обновлений? Подписывайтесь на канал.

По любым вопросам пишите на электронную почту. Адрес в самом низу страницы.

1 Состояние Zabbix

В разделе Отчеты → Состояние Zabbix отображается краткая сводка о ключевых данных системы.

Этот отчет также отображается виджетом на ПАНЕЛИ.

Отображаемые данные
Параметр Значение Детали
Zabbix сервер запущен Состояние Zabbix сервера:
Да — сервер запущен
Нет — сервер не запущен
Обратите внимание: Для того чтобы быть уверенным что веб-интерфейс знает запущен или нет сервер должен быть запущен по крайней мере один процесс траппера (параметр StartTrappers в zabbix_server.conf файле>0).
Размещение и порт Zabbix сервера.
Количество узлов сети Отображается общее количество добавленных узлов сети.
Шаблоны тоже считаются подтипами узлов сети.
Количество наблюдаемых узлов сети/не наблюдаемых узлов сети/шаблонов.
Количество элементов данных Отображается общее количество элементов данных. Считаются только те элементы данных, которые назначены на активированные узлы сети. Количество наблюдаемых/деактивированных/неподдерживаемых элементов данных.
Количество триггеров Отображается общее количество триггеров. Считаются только те триггеры, которые назначены на активированные узлы сети и зависят от активированных элементов данных. Активированные/деактивированные триггеры. [Триггеры в состоянии проблема/ок.]
Количество пользователей Отображается ожидаемое количество новых значений обрабатываемых Zabbix сервером в секунду. Требуемое быстродействие сервера является оценочным и может быть полезным как ориентир. Для точных чисел обработанных значений, используйте внутренний элемент данных zabbix[wcache,values,all] .

© 2001-2024 by Zabbix SIA. All rights reserved.

Except where otherwise noted, Zabbix Documentation is licensed under the following license

1 Информация о систсеме

В разделе Отчеты → Информация о системе отображается краткая сводка о ключевых данных системы.

Этот отчет также отображается виджетом на ПАНЕЛИ.

Отображаемые данные
Параметр Значение Детали
Zabbix сервер запущен Состояние Zabbix сервера:
Да — сервер запущен
Нет — сервер не запущен
Обратите внимание: Чтобы отображать некоторую информацию, веб-интерфейсу необходим работающий сервер и у сервера должен быть запущен по крайней мере один процесс траппера (параметр StartTrappers в zabbix_server.conf файле>0).
Размещение и порт Zabbix сервера.
Количество узлов сети Отображается общее количество добавленных узлов сети.
Шаблоны тоже считаются подтипами узлов сети.
Количество наблюдаемых узлов сети/не наблюдаемых узлов сети/шаблонов.
Количество элементов данных Отображается общее количество элементов данных. Количество наблюдаемых/деактивированных/неподдерживаемых элементов данных.
Элементы данных на деактивированных узлах сети считаются деактивированными.
Количество триггеров Отображается общее количество триггеров. Количество активированных/деактивированных триггеров. [Триггеры в состоянии проблема/ок.]
Триггеры назначенные на деактивированные узлы сети или зависящие от деактивированных элементов данных считаются деактивированными.
Количество пользователей Отображается общее количество добавленных пользователей. Количество пользователей в сети.
Требуемое быстродействие сервера, новые значения в секунду Отображается ожидаемое количество новых значений обрабатываемых Zabbix сервером в секунду. Требуемое быстродействие сервера является оценочным и может быть полезным как ориентир. Для точных чисел обработанных значений, используйте внутренний элемент данных zabbix[wcache,values,all] .

© 2001-2024 by Zabbix SIA. All rights reserved.

Except where otherwise noted, Zabbix Documentation is licensed under the following license

5 Простые проверки

Простые проверки в основном используются для удаленных безагентных проверок сервисов.

Обратите внимание, что для простых проверок Zabbix агент не требуется. За обработку (созданием внешних подключений и т.д.) простых проверок отвечает Zabbix сервер/прокси.

Примеры использования простых проверок:

 net.tcp.service[ftp,,155] net.tcp.service[http] net.tcp.service.perf[http,,8080] net.udp.service.perf[ntp]

Поля Имя пользователя и пароль в конфигурации простых элементов данных используются для элементов данных мониторинга VMware; иначе игнорируются.

Поддерживаемые простые проверки

Список поддерживаемых простых проверок:

Ключ
Описание Возвращаемое значение Параметры Комментарии
icmpping[,,,,]
Доступность хоста через пинг по ICMP. 0 — ошибка при пинге по ICMP
1 — успешный пинг по ICMP
цель — IP хоста или DNS имя
пакеты — количество пакетов
интервал — время между успешными пакетами в миллисекундах
размер — размер пакета в байтах
время ожидания — время ожидания в миллисекундах
Пример:
=> icmpping[,4] → если по крайней мере один пакет из четырех вернется, элемент данных возвратит 1.

0.000000 — сервис недоступен

0.000000 — сервис недоступен

Обработка времени ожидания

Zabbix не будет обрабатывать простую проверку дольше Timeout (времени ожидания) секунд, заданных в файле конфигурации Zabbix сервера/прокси.

ICMP пинг

Для обработки ICMP пинг Zabbix использует внешнюю утилиту fping.

Эта утилита не является частью дистрибутива Zabbix и должна быть установлена дополнительно. Если утилиты нет, у нее выставлены неверные разрешения и её размещение не совпадает с размещением заданным в файле конфигурации Zabbix сервера/прокси (параметры ‘FpingLocation’), ICMP пинг (icmpping, icmppingloss, icmppingsec) не будет обрабатываться.

fping должен быть выполняемым под пользователем Zabbix демонов и должен иметь setuid root. Выполните эти команды из под root для выставления корректных разрешений:

 shell> chown root:zabbix /usr/sbin/fping shell> chmod 4710 /usr/sbin/fping

После выполнения этих двух команд выше проверьте владельца исполняемого файла fping. В некоторых случаях владелец может сброситься при выполнении chmod команды.

Также проверьте, принадлежит ли пользователь zabbix к группе zabbix, запустив команду:

 shell> groups zabbix

и если нет добавьте следующей командой:

 shell> usermod -a -G zabbix zabbix

Значения по умолчанию, ограничения и описания значений для параметров ICMP проверок:

Параметр Ед. изм Описание Флаг у fping Значения по умолчанию у Разрешенные ограничения
в Zabbix

Предупреждение: Значения по умолчанию для fping могут различаться в зависимости от платформы и версии — если сомневаетесь, проверьте документацию по fping.

Zabbix записывает проверяемые IP адреса во временный файл по всем трем icmpping* ключам, который затем передается утилите fping. Если элементы данных имеют различные параметры ключа, то только элементы данных с идентичными параметрами ключа записываются в один файл.
Все записанные в один файл IP адреса проверяются fping утилитой в параллельном режиме, таким образом процесс Zabbix icmp pinger тратит фиксированное время вне зависимости от количества IP адресов в файле.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *