Zabbix — распределённая система мониторинга

Содержание

Zabbix — распределённая система мониторинга, которая позволяет мониторить любые измеримые параметры деятельности сети и серверов (сервисов), отслеживать нарушение предопределённых границ значений параметров и извещать заинтересованных лиц (e-mail, SMS, XMPP (jabber), скрипт), средства эскалации и подтверждения извещения. Хорошо проработанные средства построения графиков и отчётов, возможно соотнесение с планом или картой. Можно использовать для проверки доступности и контроля производительности. Данные могут получать как с помощью запросов от сервера агентам, устанавливаемым на контролируемые хосты, так и получением сообщений от активных агентов, возможности агентов могут быть расширены скриптами. В качестве агента можно использовать SNMP сервер (v1 и v2 и v3, запрос и trap, динамические индексы с версии 2.2), IPMI, без агентов можно мониторить доступность определённых сервисов (почта, веб, FTP, LDAP, SSH, telnet, СУБД, сервера приложений Java). Позволяет определить SLA (через группу триггеров и выражение) и отслеживать их выполнение. Возможно автообнаружение (ICMP ping) и авторегистрация агентов. Поддержка JMX (Java Management Extensions) с версии 2.0.

Конфигурация и данные хранятся в СУБД (MySQL/InnoDB для тяжёлой нагрузки, PostgreSQL, Oracle, SQLite — до версии 1.8). Возможен экспорт и импорт конфигурации (части конфигурации) в XML (zabbix_export.xml, экспортируется не всё! комплексные отчёты и карты с версии 1.8). Интерфейс пользователя к данным мониторинга и настройкам — через браузер (сам интерфейс в кодировке UTF-8, но данные — нет!), Apache 1.3.12 или новее, PHP 4.3 или новее (модули php-gd, php-bcmath, php-mysql/php-sqlora8/php-pgsql/php-sqlite3). Возможна привязка аутентификации к LDAP. Настройка облегчается наличием параметризованных шаблонов (template). Требуется синхронизации времени в сети. Возможно закрытие интерфейса с помощью SSL/TLS, коммуникации между компонентами открытые, защита по адресу IP. Имеется интерфейс (API) взаимодействия с другими приложениями (JIRA, Puppet).
Разработка Zabbix LLC (Alexei Vladishev), ранее Латвийской компании Zabbix SIA (2005). Лицензия — GPL2, бесплатен даже для коммерческого использования. Имеется коммерческая поддержка. Версия на момент описания — 1.6.5. Поддержка версии 1.8 уже закончилась, в версии 2.0 исправляются только критические ошибки. Сервер может быть установлен на Linux, Solaris, HP-UX, AIX, FreeBSD, NetBSD, OpenBSD, Mac OS/X. Клиенты (агенты) могут быть также установлены на Windows 2000, Windows Server 2003/2008/2012, Windows XP, Windows Vista, Windows 7, Windows 8. Базовой системой для разработчика является Ubuntu (?). Обещается совместимость всех старых версий агентов с новыми версиями сервера. Обещается совместимость БД внутри версии и скрипты преобразования к новой версии.

Архитектура системы

  • сервер Zabbix регулярно опрашивает пассивных агентов (Zabbix, SNMP) и принимает данные от активных агентов, при необходимости извещает кого попало; потоки (все выглядят как zabbix_server):
  • Poller — извлекает данные от агентов SNMP и Zabbix
  • Pinger — ICMP ping; используется внешняя утилита fping, которая включает опцию RECORD_ROUTE, к которой многие устройства относятся плохо
  • Node Watcher — отслеживает межузловые коммуникации
  • процесс очистки от старых записей
  • Trapper — приёмник данных от активных агентов, журналов и Sender
  • Timer — обрабатывает триггерные выражения, зависящие от времени (?)

Контролируемые объекты называются хостами (host). Их можно группировать. Хост может входить в несколько групп. Профиль (profile) хоста — набор сведений для инвентаризации о типе оборудования, модели, расположении, серийном номере и пр.. Заполняется вручную. Каждый контролируемый параметр хоста называется элементом данных (item). Текущее значение элементов данных опрашивается в дискретные моменты времени с заданным интервалом. Система позволяет посмотреть очередь невыполненных запросов (меню администратора). Триггер (trigger) задаётся с помощью логического выражения от значений элементов данных. Приложение (application) есть множество элементов данных хоста, связанных с одним реальным приложением. Элемент данных может входит в несколько приложений. Используется для группировки в вебинтерфейсе и выражениях триггеров. Событием (event) называется изменение состояния триггера от FALSE к TRUE или от TRUE к FALSE (возможно с промежуточным состоянием UNKNOWN). Действие (action) является реакцией системы на событие. Определяется для события или группы событий.

Реализован распределённый мониторинг. Главный узел конфигурирует подчинённые (proxy) и собирает с них данные.

Элементы данных

Каждый контролируемый параметр хоста называется элементом данных (item). Данные могут собираться сервером напрямую (простые проверки, SNMP, IPMI), внешними скриптами и с помощью агентов (клиентов zabiix), работающими на контролируемых серверах. Агенты могут собирать данные встроенными средствами и с помощью скриптов. Веб-мониторинг позволяет извлекать данные с HTML страниц (специальный модуль). Имеется некоторое количество внутренних проверок работоспособности самого сервера zabbix и агрегированные проверки. Некоторые типы (key) элементов данных могут иметь параметры, заключаемые в квадратные скобки. Часть параметров является необязательной. Не все типы элементов данных поддерживаются на всех типах ОС (в документации есть таблица для какой-то старой версии). При добавлении элемента данных в общем случае указывается

  • описание, может содержать макросы: $N — N-ый параметр элемента данных
  • имя (тип, key), под которым он будет собираться, храниться и извлекаться
  • тип данных
  • целое 64 бита без знака (u)
  • плавающее число (d)
  • строка до 255 байт (s, Latin1?)
  • текст неограниченной длины (t)
  • журнал (m) — специальная модификация текста для хранения журналов
  • b или bps
  • unixtime (секунды абсолютные, выводится в формате yyyy.mm.dd hh:mm:ss)
  • uptime (секунды относительные, выводится в формате N days, hh:mm:dd)
  • s (секунды относительные, выводится в формате YYyMMmDDdHHhMMm)

Специальный тип данных status, который определяется, если для хоста мониторится хотя бы один параметр (0 — хост доступен, 2 — хост недоступен).

Типы данных, собираемые агентами самостоятельно:

  • agent.ping (целое, 1)
  • agent.version (строка)
  • kernel.maxfiles (целое)
  • kernel.maxproc (целое; в Linux не поддерживается)
  • log[имя-файла,регулярное-выражение] (при активном мониторинге посылает каждую добавленную в файл строку на сервер; требуются права на чтение файла для пользователя zabbix; данные на сервере д.б. типа log и ZABBIX Agent (active); не более 10 строк в секунду; отслеживается размер файла и текущая позиция, чтобы ничего не пропустить и не удвоить)
  • net.if.collisions[имя-интерфейса] (целое; коллизий на указанном интерфейсе)
  • net.if.in[имя-интерфейса,bytes|packets|errors|dropped] (целое)
  • net.if.out[имя-интерфейса,bytes|packets|errors|dropped] (целое)
  • net.if.total[имя-интерфейса,bytes|packets|errors|dropped] (целое)
  • net.tcp.dns[ip-адрес,домен] (1 — можно получить данные по указанному доменному имени; ip-адрес игнорируется, используются настройки /etc/resolv.conf)
  • net.tcp.listen[порт] (1 — порт открыт; в Linux не поддерживается (?))
  • net.tcp.port[ip-адрес,порт] (1 — можно соединиться с указанным портом)
  • net.tcp.service[имя-сервиса,ip-адрес,порт] (0 — невозможно соединиться, 1 — TCP соединение удачно, 2 — истекло время ожидания; сервис: ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp
  • net.tcp.service.perf[имя-сервиса,ip-адрес,порт] (0 — сервис не работает, иначе количество секунд, потраченных на соединение
  • proc.mem[имя-процесса,имя-пользователя,avg|max|min|sum,фильтр-командной-строки] (используемая указанным процессом/процессами память в байтах; любой параметр или все параметры можно опустить; не отличает процессы от потоков :()
  • proc.num[имя-процесса,имя-пользователя,all|run|sleep|zomb,фильтр-командной-строки] (количество указанных процессов; любой параметр или все параметры можно опустить)
  • system.boottime (время в момент загрузки в формате UNIX
  • system.cpu.intr (количество прерываний)
  • system.cpu.load[номер-процессора,avg1|avg5|avg15] (берётся из uptime)
  • system.cpu.num (количество процессоров (ядер))
  • system.cpu.switches (количество переключений контекста; в Linux не поддерживается)
  • system.cpu.util[номер-процессора,idle|nice|user|system|kernel|wait|interrupt|softirq|steal,avg1|avg5|avg15] (загрузка процессора в процентах; не работает при тестировании: Collector is not started!; wait переименован в iowait )
  • system.run[команда-оболочки,wait|nowait] (указанная команда выполняется на удалённом хосте, результат возвращается в режиме wait; агент д.б. сконфигурирован в режиме EnableRemoteCommands)
  • system.hostname
  • system.localtime (локальное время в формате UNIX)
  • system.swap.in[имя-устройства,count|pages] (в Linux не поддерживается)
  • system.swap.out[имя-устройства|all,count|pages] (в Linux не поддерживается)
  • system.swap.size[имя-устройства|all,free|total|pfree|pused] (в байтах или процентах)
  • system.uname (uname -a)
  • system.uptime (в секундах)
  • system.users.num (who|wc -l)
  • vfs.dev.read[имя-устройства|all,sectors|operations] (операций чтения или секторов всего)
  • vfs.dev.write[имя-устройства|all,sectors|operations] (операций записи или секторов всего)
  • vfs.file.cksum[имя-файла] (целое, cksum указанного файла)
  • vfs.file.md5sum[имя-файла] (строка, md5sum указанного файла; размер файлов до 64МБ)
  • vfs.file.exists[имя-файла] (0 — файл не существует, 1 — файл существует
  • vfs.file.regexp[имя-файла,регулярное-выражение] (поиск строки в файле, возвращается найденная строка
  • vfs.file.regmatch[имя-файла,регулярное-выражение] (поиск строки в файле, 0 — не найдена, 1 — найдена
  • vfs.file.size[имя-файла] (размер в байтах, требуются права на чтение файла)
  • vfs.file.time[имя-файла,modify|access|change] (время в формате UNIX)
  • vfs.fs.inode[файловая-система,total|free|used|pfree|pused] (количество inode в штуках и процентах)
  • vfs.fs.size[файловая-система,total|free|used|pfree|pused] (количество места в килобайтах и процентах)
  • vm.memory.size[total|shared|free|buffers|cached] (объём ОП в байтах)
  • web.page.get[адрес-хоста,локальная-часть-URL,порт] (возвращает полученную HTML страницу; EOF — при ошибке)
  • web.page.perf[адрес-хоста,локальная-часть-URL,порт] (возвращает время загрузки страницы в секундах)
  • web.page.regexp[адрес-хоста,локальная-часть-URL,порт,регулярное-выражение,длина] (возвращает первое вхождение регулярного выражения; EOF — ошибка)
  • специфические для MS Windows (eventlog, perf_counter, service_state, proc_info)
  • wmi.get() — Windows Management Instrumentation (WMI)

Возможности агентов могут быть расширены с помощью внешних скриптов. Для описания внешнего скрипта в конфигурационный файл добавляется строка (требуется перезапуск агента):

Команда может иметь позиционные параметры (при использовании указываются в квадратных скобках, так же как и для встроенных типов данных):

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

  • tcp|ftp|http|imap|nntp|pop|smtp|ssh|telnet|ldap,ip-адрес,порт (0 — соединение не принято, 1 — соединение принято, 2 — время ожидания истекло)
  • ftp_perf|http_perf|imap_perf|nntp_perf|pop_perf|smtp_perf|ssh_perf,ip-адрес,порт (0 — сервер недоступен, иначе число милисекунд, потраченных на соединение)
  • icmpping (0 — неудача, 1 — успех)
  • icmppingsec (время оборота)

Триггеры

Триггер (trigger) задаётся с помощью логического выражения от значений единиц данных и может принимать значения FALSE, TRUE и UNKNOWN. Есть традиция определять триггеры так, чтобы значение TRUE указывало на наличие проблемы. Выражение перевычисляется каждый раз при получении очередного значения единицы данных, используемой в выражении. Выражения строятся с использованиемм бинарных операторов и функций над элементами данных, а также констант (числа и числа с двоичными множителями (K, M, G)). В выражении можно использовать единицы данных различных хостов. Для задания приоритета вычислений необходимо использовать круглые скобки. Синтаксис извлечения значения элемента данных:

Операторы (перечислены в порядке убывания приоритета, преобразование типов — ?):

  • /
  • *
  • —
  • +
  • # (приближённо не равно)
  • = (приближённо равно)
  • |

Функции (имя функции записывается через точку после имени типа элемента данных; параметры указываются в круглых скобках через запятую; параметры необходимо указывать даже для тех функций, которые их игнорируют или не имеют; некоторые параметры имеют значения по умолчанию и их можно опускать):

  • abschange (абсолютная разница между последним и предпоследним значением; для строк: 0 — значения равны, 1 — не равны)
  • avg (среднее значение за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’))
  • delta (разность между максимумом и минимумом за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’))
  • change (разница между последним и предпоследним значением; для строк: 0 — значения равны, 1 — не равны)
  • count (количество отсчётов, удовлетворяющих критерию, за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’); критерий задаётся вторым (с чем сравнивать) и третьим параметром (как сравнивать — указывать в кавычках: eq, ne, gt, ge, lt, le); для плавающих чисел сравнение приближённое; для строк, журналов и текстов ищется вхождение шаблона)
  • date (дата в формате YYYYMMDD)
  • dayofweek (1 — понедельник, 7 — воскресенье)
  • diff (0 — последнее и предпоследнее значения равны; 1 — различаются)
  • fuzzytime (1 — временной штамп элемента данных различается от времени сервера не более указанного числа секунд)
  • iregexp (1 — указанное в качестве первого параметра регулярное выражение соответсвует значению элемента данных за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’); без учёта регистра символов)
  • last (N-ое с конца значение элемента данных (число предваряется символом ‘#’); порядок гарантируется с точностью до секунды; last(0) — это last(#1))
  • logseverity (для event log)
  • logsource (для event log)
  • max (максимум за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’))
  • min (минимум за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’))
  • nodata (1 — если за указанное число секунд не было полученно данных; нельзя указывать менее 30 секунд)
  • now (время в формате UNIX)
  • prev (предпоследнее значение; last (#2))
  • regexp (1 — указанное в качестве первого параметра регулярное выражение соответствует значению элемента данных за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’); с учётом регистра символов)
  • str (1 — указанная в качестве первого параметра подстрока найдена в элементе данных за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’); с учётом регистра символов)
  • sum (сумма значений за указанный интервал в секундах или за указанное количество отсчётов (число предваряется символом ‘#’))
  • time (текущее время в формате HHMMSS)

Триггер может зависеть от других триггеров, т.е. он не меняет своё состояние в соответствии со значением выражения, а событие не генерируется, если хотя бы один из этих триггеров взведён.

События могут генерироваться только при взведении триггера или каждом изменении взведённого триггера (Multiple TRUE events).

Триггер имеет уровень серьёзности (представляется цветом и звуком в вебинтерфейсе, определяет допустимость средства доставки (Media) сообщения и используется в условных действиях):

  • Not classified (серый)
  • Information (зелёный)
  • Warning (жёлтый)
  • Average (тёмнокрасный)
  • High (красный)
  • Disaster (алый)

Триггер может содержать комментарии, которые могут передаваться в сообщении, и URL, которые будет доступен на странице состояния триггеров.

Действие триггера можно временно отключить.

При написании триггеров можно использовать макросы.

Действие (action)

Действие (action) является реакцией системы на событие (event). Определяется для события или группы событий. Атрибуты:

  • Name — имя действия
  • Event Source — источник событий: Triggers (изменение состояния триггера) или Discovery (модуль автоматического обнаружения контролируемых объектов)
  • Enable escalations — разрешить дальнейшую эскалацию событий
  • Period — период времени для шага эскалации в секундах
  • Defult subject — кого извещать по умолчанию (можно использовать макросы)
  • Default message — текст сообщения по умолчанию (можно использовать макросы)
  • Recovery message — текст сообщения о решении проблемы (можно использовать макросы)
  • Recovery subject — кого извещать о решении проблемы (можно использовать макросы)
  • Status — статус действия: активно или запрещено
  • набор условий инициации действия (фильтр), каждое условие задаётся типом, оператором сравнения и строкой для сравнения, условия одного типа OR-ятся, разных типов — AND-ятся
  • типы условий для событий, порождаемых переключением триггера
  • Application (операторы: =, like, not like) — триггер является частью указанного приложения
  • Host group (операторы: =, ) — изменился триггер для хоста из указанной группы
  • Host template (операторы: =, ) — изменился триггер, определённый в указанном шаблоне, использованном при создании хоста
  • Host (операторы: =, ) — изменился триггер для указанного хоста
  • Trigger (операторы: =, ) — изменился указанный триггер
  • Trigger description (операторы: like, not like) — указанная строка встречается в описании — имени? — изменившегося триггера)
  • Trigger severity (операторы: =, , =, =) — изменился триггер указанной важности
  • Trigger value (операторы: =) — изменился триггер с указанным значением (OK или PROBLEM)
  • Time period (операторы: in) — время события попадает в указанный интервал (шаблоны: dd-dd, hh:mm-hh:mm и др.)
  • Host IP (операторы: =, ) — входит ли адрес обнаруженного хоста в указанный интервал
  • Service type (операторы: =, ) — обнаруженный сервис совпадает с указанным
  • Service port (операторы: =, ) — TCP порт обнаруженного сервиса входит в указанный интервал
  • Discovery status (операторы: =) — Up или Down
  • Uptime (=, =) — в секундах
  • Downtime (=, =) — в секундах
  • Received value (операторы: like, not like, =, , =, =) — сравнение указанной строки со значением, полученным от агента или SNMP
  • Step — при эскалации событий (позволяет организовать повторное извещенеие, извещение других пользователей, дополнительные действия при неустранении проблемы за указанное время) устанавливается начальный шаг (From), конечный шаг (To) и интервал времени (в секундах) для перехода на следующий шаг
  • Operation type — что делать на этом шаге: Send message или Execute command
  • Event Source (?)
  • Send message to — персональное сообщение (Single user) или групповое (User group)
  • Default message — использовать текст сообщения по умолчанию
  • Subject — кого извещать (можно использовать макросы); для получения сообщения пользователь должен иметь права на чтение к триггеру на хосте, который породил сообщение
  • Message — текст сообщения (можно использовать макросы)
  • Remote command — текст команды для удалённого выполнения (д.б. разрешено в настройках агента); каждая строка должна содержать имя хоста, двоеточие и текст команды (можно использовать макросы) или имя группы хостов, ‘#’ и текст команды (можно использовать макросы); пользователь zabbix должен иметь права на выполнение (рекомендуется настроить sudo); команда выполняется в фоновом режиме без проверки результата; команда может выполняться на сервере, на агенте (требуется настройка агента), через IPMI, telnet или ssh

Для генерации текста сообщения, команд и получателя можно использовать макросы. Некоторые макросы можно также использовать для написания скриптов, указания параметров элемента данных, генерации меток на карте (с версии 1.8), генерации имён триггеров. Вызов макроса заключается в фигурные скобки. Вызовы макросов могут быть вложенными. Имена макросов:

  • — текущая дата (yyyy.mm.dd)
  • — журнал предыдущих сообщений в истории эскалации
  • — возраст события (в секундах?)
  • — дата события
  • — номер (идентификатор) события
  • — время события (формат — hh:mm:ss)
  • — имя хоста первого элемента данных из выражения, определяющего переключившийся триггер, вызвавший событие
  • — IP адрес или DNS имя хоста (зависит от настроек)
  • — DNS имя хоста
  • — IP адрес хоста первого элемента данных из выражения, определяющего переключившийся триггер, вызвавший событие
  • — последнее значение первого элемента данных из выражения, определяющего переключившийся триггер, вызвавший событие
  • — имя первого элемента данных из выражения, определяющего переключившийся триггер, вызвавший событие
  • — ?
  • — контактное лицо из профиля хоста
  • — тип устройства из профиля хоста
  • — тип оборудования из профиля хоста
  • — имя из профиля хоста
  • — см.
  • — комментарий к переключившемуся триггеру, вызвавшему событие
  • — номер (идентификатор) триггера
  • — тип (key) первого элемента данных из выражения, определяющего переключившийся триггер, вызвавший событие
  • — уровень серьёзности (0 — непонятно, 1 — информация, 2 — предупреждение, 3 — так себе происшествие, 4 — реальная проблема, 5 — сливай воду
  • — уровень серьёзности (Not classified, Information, Warning, Average, High, Disaster)
  • — ON (TRUE), OFF (FALSE), Unknown
  • — URL, привязанный к триггеру
  • — 0 (OFF), 1 (ON), 2 (UNKNOWN)
  • <хост:тип.функция(параметр)>&#8212; значение элемента данных аналогично выражениям, используемым для задания триггеров (см. выше описание триггера))

Для посылки извещений администратором определяется среда передачи (Media):

  • тип
  • e-mail (необходимо указать имя SMTP сервера, обратный адрес и HELO)
  • Jabber
  • свой скрипт, которому передаются следующие параметры: получатель, тема, сообщение
  • SMS через GSM модем, подключённый к последовательному порту (параметры линии устанавливаются другим ПО; пользватель zabbix должен иметь права на чтение и запись к устройству; модем не должен требовать ввода PIN;

В настройках пользователя указывается среда передачи (можно несколько):

  • время доступности среды передачи
  • уровень серьёзности сообщений для передачи по этой среде

События и действия хранятся в БД (время хранения &#8212; 365 дней &#8212; задаётся в настройках сборки мусора), их можно просмотреть и подтвердить получение или написать комментарий.

Сервер: ключи и настройки

Ключи запуска zabbix_server

  • &#8212;help
  • &#8212;version
  • &#8212;config имя-конфигурационного-файла (/etc/zabbix/zabbix_server.conf)
  • &#8212;new-nodeid идентификатор-узла (преобразовать БД под указанный номер узла)

Конфигурационный файл имеет текстовый формат. На каждой строке задаётся значение одного параметра в формате имя=значение. Комментарии начинаются с символа &#8216;#&#8217;. Параметры:

  • StartPollers (5; начальное количество опрашивающих процессов)
  • StartIPMIPollers (0; нужен хотя бы 1, есть есть потребность собирать информацию через IPMI)
  • StartPollersUnreachable (1; начальное количество опрашивающих процессов для недоступных хостов)
  • StartTrappers (5; начальное количество слушающих процессов)
  • StartPingers (1; начальное количество процессов, занимающихся пингами)
  • StartDiscoverers (1; начальное количество процессов, занимающихся обнаружением новых хостов)
  • StartHTTPPollers (1; начальное количество процессов, извлекающих информацию с веб-страниц)
  • ListenIP (все; адрес для получения информации от активных агентов))
  • ListenPort (10051; порт для получения информации от активных агентов)
  • SourceIP (адрес для исходящих соединений)
  • HousekeepingFrequency (1; интервал в часах &#8212; от 1 до 24 &#8212; между запусками процесса удаления данных (history, alert, alarms) с истёкшим сроком хранения)
  • DisableHousekeeping (0)
  • SenderFrequency (30; интервал в секундах между попытками послать извещение)
  • DebugLevel (3; 0 &#8212; ничего; 1 &#8212; критические сообщения; 2 &#8212; сообщения об ошибках; 3 &#8212; предупреждения; 4 &#8212; отладка (очень много)
  • Timeout (5; время ожидания от 1 до 30 секунд данных от агента)
  • TrapperTimeout (5; максимальное время обработки данных слушающим процессом в секундах &#8212; от 1 до 300)
  • UnreachablePeriod (45; через сколько секунд недоступности объявлять хост неработающим)
  • UnreachableDelay (15; интервал в секундах при проверке недоступного хоста);
  • UnavailableDelay (60; интервал в секундах при проверке неработающего хоста)
  • PidFile (/var/tmp/zabbix_server.pid; изменять не стоит)
  • LogFile (/var/log/zabbix/zabbix_server.log; права доступа; в комментариях сказано, что при неустановленном значении будет выдаваться на syslog)
  • LogFileSize (1; максимальный размер журнала в мегабайтах; при превышении производится ротация журнала; 0 &#8212; без ограничений
  • AlertScriptsPath (/home/zabbix/bin (!); расположение пользовательских скриптов для извещений)
  • ExternalScripts (/etc/zabbix/externalscripts)
  • FpingLocation (/usr/sbin/fping)
  • Fping6Location (/usr/sbin/fping6)
  • PingerFrequency (60; в секундах)
  • TmpDir (/tmp)
  • DBHost (localhost; адрес СУБД)
  • DBName (имя БД для СУБД)
  • DBUser (имя пользователя для СУБД)
  • DBPassword (пароль пользователя для СУБД)
  • DBSocket (быстрее; веб-интерфейс не умеет работать через сокет)
  • StartDBSyncers (включить кеширование обращений к СУБД)
  • Include (вставляет содержимое указанного файла)
  • NodeID (0; номер узла для распределённой системы мониторинга, 0 &#8212; локальная система)
  • NodeNoEvents (0; не посылать локальные события главному злу)
  • NodeNoHistory (0; не посылать локальные данные главному узлу)

Самостоятельный агент: ключи и настройки

Ключи запуска zabbix_agentd

  • &#8212;help
  • &#8212;version
  • &#8212;config имя-конфигурационного-файла (/etc/zabbix/zabbix_agentd.conf)
  • &#8212;print (вывести примерный список поддерживаемых типов (метрик) параметров, тип значения, значение в текущий момент)
  • &#8212;test метрика (протестировать возможность получения значения параметра указанной метрики, не обязательно из приведённого выше списка)

Конфигурационный файл имеет текстовый формат. На каждой строке задаётся значение одного параметра в формате имя=значение. Комментарии начинаются с символа &#8216;#&#8217;. Параметры:

  • Server (; IP адрес или имя сервера; можно указывать список через запятую; для активных проверок используется первый адрес из списка)
  • ServerPort (10051; порт сервера для активных проверок)
  • Hostname (уникальное имя хоста для активных проверок)
  • ListenPort (10050; номер порта для приёма запросов)
  • ListenIP (все; IP адрес для привязки приёмного порта)
  • SourceIP (; IP адрес для исходящих соединений)
  • StartAgents (3 (5 в версии 1.4); начальное количество слушающих процессов; одного недостаточно)
  • RefreshActiveChecks (120; интервал в секундах для запроса списка параметров активных проверок)
  • DisableActive (0; только отвечать на запросы)
  • DisablePassive (0; не принимать запросы)
  • EnableRemoteCommands (по разному; разрешить приём удалённых команд)
  • DebugLevel (3; 0 &#8212; ничего; 1 &#8212; критические сообщения; 2 &#8212; сообщения об ошибках; 3 &#8212; предупреждения; 4 &#8212; отладка (очень много)
  • PidFile (/var/tmp/zabbix_agentd.pid; изменять не стоит)
  • LogFile (/var/log/zabbix/zabbix_agentd.log; права доступа; в комментариях сказано, что при неустановленном значении будет выдаваться на syslog)
  • LogFileSize (1; максимальный размер журнала в мегабайтах; при превышении производится ротация журнала; 0 &#8212; без ограничений
  • Timeout (3; разрешается тратить на обработку не более указанного количества секунд; некоторые внешние скрипты выполняются медленно; zabbix_agentd не убивает запущенный процесс, только престаёт ждать ответ)
  • UserParameter (указывается ключ (метрика) и строка для командной оболочки (bash); командная строка должна хоть что-то вернуть)
  • BufferSend (5; не держать данные в буфере дольше указанного количества секунд)
  • BufferSize (100; размер буфера значений параметров в штуках)
  • Include (вставляет содержимое указанного файла)
  • Alias
  • AllowRoot
  • LogUnresolvedSymbols

Утилита zabbix_sender

&#8212;zabbix-server адрес-или-имя-сервераУтилита zabbix_sender используется в долгоиграющих скриптах для периодической посылки значений параметров на сервер. Ключи:

  • &#8212;port номер-порта-на сервере (10051)
  • &#8212;host имя-клиентского-хоста
  • &#8212;source-address исходящий-IP
  • &#8212;key имя-метрики
  • &#8212;value значение
  • &#8212;input-file имя-файла-со-значениями
  • &#8212;help
  • &#8212;version

Утилита zabbix_get

Утилита zabbix_get используется при отладке для опроса агентов.
Ключи:


Источник: xakinfo.ru