Последнее изменение файла: 2023.04.27
Скопировано с www.bog.pp.ru: 2023.09.30
Bog BOS: Zabbix - распределённая система мониторинга
Zabbix - распределённая система мониторинга, которая позволяет отслеживать
любые измеримые элементы данных (параметры, метрики) деятельности сети и серверов (сервисов), отслеживать нарушение
предопределённых границ значений элементов данных (произвольные выражения от накопленных значений элементы данных) и извещать заинтересованных лиц,
имеются средства эскалации и подтверждения извещения, гибкая настройка интервалов опросов.
Хорошо проработанные средства построения графиков и отчётов, возможно соотнесение с планом или картой.
Можно использовать для проверки доступности и контроля производительности.
Данные могут получаться как с помощью запросов от сервера агентам, устанавливаемым
на контролируемые хосты, так и получением сообщений от активных агентов,
возможности агентов могут быть расширены скриптами.
В качестве агента можно использовать SNMP сервер (v1 и v2 и v3, запрос и trap, динамические индексы с версии 2.2),
IPMI, без агентов можно мониторить
доступность определённых сервисов (почта, веб, FTP, LDAP, SSH, telnet, СУБД, сервера приложений Java).
Позволяет определить SLA (через группу триггеров и выражение) и отслеживать их выполнение.
Возможно автообнаружение хостов и авторегистрация агентов,
обнаружение файловых систем, сетевых интерфейсов, блочных устройств, OID и др.
Поддержка JMX (Java Management Extensions) с версии 2.0 и VMware.
Средства аутентификации и авторизации, аудит действий и изменений конфигурации.
Прокси сервер для сложных и больших конфигураций.
Конфигурация и собранные данные хранятся в СУБД (MySQL/Percona/MariaDB (InnoDB), PostgreSQL, Oracle, TimescaleDB, SQLite - для лёгкой нагрузки).
Имеются средства настройки времени хранения собранных данных и огрублённых трендов, автоматическая очистка.
Возможен экспорт и импорт конфигурации (части конфигурации) в XML (zabbix_export.xml,
экспортируется не всё! комплексные отчёты и карты с версии 1.8).
Интерфейс пользователя к данным мониторинга и настройкам - через браузер, Apache 1.3.12 или новее,
PHP 7 или новее (модули php-gd, php-bcmath, php-mysql/php-sqlora8/php-pgsql/php-sqlite3).
Возможна привязка аутентификации к LDAP серверу.
Настройка облегчается наличием параметризованных шаблонов (template), шаблоны могут быть вложенными.
Требуется синхронизации времени в сети.
Возможно закрытие интерфейса с помощью SSL/TLS, коммуникации между компонентами можно закрыть TLS с версии ?.
Имеется интерфейс (API) взаимодействия с другими приложениями (JIRA, Puppet) на базе JSON RPC.
Разработка Zabbix LLC (Alexei Vladishev), ранее Латвийской компании Zabbix SIA (2005).
Лицензия - GPL2, бесплатен даже для коммерческого использования. Имеется коммерческая поддержка.
Версия на момент описания - 1.6.5, предполагается обновление описания до 6.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 (?).
Обещается совместимость всех старых версий агентов с новыми версиями сервера.
Обещается совместимость БД внутри версии и скрипты преобразования к новой версии.
Документация версии 1.8 и новее только на сайте (обещан конвертор в ODT - не реализован).
сервер Zabbix регулярно опрашивает пассивных агентов (Zabbix, SNMP, IPMI и др.)
и принимает данные от активных агентов (Zabbix, SNMP trap, zabbix_sender и др.), записывает в БД;
при необходимости извещает кого надо, отслеживает извещения и реакцию, эскалирует;
позволяет вносить изменения в настройки, хранит настройки в БД;
TCP/10051;
потоки (в старой версии все выглядят как zabbix_server, в новой ps выдаёт название потока, номер и статистику использования;
количество потоков каждого типа задаётся статически в настройках сервера):
alert manager - синхронизация извещателей
alert syncer - запись информации об извещениях в БД
alerter - рассылает сообщения
availability manager - процесс изменения доступности хостов
configuration syncer - синхронизация кеша настроек и содержимого БД
discoverer - обнаружение хостов
escalator - эскалация действий
history poller - обработка вычисленных данных и внутренние проверки, которым требуется доступ к БД
history syncer - запись данных истории в БД
housekeeper - очистка БД от старых записей
http poller - извлекает данные из вебсерверов
icmp pinger - проверка icmpping; используется внешняя утилита fping, которая включает опцию RECORD_ROUTE,
к которой многие устройства относятся плохо
ipmi manager - синхронизация опросчиков IPMI
ipmi poller - извлекает данные от агентов IPMI
java poller - извлекает данные от JMX
lld manager - синхронизация автообнаружителей
lld worker - автообнаружение
odbc poller - извлекает данные от ODBC
poller - извлекает данные от агентов SNMP и Zabbix
СУБД для хранения собранных данных, конфигурации, событий и пр.
агент Zabbix работает на сервере, который необходимо мониторить;
выполняется в режиме демона (service или systemctl; zabbix_agentd.conf) или inetd/xinetd (не рекомендуется, в новых версиях режим отсутствует);
может работать в активном режиме (запрашивает список требуемых элементов данных и интервалов опросов, посылает данные самостоятельно)
и пассивном режиме (ждёт запросов от сервера);
TCP/10050;
возможна авторегистрация агента на сервере,
возможна аутентификация и шифрование
агент версии 2 (agent2) - модульная версия агента на языке Go, некоторые типы данных доступны только через него; не использовал; TCP/10050;
zabbix_sender - утилита, самостоятельно
посылающая данные на сервер (используется в долго работающих скриптах
для периодической посылки значений элементов данных)
прокси для системы мониторинга Zabbix (zabbix_proxy, /etc/zabbix/zabbix_proxy.conf)
собирает и принимает данные с нескольких агентов для сервера Zabbix;
удобен для установки в удалённом филиале;
может быть активным и пассивным;
цепочки прокси не допустимы;
использует отдельную СУБД;
TCP/10051;
не использовал
HTTP сервер (Apache/nginx и PHP), обеспечивающий интерфейс пользователя для настройки и мониторинга
zabbix_get - утилита для опроса агентов (используется при отладке)
шлюз для сбора данных типа JMX agent от приложений на Java;
служба zabbix-java-gateway; файл с настройками /etc/zabbix/zabbix_java_gateway.conf;
журнал - /var/log/zabbix/zabbix_java_gateway.log, настройки журнала - /etc/zabbix/zabbix_java_gateway_logback.xml;
TCP/10052;
не использовал
предполагалась консольная утилита управления сервером zabcon, но не была реализована
Контролируемые объекты называются хостами (host), определяются набором интерфейсов (тип (агент, IPMI, SNMP и др.), IP адрес).
Их можно группировать. Хост может входить в несколько групп. Права доступа определяются для группы хостов.
Профиль (profile) хоста - набор сведений для инвентаризации о типе оборудования,
модели, расположении, серийном номере и пр.. Заполняется вручную.
Каждый контролируемый параметр хоста называется элементом данных (item).
Текущее значение элементов данных опрашивается в дискретные моменты времени с заданным интервалом.
Система позволяет посмотреть очередь невыполненных запросов (меню администратора).
Данные проходят предобработку перед записью в БД.
Объём хранимых данных зависит от количества запросов в секунду, размера элемента данных (90 байт для чисел) и заданного времени хранения.
В дополнение к исходным данным хранятся тренды (приблизительные данные - max/min/avg/count за каждый час).
В ранних версиях zabbix было понятие приложения (application).
Приложение имеет имя, элемент данных привязывается к приложению или нескольким.
Используется для группировки в вебинтерфейсе и выражениях триггеров.
В новых версиях было заменено понятием тэга, который имеет имя и значение.
Элемент данных помечается тэгом или несколькими.
Триггер (trigger) задаётся с помощью логического выражения от значений элементов данных.
Проблемой называется триггер в состоянии проблемы, проблему можно комментировать, подтверждать, изменять серьёзность и закрывать вручную.
Событием (event) называется изменение состояния триггера или автообнаружение хоста или элемента данных.
Событие может иметь метку (tag), которая используется для авторизации и корреляции событий.
Событие занимает около 250 байт в СУБД и по 100 байт на каждую метку. Восстановление после события - 80 байт.
Действие (action) является реакцией системы на событие.
Определяется для события или группы событий. Описание действия состоит из условий и шагов действия, например, посылку извещения
или выполнение удалённой команды.
Посылка извещения производится через предопределенный канал (media).
Команда выполняется с использованием интерфейса.
Итого: текущие значения элементов данных хостов регулярно собираются, обрабатываются и складываются в БД,
триггеры вычисляются, изменения триггеров порождают действия.
Шаблон - набор описаний элементов данных, триггеров, графиков, правил автообнаружения,
которые можно применить при описании хоста.
Возможно автообнаружение хостов и автопривязка агентов,
а также автообнаружение сетевых интерфейсов, файловых систем и др. с помощью правил автообнаружения
и наборов прототипов элементов данных и триггеров.
Вебинтерфейс имеет настраиваемую панель (dashboard), обеспечивающую общий вид и доступ к подробностям.
Панель состоит из прямоугольных виджетов.
zabbix имеет API на базе JSON RPC.
Можно (не пробовал) сконфигурировать кластер серверов высокой доступности (HA) - 1 активный сервер,
остальные сервера находятся в режиме ожидания (работает только процесс управления HA).
Обеспечивать доступность общей БД предлагается самостоятельно.
Каждый контролируемый параметр хоста называется элементом данных (item).
Не рекомендуется иметь более 1000 элементов на хост - будут проблемы в настройке.
Данные могут собираться сервером напрямую (простые проверки, SNMP, IPMI),
внешними скриптами и с помощью агентов (клиентов zabiix), работающими на
контролируемых серверах. Агенты могут собирать данные встроенными средствами и
с помощью скриптов. Веб-мониторинг позволяет извлекать данные с HTML страниц (специальный модуль).
Имеется некоторое количество внутренних проверок работоспособности самого сервера zabbix
и агрегированные проверки.
Некоторые типы (key) элементов данных могут иметь параметры, заключаемые в квадратные скобки.
Часть параметров является необязательной.
Не все типы элементов данных поддерживаются на всех типах ОС (в документации есть таблица
для какой-то старой версии).
При добавлении элемента данных в общем случае указывается
описание, может содержать макросы: $N - N-ый параметр элемента данных; не поддерживается с версии 6
имя (тип, 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)
на сколько надо умножать входные данные
интервал опроса (в секундах)
гибкий интервал позволяет задать различные интервалы опроса в разное время суток
время хранения данных (в сутках)
время хранения суммированных данных (трендов, ежечасные max, min и avg)
активировать или нет (может быть переведён в состояние неподдерживаемого)
что хранить (полученные данные, изменения между измерениями, изменения за секунду)
что показывать (непосредственно хранимое или извлекать строку из таблицы отображения по индексу;
таблицы отображения (только для целых) можно редактировать и создавать в разделе
Настройка/Общие параметры/Преобразование значений; при этом остаётся возможность смотреть графики)
в какие приложения (группы элементов данных) включить элемент данных
Специальный тип данных "status", который определяется, если для хоста мониторится
хотя бы один параметр (0 - хост доступен, 2 - хост недоступен).
Типы данных, собираемые агентами самостоятельно:
agent.ping (целое, 1)
agent.version (строка)
kernel.maxfiles (целое)
kernel.maxproc (целое; в Linux не поддерживается)
log[имя-файла,регулярное-выражение] (при активном мониторинге посылает каждую добавленную
в файл строку на сервер; требуются права на чтение файла для пользователя zabbix;
данные на сервере д.б. типа log и ZABBIX Agent (active); не более 10 строк в секунду;
отслеживается размер файла и текущая позиция, чтобы ничего не пропустить и не удвоить)
net.if.collisions[имя-интерфейса] (целое; коллизий на указанном интерфейсе)
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.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)
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] (объём ОП в байтах) (shared всегда возвращал 0 и был удалён в 2.0)
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)
Возможности агентов могут быть расширены с помощью внешних скриптов.
Для описания внешнего скрипта в конфигурационный файл добавляется строка (требуется перезапуск агента):
UserParameter=уникальное-имя-элемента-данных,незакавыченная команда оболочки с параметрами
Команда может иметь позиционные параметры
(при использовании указываются в квадратных скобках, так же как и для встроенных типов данных):
UserParameter=уникальное-имя-типа-данных[*],команда оболочки с использованием $1 - $10
Простые проверки производятся сервером удалённо без использования агентов.
Типы данных, собираемые простыми проверками:
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 (время оборота)
Для описания элементов данных, собираемых с помощью SNMP,
необходимо для каждого элемента указать:
описание
тип агента (SNMPv1, SNMPv2 или SNMPv3)
SNMP комьюнити для чтения
OID (рекомендуется в числовом виде); возможен динамический поиск OID в формате
(от такого поиска некоторые устройства со слабым CPU могут умереть):
базовая-часть-OID["index","базовая часть OID, в которой будет вестись поиск","строка поиска"]
ifInOctets["index","ifDescr","GigabitEthernet0/1"]
порт (по умолчанию 161)
тип (key), под которым этот OID будет известен (можно сам OID)
Перехват SNMP trap - snmptrap.sh (используется zabbix_sender, настроить по месту)
и snmptrapd из net-snmp (добавить в snmptrapd.conf строку "traphandle default /bin/bash .../snmptrap.sh").
После этого настроить элемент данных.
Типы данных, собираемые IPMI - IPMI имя сенсора и ключ (можно использовать имя сенсора без пробелов).
Предварительно в настройках узла необходимо указать использование IPMI (IP адрес, порт 623, алгоритм аутентификации,
уровень привилегий, имя пользователя и пароль).
Дискретные сенсоры поддерживаются с версии 2.2.
Типы данных, собираемые сервером без использования агентов
с помощью внешних скриптов. Синтаксис (скрипты ищутся в каталоге, заданном параметром
ExternalScripts конфигурационного файла, скрипту дополнительно передаётся имя хоста
в качестве первого параметра, параметры должны быть хотя бы фиктивные):
zabbix[uptime] (время жизни процесса zabbix_server)
Агрегированные проверки не требуют ни агентов, ни прямых обращений
сервера к хостам - первичные данные извлекаются из БД и обрабатываются
(усредняются, суммируются и т.д.). Нельзя комбинировать несколько различных первичных данных.
Формат агрегированной проверки:
имя-групповой-функции["имя группы хостов","элемент данных","тип предобработки","параметр предобработки"]
Последовательность извлеченных элементов данных для одного хоста предобрабатывается
( параметр определяет интервал времени в секундах, извлекаются значения элементов данных,
полученные за этот интервал):
avg (усреднение данных по интервалу)
count (количество имеющихся данных за интервал)
last (последнее значение элемента данных)
max
min
sum (сумма значений)
Групповые функции действуют над предобработанными значениями:
grpavg (среднее по группе)
grpmax
grpmin
grpsum
Вычисляемые элементы данных не требуют дополнительных запросов - данные извлекаются из БД и обрабатываются.
Простая формула состоит из имени функции (набор функций совпадает с функциями триггеров - last, min, max, avg, count и пр.) и параметров в скобках,
первым параметром является имя-ключа или имя-хоста:имя-ключа. Если имя ключа содержит пробелы или другие символы пунктуации,
то необходимо использовать кавычки. Вычисленные значения записываются в базу, записанные значения не изменяются при изменении формулы.
Мониторинг своей СУБД - ?
ZABBIX trapper - значения элемента данных заполняются с помощью
zabber_sender. Указывается список хостов, которым разрешается посылать данные.
Дополнительный модуль с отдельной настройкой для мониторинга HTTP/HTTPS серверов
позволяет периодически выполнять многошаговые сценарии и сохранять результат в БД:
время ответа, скорость загрузки, код возврата, найденная строка.
Куки сохраняются в пределах сценария.
При настройке необходимо задать
в какую группу элементов данных (приложение) включить (обязательно)
имя сценария
интервал выполнения
каким браузером представляться
активность
имена и значения макро, которые будут использоваться при описании шагов сценария, в виде:
{имя}=значение
шаги сценария (HTTP запросы)
имя
URL
имена и значения POST переменных (можно использовать макро)
максимальное время ожидания (отдельно для соединения и самого запроса)
регулярное выражение для поиска в результатах HTTP запроса,
для успешности этапа поиск должен быть успешен (пустое выражение всегда успешно)
коды возврата через запятую, считающиеся успешными (пустой список - любой код)
При создании каждого сценария автоматически добавляются элементы данных:
web.test.in[имя-сценария,,bps] - средняя скорость загрузки (байт в секунду, float)
для всего сценария
web.test.fail[имя-сценария] - номер неудачного шага (0 - если весь сценарий завершился удачно)
При создании каждого шага сценария автоматически добавляются элементы данных:
web.test.in[имя-сценария,имя-шага,bps] - средняя скорость загрузки (байт в секунду, float) для шага
web.test.time[имя-сценария,имя-шага] - время ответа в секундах, float
web.test.rspcode[имя-сценария,имя-шага] - код возврата, целое
Написать свой скрипт, извлекающий значение со страницы
и вставить его в cron (вызывать как внешнюю проверку) оказалось проще, чем использовать этот модуль.
Некоторые элементы данных могут перейти в разряд "неподдерживаемых",
если сервер или агент не могут получить соответствующее значение (смотрите в журналы!),
Это можно заметить пробежавшись в настройке элементов данных по всем узлам.
Периодически (по умолчанию - 600 секунд) сервер пытается проверить их работоспособность.
Получить список неподдерживаемых элементов данных в версии 1.8:
"SELECT description,key_,host FROM items LEFT JOIN hosts ON items.hostid = hosts.hostid WHERE items.status = 3; ".
Получить список неподдерживаемых элементов данных: Настройка -> Узлы сети; фильтр сбросить; фильтр "состояние не поддерживается" .
В версии 2.2 появился специальный тип извещений о переходе элементов в неподдерживаемые.
Триггер (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 секунд)
regexp (1 - указанное в качестве первого параметра регулярное выражение
соответствует значению элемента данных за указанный интервал в секундах или за указанное
количество отсчётов (число предваряется символом '#');
с учётом регистра символов)
str (1 - указанная в качестве первого параметра подстрока найдена
в элементе данных за указанный интервал в секундах или за указанное
количество отсчётов (число предваряется символом '#');
с учётом регистра символов)
sum (сумма значений за указанный интервал в секундах или за указанное
количество отсчётов (число предваряется символом '#'))
time (текущее время в формате HHMMSS)
Триггер может зависеть от других триггеров, т.е. он не меняет своё состояние в соответствии
со значением выражения, а событие не генерируется, если хотя бы один из
этих триггеров взведён.
События могут генерироваться только при взведении триггера или каждом
изменении взведённого триггера (Multiple TRUE events).
Триггер имеет уровень серьёзности (представляется цветом и звуком
в вебинтерфейсе, определяет допустимость средства доставки (Media) сообщения и используется
в условных действиях):
Not classified (серый)
Information (зелёный)
Warning (жёлтый)
Average (тёмнокрасный)
High (красный)
Disaster (алый)
Триггер может содержать комментарии, которые могут передаваться в сообщении,
и URL, которые будет доступен на странице состояния триггеров.
Действие (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 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
операция (operation) или набор операций;
для событий автообнаружения можно также добавить или удалить хост,
добавить хост в группу или удалить из группы, связать хост с шаблоном или отвязать;
параметры операции:
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), генерации имён триггеров.
Вызов макроса заключается в фигурные скобки. Вызовы макросов могут быть вложенными.
Имена макросов:
{DATE} - текущая дата (yyyy.mm.dd)
{ESC.HISTORY} - журнал предыдущих сообщений в истории эскалации
{EVENT.AGE} - возраст события (в секундах?)
{EVENT.DATE} - дата события
{EVENT.ID} - номер (идентификатор) события
{EVENT.TIME} - время события (формат - hh:mm:ss)
{HOSTNAME} - имя хоста первого элемента данных из выражения, определяющего
переключившийся триггер, вызвавший событие
{HOST.CONN} - IP адрес или DNS имя хоста (зависит от настроек)
{HOST.DNS} - DNS имя хоста
{IPADDRESS} - IP адрес хоста первого элемента данных из выражения, определяющего
переключившийся триггер, вызвавший событие
{ITEM.LASTVALUE} - последнее значение первого элемента данных из выражения, определяющего
переключившийся триггер, вызвавший событие
{ITEM.NAME} - имя первого элемента данных из выражения, определяющего
переключившийся триггер, вызвавший событие
{ITEM.VALUEномер} - ?
{PROFILE.CONTACT} - контактное лицо из профиля хоста
{PROFILE.DEVIDETYPE} - тип устройства из профиля хоста
{PROFILE.HARDWARE} - тип оборудования из профиля хоста
{PROFILE.NAME} - имя из профиля хоста
{PROFILE.LOCATION}
{PROFILE.MACADDRESS}
{PROFILE.NOTES}
{PROFILE.OS}
{PROFILE.SERIALNO}
{PROFILE.SOFTWARE}
{PROFILE.TAG}
{STATUS} - см. {TRIGGER.STATUS}
{TIME} - текущее время (hh:mm:ss)
{TRIGGER.COMMENT} - комментарий к переключившемуся триггеру, вызвавшему событие
{TRIGGER.ID} - номер (идентификатор) триггера
{TRIGGER.KEY} - тип (key) первого элемента данных из выражения, определяющего
переключившийся триггер, вызвавший событие
{TRIGGER.NAME}
{TRIGGER.NSEVERITY} - уровень серьёзности (0 - непонятно, 1 - информация, 2 - предупреждение,
3 - так себе происшествие, 4 - реальная проблема, 5 - сливай воду
{хост:тип.функция(параметр)} - значение элемента данных аналогично выражениям,
используемым для задания триггеров (см. выше описание триггера))
Для посылки извещений администратором определяется среда передачи (Media):
тип
e-mail (необходимо указать имя SMTP сервера, обратный адрес и HELO)
Jabber
свой скрипт, которому передаются следующие параметры: получатель, тема, сообщение
SMS через GSM модем, подключённый к последовательному порту (параметры
линии устанавливаются другим ПО; пользватель zabbix должен иметь права на чтение
и запись к устройству; модем не должен требовать ввода PIN;
В настройках пользователя указывается среда передачи (можно несколько):
время доступности среды передачи
уровень серьёзности сообщений для передачи по этой среде
События и действия хранятся в БД (время хранения - 365 дней - задаётся
в настройках сборки мусора), их можно просмотреть и подтвердить получение или написать комментарий.
Для ускорения настройки введено понятие
шаблона (Template) - одинаковый набор данных, триггеров и графиков можно описать
один раз, а затем использовать (связать, link) при описании хоста.
К одному хосту может быть привязано несколько шаблонов.
При описании шаблона можно также ссылаться на другие шаблоны (иерархический шаблон).
Шаблон или его элементы можно также копировать в другой шаблон или хост.
При изменении шаблона необходима осторожность:
добавления к шаблону как и ожидается добавляются к хостам, к которым привязан шаблон,
удаления из шаблона не удаляются из хостов (удалить и очистить?),
изменения - как повезёт.
Не менее полезной особенностью является возможность
массового внесения изменений в конфигурацию узлов, элементов данных, триггеров.
Только не надо массово добавлять шаблоны - старые при этом удаляются!
В особо тяжёлых случаях можно экспортировать часть конфигурации
(гибкие возможности выбора) в формате XML, изменить и вернуть обратно.
При импорте можно указать правила обработки для уже существующих и новых объектов:
изменять, добавлять, пропускать.
Экспортируются: хосты (настройки хоста и ссылки на шаблоны, шаблоны, приложения, элементы данных, триггеры,
графики, макросы), карты, комплексные отчёты.
Модуль автоматического обнаружения (отдельный пункт настройки) пробегает по указанному
диапазону адресов (списку диапазонов адресов) с указанным интервалом времени,
пытаясь обнаружить неизвестный ранее хост.
Типы проверок:
SSH (можно указать порт, интервал портов, список портов)
LDAP (можно указать порт, интервал портов, список портов)
SMTP (можно указать порт, интервал портов, список портов)
FTP (можно указать порт, интервал портов, список портов)
HTTP (можно указать порт, интервал портов, список портов)
POP (можно указать порт, интервал портов, список портов)
NNTP (можно указать порт, интервал портов, список портов)
IMAP (можно указать порт, интервал портов, список портов)
TCP (можно указать порт, интервал портов, список портов)
Zabbix агент (можно указать порт и ключ)
SNMPv1 (можно указать порт, комьюнити, OID)
SNMPv2 (можно указать порт, комьюнити, OID)
ICMP ping (fping)
При обнаружении или пропадании хоста генерируется событие
(Service Up, Service Down, Host Up, Host Down, Service Discovered, Service Lost, Host Discovered, Host Lost),
к которому можно привязать действие (условия и операции),
так же как и к событию, порождённому
изменением состояния триггера. Для событий автообнаружения кроме посылки извещений
и выполнения скриптов можно также: добавить или удалить хост,
добавить хост в группу или удалить из группы, связать хост с шаблоном или отвязать от шаблона.
В документации приводится пример, как автоматически включать в мониторинг хосты,
которые активны более 1 часа и выключать их после 24 часов неактивности,
причём использовать различные шаблоны (на основании значения system.uname,
предоставляемого агентом). Одно непонятно - зачем это нужно?
Правил автообнаружения может быть много.
Модуль LLD (Low-level discovery) позволяет автоматически добавлять
элементы данных, триггеры и графики для обнаруживаемых файловых систем, сетевых интерфейсов,
ЦПУ и SNMP OID. Можно добавить свои правила LLD.
Имеется возможность автоматической регистрации активных клиентов.
Zabbix позволяет определить SLA для иерархии услуг IT,
задавая метод вычисления, допустимый предел, часы обслуживания и привязку к состоянию триггеров,
а затем отслеживать его соблюдение.
Веб-интерфейс консоли управления реализован через
обращение PHP скриптов напрямую к СУБД. Поддерживается SSL.
Консоль позволяет как просмотр собранных данных, так и настройку.
Автоматическое отсоединение после 30 минут бездействия.
После 5 неудачных попыток доступ блокируется на 1 минуту,
а IP-адрес показывается настоящему администратору.
Консоль отображает состояние контролируемых объектов и элементов данных, состояние триггеров,
историю событий и реакций оператора, карту сети и графики изменения элементов данных.
Главная панель (входная страница, dashboard) даёт общий обзор состояния триггеров и сервера zabbix.
Настраивается доступ к популярным графикам, отчётам и картам.
Можно выбрать несколько объектов из списка, нажимая Ctrl одновременно
с указанием мышью.
Каждый пользователь может подогнать вид консоли под свои нужды - поменяв
главную панель, создав свои графики, карты, экраны и прочее.
Кроме встроенных графиков по каждому элементу данных численных типов (настройка не требуется)
можно определять свои составные графики: имя, ширина, высота, тип (нормальный, стек, пирог, 3D пирог),
показывать ли границы рабочего времени (настраивается в общих настройках),
показывать ли границы триггеров, тип оси Y (автоматически, положительное автоматически, вручную),
элементы данных (имя, предобработка, что делать при наличии нескольких данных в одном пикселе,
цвет, тип линии или заполнения, приоритет сортировки - с меньшим числом будет внизу стека).
Нельзя составлять выражения из элементов данных.
Графики автоматически обновляются (можно настроить интервал обновления, начальное время и масштаб).
Карта позволяет наглядно показать связь хостов между собой,
цветом отображается состояние хоста (узлы) или триггера (соединения).
Картинку (общие размеры задаются в пикселах) до версии 1.8 необходимо было рисовать самостоятельно,
задавая вручную координаты (в пикселах) иконок хостов на плоскости и какой хост с каким соединён.
Новые иконки (встроенные ужасны) загружаются в общих настройках (PNG, 48x48 или 24x24).
Там же можно загружать фоновые картинки (масштабирование при визуализации не производится).
Рекомендуется предварительно задуматься о прозрачности. Удаления иконок нет.
В общих настройках карты указывается тип подписей (указанную при составлении карты подпись и статус,
IP адрес и статус, имя хоста и статус, только статус хоста или совсем ничего)
к иконкам и где их размещать по умолчанию.
Для каждого элемента карты указываются
тип элемента карты
иконка изображает состояние всех триггеров хоста (Host, узел сети)
иконка изображает состояние всех элементов карты (нет такого?)
иконка изображает состояние триггера
иконка изображает состояние всех триггеров всех хостов группы
ни с чем не связанная иконка
подпись к иконке (см. общие настройки карты)
расположение подписи, если не по умолчанию
хост, группа или триггер в зависимости от типа элемента карты
имя иконки для объекта в нормальном состоянии, при наличии проблемы,
при неопределённом состоянии, при отключённом объекте
URL, который будет связан с иконкой (иначе будет доступ к скриптам и триггерам хоста)
Для каждого соединения элементов карты указываются
элементы карты, которое оно соединяет
тип и цвет линии для нормального состояния
набор триггеров, позволяющих изменить тип линии и цвет соединения
значения элементов данных ({host:key.func(param)})
К узлам карты могут быть приписаны скрипты (Администрирование - Скрипты).
При задании команды можно использовать макросы {HOST.CONN}, {HOST.DNS}, {IPADDRESS}.
В комплекте идут ping и traceroute (запускаются на сервере, результат в окне браузера).
В настройках скриптов можно задать допустимую группу пользователей, группу хостов
и наличие прав на чтение или запись.
Экран (Screen, комплексный отчёт) позволяет
собрать свою страницу из карт, графиков, триггеров и прочего.
Экран представляет собой прямоугольную таблицу (можно сливать ячейки по горизонтали и вертикали),
в ячейках которой можно размещать:
часы
обзор данных о группах хостов
встроенные графики
определённые пользователем графики
информацию о хостах
карты
строки текста
обзор состояния сервера
общий обзор триггеров
обзор триггеров для группы хостов
историю событий
историю действий
вложенные экраны
вложенные произвольные страницы (URL)
Ячейки можно сливать по горизонтали и вертикали,
выравнивать содержимое по горизонтали и вертикали.
Из экранов можно делать слайд-шоу, задав последовательность экранов
и интервал демонстрации каждого из них.
Инвентаризация - поиск и просмотр профилей узлов (модель, серийный номер
и пр.). Увы - их придётся в начале задать и скорее всего они уже есть в другой системе инвентаризации.
Есть аудит действий системы (action) и действий администратора
(вход, выход, добавление, удаление, изменение).
Пишется не всё: например, удаление и очистка включения шаблона из описания узла.
Можно заблокировать доступ к интерфейсу, поменяв conf/maintenance.conf.php.
Тему оформления можно подогнать под свой вкус, отредактировав styles/css_имя-темы.css,
и включив в include/forms.inc.php.
Методы аутентификаци: собственный (имена и пароли, хранятся в БД в зашифрованном виде), от Apache, LDAP.
В случае аутентификации Apache и LDAP пользователь в смысле Zabbix тоже должен существовать,
но его пароль не используется. При использовании LDAP пользователи из группы, для которой
указан метод доступа "Internal", будут аутентифицироваться локально.
Управление правами доступа осуществляется с помощью включения пользователя в
группы пользователей и задания прав доступа для группы пользователей к группам хостов на чтение или чтение и запись.
Типы пользователей:
ZABBIX User (доступ к меню мониторинга, по умолчанию
не имеет доступа ни к каким хостам и группам, необходимо предоставлять доступ явно)
ZABBIX Admin (доступ к меню мониторинга и конфигурации, по умолчанию
не имеет доступа ни к каким хостам и группам, необходимо предоставлять доступ явно)
ZABBIX Super Admin (доступ к меню мониторинга, конфигурации и администрирования;
имеет неотзывный доступ на чтение и запись ко всем хостам и группам)
Для пользователя также задаются: входное имя, имя собственное, фамилия,
список групп, среда передачи сообщений (Media), язык (русский есть), тема оформления,
использование куки для автоматического входа, выход по неактивности, начальный URL,
интервал обновления экрана. Здесь же можно посмотреть права доступа, определяемые членством в группах.
Пользователь может самостоятельно настроить (в профиле): пароль, язык, тему оформления,
использование куки для автоматического входа, начальный URL,
интервал обновления экрана.
По умолчанию создаются пользователи Admin (максимальные права) и Guest (минимальные права,
в этом режиме с системой могут работать незарегистрированные пользователи).
Для группы пользователей определяется:
список пользователей, доступность вебинтерфейса (включить, выключить, системные умолчания),
заблокированность пользователя, права на запись/чтение и чтение к группам хостов,
запрещённые группы хостов (?).
Можно создавать свои группы пользователей и имеются группы пользователей "из коробки":
Zabbix administrators (члены этой группы получают извещения о проблемах с СУБД)
UNIX administrators
WEB administrators
Security specialists
Network administrators
Head of IT department
Disabled (сюда надо помещать временно заблокированных пользователей вместо их удаления)
Конфигурационный файл имеет текстовый формат.
На каждой строке задаётся значение одного параметра в формате "имя=значение".
Комментарии начинаются с символа '#'.
Параметры:
StartPollers (5; начальное количество опрашивающих процессов)
StartIPMIPollers (0; нужен хотя бы 1, есть есть потребность собирать информацию через IPMI)
StartPollersUnreachable (1; начальное количество опрашивающих процессов для недоступных хостов)
StartTrappers (5; начальное количество слушающих процессов)
StartPingers (1; начальное количество процессов, занимающихся пингами)
StartDiscoverers (1; начальное количество процессов, занимающихся обнаружением новых хостов)
StartHTTPPollers (1; начальное количество процессов, извлекающих информацию с веб-страниц)
ListenIP (все; адрес для получения информации от активных агентов))
ListenPort (10051; порт для получения информации от активных агентов)
SourceIP (адрес для исходящих соединений)
HousekeepingFrequency (1; интервал в часах - от 1 до 24 - между запусками процесса
удаления данных (history, alert, alarms) с истёкшим сроком хранения)
DisableHousekeeping (0)
SenderFrequency (30; интервал в секундах между попытками послать извещение)
Timeout (5; время ожидания от 1 до 30 секунд данных от агента)
TrapperTimeout (5; максимальное время обработки данных слушающим процессом
в секундах - от 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 - без ограничений
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 (0; включить кеширование обращений к СУБД)
Include (вставляет содержимое указанного файла)
NodeID (0; номер узла для распределённой системы мониторинга, 0 - локальная система)
NodeNoEvents (0; не посылать локальные события главному злу)
NodeNoHistory (0; не посылать локальные данные главному узлу)
--install | --uninstall | --start | --stop (только MS Windows)
Конфигурационный файл имеет текстовый формат.
На каждой строке задаётся значение одного параметра в формате "имя=значение".
Комментарии начинаются с символа '#'.
Параметры:
Server (; IP адрес или имя сервера; можно указывать список через запятую;
для активных проверок используется первый адрес из списка)
ServerPort (10051; порт сервера для активных проверок)
Hostname (уникальное имя хоста для активных проверок - это имя узла zabbix, а не имя хоста DNS)
ListenPort (10050; номер порта для приёма запросов)
ListenIP (все; IP адрес для привязки приёмного порта)
SourceIP (; IP адрес для исходящих соединений)
StartAgents (3 (5 в версии 1.4); начальное количество слушающих процессов; одного недостаточно)
RefreshActiveChecks (120; интервал в секундах для запроса списка элемента данных активных проверок)
DisableActive (0; только отвечать на запросы)
DisablePassive (0; не принимать запросы)
EnableRemoteCommands (по разному; разрешить приём удалённых команд)
PidFile (/var/tmp/zabbix_agentd.pid; изменять не стоит)
LogFile (/var/log/zabbix/zabbix_agentd.log; права доступа; в комментариях сказано, что при
неустановленном значении будет выдаваться на syslog - не работает)
LogFileSize (1; максимальный размер журнала в мегабайтах;
при превышении производится ротация журнала; 0 - без ограничений
Timeout (3; разрешается тратить на обработку не более указанного количества секунд;
некоторые внешние скрипты выполняются медленно; zabbix_agentd не убивает запущенный процесс,
только престаёт ждать ответ)
UserParameter (указывается ключ элемента данных и строка для командной оболочки (bash);
командная строка должна хоть что-то вернуть)
BufferSend (5; не держать данные в буфере дольше указанного количества секунд)
BufferSize (100; размер буфера значений элементов данных в штуках)
Include (вставляет содержимое указанного файла)
Alias (?)
AllowRoot (?)
LogUnresolvedSymbols (?)
На замену готовится agent2. Написан на Go. Не использовал.
Создать пользователей (Zabbix Super Admin, во всех группах, кроме guest и disabled).
Разрешить в качестве средства достувка email в любое время и по любому поводу.
Английский язык (от прошлой версии осталось неприятное воспоминание).
Тему по умолчанию. Автоматический вход. Увеличить интервал перерисовок.
URL на dashboard.php. Проверить права (на всякий случай).
Скопировать предопределённые шаблоны и настроить под свои нужды.
В частности, из Template_Linux сделать шаблон с набором действительно общих
для всех хостов элементов данных Template_LinuxCore (без сервисов, которые есть не на каждом хосте)
и отдельные шаблоны для каждого сервиса и дополнительных аппаратных особенностей
(Template_eth1, Template_eth1-eth5 и т.д.).
Шаблон Template_HP_InsightManager содержит только элементы даннх статуса
(из 11 тысяч доступных).
При расчёте требуемого места для хранения данных необходимо учесть
количество контролируемых элементов данных, частоту их обновления, время хранения,
затраты СУБД на хранение каждого значения (50 байт на число),
учесть место под суммарные данные (trend) и записи о событиях.
Кеширование доступа к СУБД уменьшает нагрузку на CPU в несколько раз,
но события могут запаздывать на несколько секунд.
make install # а где веб-интерфейс?
а /etc/zabbix/web/zabbix.conf.php? /etc/zabbix/web/maintenance.inc.php? /usr/share/zabbix/ (сайт)?
/etc/opt/rh/rh-php73/php-fpm.d/zabbix.conf?
/etc/httpd/conf.d/zabbix.conf?
сделать /usr/local/share/zabbix/externalscripts ссылкой на имеющийся /etc/zabbix/externalscripts
сделать /usr/local/share/zabbix/alertscripts ссылкой на имеющийся /etc/zabbix/alertscripts (если есть?)
слить /etc/zabbix/zabbix_agentd.conf (/etc/zabbix_agentd.conf) и /usr/local/etc/zabbix_agentd.conf, /etc/zabbix/zabbix_agentd.d/* и /usr/local/etc/zabbix_agentd.conf.d/*
имеющийся /etc/logrotate.d/zabbix-agent подойдёт и для новой версии под именем /etc/logrotate.d/zabbix6-agent
подойдёт ли имеющийся /usr/lib/tmpfiles.d/zabbix-agent.conf? чистит /run/zabbix (/var/run - это ссылка на /run), скопировать под именем /usr/lib/tmpfiles.d/zabbix6-agent.conf
сделать /usr/lib/systemd/system/zabbix6-agent.service из /usr/lib/systemd/system/zabbix-agent.service
systemctl daemon-reload
остановить zabbix-agent
запустить zabbix6-agent; если всё хорошо, то enable его (и disable старый)
удалить старую версию агента и утилит: yum remove zabbix-get-5.0.23-1.el7.x86_64 zabbix-sender-5.0.23-1.el7.x86_64 zabbix-agent2-5.0.23-1.el7.x86_64
zabbix-agent-5.0.23-1.el7.x86_64 zabbix-js-5.0.23-1.el7.x86_64
слить /etc/zabbix/zabbix_server.conf и /usr/local/etc/zabbix_server.conf, /etc/zabbix/zabbix_server.d/*.conf и /usr/local/etc/zabbix_server.conf.d/*.conf
права 640 root:zabbix для /usr/local/etc/zabbix_server.conf
имеющийся /etc/logrotate.d/zabbix-server подойдёт и для новой версии под именем /etc/logrotate.d/zabbix6-server
подойдёт ли имеющийся /usr/lib/tmpfiles.d/zabbix-server.conf? чистит /run/zabbix (/var/run - это ссылка на /run),
скопировать под именем /usr/lib/tmpfiles.d/zabbix6-server.conf
сделать /usr/lib/systemd/system/zabbix6-server.service из /usr/lib/systemd/system/zabbix-server.service
systemctl daemon-reload
остановить rh-php73-php-fpm (про который я забыл в первый раз) и httpd
остановить zabbix-server
запустить zabbix6-server - проблема обновления БД ([Z3005] query failed: [1118] Row size too large.
The maximum row size for the used table type, not counting BLOBs, is 8126.
This includes storage overhead, check the manual.
You have to change some columns to TEXT or BLOBs [alter table `config` add `default_lang` varchar(5) default 'en_GB' not null]
mysql -u root -p zabbix -e "set global innodb_strict_mode='OFF';"
systemctl start zabbix6-server
дождаться завершения обновления БД
mysql -u root -p zabbix -e "set global innodb_strict_mode='ON';"
БД обновилась, но сервер падает при запуске "server #2 started [configuration syncer #1]":
[Z3005] query failed: [2000] Unknown MySQL error [select tls_psk_identity,tls_psk from config_autoreg_tls order by autoreg_tlsid]
zabbix_server [2553]: ERROR [file and function: <dbconfig.c,DCsync_configuration>, revision:3d787ff402e, line:6687] Something impossible has just happened.
немного попинал mariadb105 и zabbix6-server и зависший php-fpm (надо было "systemctl stop rh-php73-php-fpm"), словами не описать
если всё хорошо, то enable его (и disable старый)
удалить старую версию сервера: yum remove zabbix-server-mysql-5.0.23-1.el7.x86_64
скопировать файлы вебинтерфейса из каталога ui в /usr/share/zabbix6
mkdir /usr/share/zabbix6
cd ui
cp -a . /usr/share/zabbix6
настройки PHP от предыдущей версии в /etc/opt/rh/rh-php73/php-fpm.d/zabbix.conf (копия в /etc/opt/rh/rh-php73/php-fpm.d/zabbix6.conf?)
имя каталога /usr/share/zabbix6 в /etc/httpd/conf.d/zabbix.conf (скопировать в /etc/httpd/conf.d/zabbix6.conf)
имя сервера в /etc/zabbix/web/zabbix.conf.php
cp -a /etc/zabbix/web/zabbix.conf.php /usr/share/zabbix6/conf/zabbix.conf.php
systemctl start rh-php73-php-fpm
systemctl start httpd
позиционные параметры в именах элементов данных отображаются теперь как $1 - тыщи их!
удалить старую версию интерфейса: yum remove zabbix-web-5.0.23-1.el7.noarch (тянет остальные))
перезапустить rh-php73-php-fpm и httpd (для тестирования)
таблицы значений поплыли (они перестали быть глобальными и привязываются к узлу), как это искать?
Memory и Fan превратились в "Application: Memory" и "Application: Fan", которые на экране обрезаются до "Application: ..."
очень старые проблемы не показываются на панели
в таблицах history* отсутствуют первичные ключи, инструкция странная (через выгрузку таблиц в CSV, требует места под копию таблиц и копию в CSV)
Настройки очистки БД переехали из файла настройки в вебинтерфейс и выключены по умолчанию.
Проблемы:
AH01071: Got error
PHP message: PHP Notice: Undefined index: show_opdata in /usr/share/zabbix/include/classes/screens/CScreenProblem.php on line 593
PHP message: PHP Notice: Undefined index: show_opdata in /usr/share/zabbix/include/classes/screens/CScreenProblem.php on line 795
в требованиях заявлена как минимум MariaDB 10.0.37 и формат dynamic, а в наличии 5.5.68 и формат compact, и что с этим делать?
в таблице hosts большие поля error, ipmi_error, snmp_error, jmx_error, tls_* (предлагают "alter table hosts row_format = dynamic";
продолжает показывать Compact, но в Create_options теперь стоит row_format=DYNAMIC (и в "show create table hosts");
тот же результат у "OPTIMIZE TABLE hosts";
в новой версии имеется "SET GLOBAL innodb_default_row_format=DYNAMIC;");
хотя у меня установлена innodb_file_per_table
изменение формата чисел с плавающей точкой надо провести вручную, иначе в виджете состояния выводится:
database is not upgraded to use double precision values (Таблицы истории в базе данных обновлены - нет)
при этом имеется /etc/rh-mariadb105-my.cnf - ссылка на /etc/opt/rh/rh-mariadb105/my.cnf, подменил его на ссылку на старый /etc/my.cfg
/etc/my.cnf.d/mysql-clients.cnf не изменился
/etc/my.cnf.d/client.cnf отсутствует (был пуст)
восстановить /etc/my.cnf.d/server.cnf
при этом имеется /etc/rh-mariadb105-my.cnf.d - ссылка на /etc/opt/rh/rh-mariadb105/my.cnf.d, в котором
client.cnf (пустой) - заменил на ссылку /etc/my.cnf.d/client.cnf (тоже пустой)
enable_encryption.preset - заготовка, не трогал
spider.cnf - пуст, не трогал
mysql-clients.cnf (пустой) - заменил на ссылку /etc/my.cnf.d/mysql-clients.cnf
server.cnf - заменил на ссылку /etc/my.cnf.d/server.cnf, в который внёс изменения
(в секцию mysql перенёс правильные datadir, socket, log-error, pid-file); секция mysqld_safe перестала существовать?
запустить службу; служба называется rh-mariadb105-mariadb, алиас mysql и mysqld, ссылка на mariadb;
/etc/systemd/system/mariadb.service.d/limits.conf (LimitNOFILE=10000) уже имеется
убрать старые опции в /etc/my.cnf.d/server.cnf, запустить службу
mysql_upgrade -p # пытается обновить БД lost+found, создаёт БД lost@002bfound, удалить?
остановить службу
запустить службу, enable её
проблема статуса: Active: inactive (dead)
/opt/rh/rh-mariadb105/root/usr/lib64 в /etc/ld.so.conf.d/mariadb105-x86_64.conf; ldconfig
Запустить httpd (если всё хорошо, то enable). Возможно потребуется очистить куки.
Проблемы:
изменилась логика при описании действий - надо всё проверить и откорректировать
проблемы мигают в панели: администрирование -вебинтерфейс - Опции отображения триггеров
character set name or collation name that is not supported by Zabbix found in 234 column(s) of database "zabbix";
only character set "utf8" and collation "utf8_bin" should be used in database;
неподдерживаемая кодовая страница или тип сравнения для таблиц: acknowledges, ...;
кодовая страница БД правильная: SELECT @@character_set_database, @@collation_database - utf8 и utf8_bin;
рекомендуемая процедура преобразования таблиц:
остановить httpd и zabbix-server-mysql; при необходимости поправить кодировку БД zabbix (alter database zabbix character set utf8 collate utf8_bin;); загрузить процедуру в СУБД;
запустить процедуру (долго, увеличивает размер БД, требуется место под копию самой большой таблицы):
SET @ZABBIX_DATABASE = 'zabbix'; set innodb_strict_mode = OFF; CALL zbx_convert_utf8(); set innodb_strict_mode = ON; drop procedure zbx_convert_utf8;
запустить zabbix-server-mysql
event name update completed (и?)
error reason for "SVF v0:hwEntityOpticalBiasCurrent.40GE1.31" changed:
Value "-1" of type "string" is not suitable for value type "Numeric (unsigned)" # 40GE1.32 40GE2.31 40GE2.32 (действительно эти трансиверы не поддерживают сбор данных)
аналогично hwEntityOpticalTemperature (действительно эти трансиверы не поддерживают сбор данных)
error reason for "grid0037:SystemAirflow" changed: Invalid port value "";
error reason for "grid0037:DIMMThrmMrgn3" changed: Invalid port value "";
error reason for "grid0037:BB11VPCH" changed: Invalid port value "" (непонятно, после борьбы с BMC данные на месте)
error reason for "grid0108:HSBPTemperature" changed: error 0x10000c3 while reading threshold sensor (и на других серверах того же типа, отключил)
error reason for "powersum:current_input" changed: Cannot evaluate expression: "Cannot evaluate function "last()": item "powerdir2:current_input" not supported."
(данные пока недоступны - нет маршрута до датчиков)
error reason for "powerdc:current_input" changed: Cannot evaluate expression: "Cannot evaluate function "last()": item "powerdir2:current_input" not supported."
BMC платформы Intel SR1680MVR зависают при попытке использовать IPMI
./configure --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp --with-openipmi --with-ldap
# --with-ssh2 требует версию 1.0.0 или выше
make
make install
/usr/local/sbin/ (zabbix_agent (запускается через xinetd),
zabbix_agentd (самостоятельный), zabbix_server
удалить остатки старой версии: /usr/local/sbin/zabbix_get, /usr/local/sbin/zabbix_sender
где zabbix_snmptrap?
скопировать из misc/conf/ в /etc/zabbix и отредактировать zabbix_server.conf и zabbix_agentd.conf (кстати, удалена опция StartDBSyncers),
права доступа
удалить индексы (MySQL), не все они существуют:
alter table dhosts drop index dhosts_1;
alter table dservices drop index dservices_1;
alter table httptest drop index httptest_2;
alter table httptest drop index httptest_3;
alter table history_log drop index history_log_2;
alter table history_text drop index history_text_2;
alter table actions drop index actions_1;
alter table escalations drop index escalations_2;
alter table graphs_items drop index graphs_items_1;
alter table graphs_items drop index graphs_items_2;
alter table services drop index services_1;
запастись правами и местом на диске (двухкратное? у меня ничего не потребовалось)
mysql zabbix -u zabbix -p < upgrades/dbpatches/1.8/mysql/patch.sql
service zabbix_agentd start
service zabbix_server start
проблемы с IPMI: адрес IPMI сбросился в 127.0.0.1, в качестве DNS имени указан бывший адрес IPMI
проблемы с элементами данных типа символ, извлекаемыми с помощью SNMP: была строка,
включая двойные кавычки, стала без кавычек - сработали триггеры на изменение
Веб-интерфейс
исправить /etc/php.ini и перезапустить httpd (service httpd restart)
адаптировать /var/www/html/zabbix169/conf/zabbix.conf.php и /var/www/html/zabbix/conf/zabbix.conf.php.example
в /var/www/html/zabbix/conf/zabbix.conf.php,
права доступа: chown apache /var/www/html/zabbix/conf/zabbix.conf.php; chmod 440 /var/www/html/zabbix/conf/zabbix.conf.php
при первом запуске могут предложить провести установку системы, надо вежливо отказаться
русский текст из знаков вопроса
контрольная панель теперь не влезает на экран по ширине
опция "предварительные проверки" при установке рекомендует ещё увеличить лимиты в /etc/php.ini
и перезапустить httpd (service httpd restart)
смонтировать /dev/mapper/system-mysql на /var/lib/mysql (и позаботиться о правах доступа)
будет использоваться InnoDB в тяжёлом режиме (my-innodb-heavy-4G.cnf)
skip-networking
#log-bin
myisam_max_sort_file_size = 1G (где он будет создаваться?)
myisam_max_extra_sort_file_size = 1G (где он будет создаваться?)
innodb_data_file_path = ibdata1:19000M:autoextend # тютелька-в-тютельку с учётом журналов
innodb_flush_log_at_trx_commit = 0 # немножко увеличивает риск, но сильно уменьшает нагрузку
innodb_fast_shutdown
innodb_flush_method=O_DIRECT # исключает дублирование данных в файловом кеше,
не стоит использовать в конфигурации с SAN, размер буферов должен быть достаточным
Установка сервера и агента Zabbix
создать пользователя zabbix (useradd zabbix;
зачем ему домашний каталог и bash?)
развернуть архив
создание БД
echo "create database zabbix" | mysql -u root -p
cat create/schema/mysql.sql | mysql -u root -p zabbix
cat create/data/data.sql | mysql -u root -p zabbix
cat create/data/images_mysql.sql | mysql -u root -p zabbix
создание пользователя zabbix для MySQL
mysql -u root -p zabbix
grant all privileges on zabbix.* to zabbix@localhost;
grant all privileges on zabbix.* to zabbix@"%";
SET PASSWORD FOR 'zabbix'@'localhost' = PASSWORD('пароль');
SET PASSWORD FOR 'zabbix'@'%' = PASSWORD('пароль');
/usr/local/sbin/ (zabbix_agent (запускается через xinetd),
zabbix_agentd (самостоятельный), zabbix_get, zabbix_sender, zabbix_server
и это всё?
mkdir /etc/zabbix
mkdir /etc/zabbix/externalscripts
mkdir /var/log/zabbix (и права)
cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/ (отредактировать под zabbix и local)
cp misc/conf/zabbix_server.conf /etc/zabbix/ (отредактировать - имя, пароль, DBSocket,
LogFile - и права доступа; вывод в syslog не работает!)
chkconfig --add zabbix_server
chkconfig --level 2345 zabbix_server on
service zabbix_server start # какая толпа процессов!
cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/ (отредактировать под zabbix и local)
cp misc/conf/zabbix_agentd.conf /etc/zabbix/ (отредактировать LogFile; вывод в syslog не работает!)
chkconfig --add zabbix_agentd
chkconfig --level 2345 zabbix_agentd on
service zabbix_agentd start
установить агентов на контролируемых хостах
открыть порт tcp/10050 на агентах
открыть порт tcp/10051 на сервере
Веб-интерфейс
установить Apache (пакет httpd) и
PHP (пакеты php php-mysql php-bcmath php-gd);
рекомендуется завести отдельный виртуальный сервер, направив его на /var/www/html/zabbix/
настроить по шагам (выясняется, что сервер zabbix умеет обращаться к
MySQL через сокет, а вебинтерфейс - нет; пришлось включить сетевой доступ к MySQL)
вручную скопировать сохранённый файл с настройками в /var/www/html/zabbix/conf/zabbix.conf.php
(я использовал метод Copy/Paste и в конец файла прокралась пустая строка -
сивол NL выводился в начале каждой генерируемой картинки ;)
можно заходить под именем Admin и паролем zabbix и тут же его поменять
в разделе конфигурации добавить хост "ZABBIX Server" с шаблоном Template_Linux
и начать мониторинг
Определение и настройка контролируемых объектов, элементов данных,
триггеров, пользователей и их прав, средств доставки и красивых карт и консолей.
установить mysql-devel, postgresql-devel, net-snmp-devel, iksemel-devel, unixODBC-devel, OpenIPMI-devel
скачать пакет src из EPEL6
положить zabbix.spec в /usr/src/redhat/SPECS (/root/rpmbuild/SPECS),
остальное в /usr/src/redhat/SOURCES/ (/root/rpmbuild/SOURCES)
при необходимости закомментировать --with-ssh2 (требуется версия libssh 1.0 или выше)
из /usr/src/redhat/SPECS (/root/rpmbuild/SPECS) запустить "rpmbuild -bb --target=x86_64 zabbix.spec"
готовые пакеты /usr/src/redhat/RPMS/x86_64/zabbix-1.8.22-1.x86_64.rpm и zabbix-agent-1.8.22-1.x86_64.rpm
(/root/rpmbuild/RPMS/x86_64/zabbix-agent-1.8.22-1.fc10.x86_64.rpm и zabbix-1.8.22-1.fc10.x86_64.rpm)
при обновлении с 1.4 или 1.6
service zabbix-agent stop
при переходе с 1.4: rpm -iv zabbix-1.8.22-1.x86_64.rpm; rpm -Fv zabbix-agent-1.8.22-1.x86_64.rpm
при переходе с 1.6: rpm -Fv zabbix-1.8.22-1.fc10.x86_64.rpm zabbix-agent-1.8.22-1.fc10.x86_64.rpm
отредактировать /etc/zabbix/zabbix_agentd.conf из /etc/zabbix/zabbix_agentd.conf.rpmnew
service zabbix-agent start
zabbix_get не входит в состав пакета zabbix-agent до версии 2.0.
При установке из RPM (пакет zabbix_agentd или zabbix-agent) создаётся пользователь
zabbix и создаётся сервис zabbix-agent (незапущенный по умолчанию).
При установке в RHEL4 (CentOS4) из EPEL требуются пакеты fping и iksemel.x86_64.
Настроить /etc/zabbix/zabbix_agentd.conf
(адрес сервера, имя клиентского хоста, локальный порт (10050) и адрес,
уменьшить количество агентов (но одного недостаточно), не разрешать удалённые команды,
журнал в syslog - local7 - не работает). Создать /var/log/zabbix и /var/run/zabbix с нужными правами.
Открыть порт. Запустить сервис. Обеспечить запуск сервиса при загрузке.
Пересборка пакетов из исходных текстов
(CentOS4
(подходят к FC3/FC4),
CentOS5):
скачать и положить в
/usr/src/redhat/SOURCES/ (zabbix-1.4.2-cpustats.patch, [zabbix-1.4.2-netsnmp-x86_64.patch],
zabbix-agent.init, zabbix-logrotate.in, zabbix-server.init, zabbix-web.conf)
и в /usr/src/redhat/SPECS/ (zabbix.spec). Доставить net-snmp-devel, gnutls-devel, curl-devel,
iksemel-devel (из FC4/FC6). Сборка пакетов:
rpmbuild -bb --target=x86_64 zabbix.spec
Для работы скриптов с параметрами требуется каталог /var/lib/zabbix
(с правами для пользователя zabbix).
добавить пользователя zabbix:zabbix (без домашнего каталога и командной оболочки
mkdir /etc/zabbix
cp misc/conf/zabbix_agentd.conf /etc/zabbix/
настроить /etc/zabbix/zabbix_agentd.conf
(адрес сервера, имя клиентского хоста, локальный порт (10050) и адрес,
уменьшить количество агентов (но одного недостаточно), не разрешать удалённые команды,
журнал в /val/log/zabbix/)
zabbix 6.0.6 (14 февраля 2022 - ; нет сборки сервера для CentOS7; полная поддержка до 28 февраля 2025; поддержка безопасности до 28 февраля 2027); средне:
кластер высокой доступности (HA) - активный узел и ожидающие
выделенный раздел для мониторинга сервисов и SLA; подход, основанный на триггерах, заменён на метки и действия; вместо зависимостей - граф;
статус на базе статусов подчинённых сервисов и их весах; права доступа к сервисам; корневая проблема;
извещения об изменениях статуса сервиса, эскалация; клонирование сервисов;
после обновления вы не узнаете свои настройки сервисов
новые виджеты: выдающиеся хосты, значение элемента данных, географическая карта
первичные ключи в таблицах - требуется ручная правка
макросы для отладки выражений - {TRIGGER.EXPRESSION.EXPLAIN}, {TRIGGER.EXPRESSION.RECOVERY.EXPLAIN}, {FUNCTION.VALUE<1-9>}, {FUNCTION.RECOVERY.VALUE<1-9>}
макросы для отладки внутренних действий - {ITEM.STATE.ERROR}, {LLDRULE.STATE.ERROR}, {TRIGGER.STATE.ERROR}
вместо простых макро со старым синтаксисом предоставлены макро выражений с синтаксисом аналогичным синтаксису выражений триггеров в версии 5.4
удалены позиционные макро ($1 - $9)
удалены пользовательские макро в именах элементов
добавлен шаг предобработки при получении данных Prometheus (sum, min, max, avg, count)
функции для Prometheus - rate(), histogram_quantile(), bucket_percentile(), bucket_rate_foreach()
функции monoinc() и monodec() - проверка монотонного возрастания и убывания
функция changecount() - количество изменений
функции exists_foreach, count и item_count
функции отклонения от трендов baselinedev, baselinewma
функции поиска аномалий trendstl() - выделяет из данных тренды, сезонные отклонения и аномалии
элементы - agent.hostmetadata, kernel.openfiles, net.tcp.socket.count[], net.udp.socket.count[], vfs.dir.get[], vfs.file.get[], vfs.file.owner[], vfs.file.permissions[]
изменение пользовательских элементов данных без перезапуска агента: zabbix_agentd -R userparameter_reload
файлы настройки для agent2 теперь в каталоге zabbix_agent2.d/plugins.d/
поддержка utf8mb4 для MySQL, поддержка utf8 (utf8mb3) осталась
zabbix_get --timeout секунд
расширение возможностей SNMP шлюза
журнал аудита теперь включает все операции конфигурации, включая LLD и т.п. (под пользователем System).
Пишется не всё: например, удаление и очистка включения шаблона из описания узла
опросы ODBC переведены в отдельный процесс; параметр StartODBCPollers
Webhook для Github issues
можно заблокировать извещения о прекращении эскалации
при обновлении старые записи аудита теряются
по умолчанию PCRE2 (v10) вместо PCRE (v8)
поддержка OpenSSL 3.0
webhook для GLPi
ранее пробелы в паролях игнорировались при создании и при вводе
команды серверу и прокси передаются теперь с помощью сокета, так что он может дать ответ
шаблоны: CockroachDB, Envoy Proxy, HashiCorp Consul Cluster, HashiCorp Consul node, HPE MSA 2040 Storage, HPE MSA 2060 Storage, HPE Primera
zabbix 5.4.12 (14 мая 2021 - 4 апреля 2022; нет сборки сервера для CentOS7; не поддерживается); средне:
новый синтаксис выражений в триггерах и вычисляемых значениях;
при обновлении все выражения преобразуются в новый формат;
удалено понятие агрегированного типа элементов, вместо агрегированной функции grpsum используется функция sum_foreach и т.п.;
элемент для сводных значений вычисляется с помощью фильтра complex (указываются хосты, группы хостов и метки);
позволяет записывать вложенные функции;
например, "{server:temp.last()}>20" преобразуется в "last(/server/temp)>20"
функция find вместо str, regexp, iregexp
функция abs вместо abschange
удалены функции diff и prev; предлагается использовать last
удалены функции delta и trenddelta; предлагается использовать max-min
функция band переименована в bitand
функция strlen переименована в length
и много чего ещё
новые функции агрегирования: kurtosis, mad, skewness, stddevpop, stddevsamp, sumofsquares, varpop, varsamp
новые битовые функции: bitlshift, bitnot, bitor, bitrshift, bitxor
новые исторические функции: countunique, find, first
новые операторы (вхождение в интервал): between, in
новые строковые функции: ascii, bitlength, bytelength, char, concat, insert, left, length, ltrim, mid, repeat, replace, right, rtrim, trim
многостраничные панели с возможность слайдшоу (комплексные экраны и слайдшоу удалены - преобразуются в панели и многостраничные панели;
импортировать комплексные экраны нельзя)
удалено понятие applications - преобразуются в метки, используйте метки для группировки
регулярные PDF отчёты по email (Zabbix web service, пакет zabbix-web-service, --enable-webservice)
скрипты операций переместились в глобальные скрипты (область действия - Action operation;
туда же "manual host action" и "manual event action" (из меню событий))
CurlHttpRequest переимеована в HttpRequest (и много других изменений)
данные о доступности хоста распределены по типам интерфейсов (агент, IPMI, JMX, SNMP); теряются при обновлении;
zabbix[host,тип,available]
в функции предобработки добавлено преобразование из XML в JSON
кеш для вычислений трендов; параметр TrendFunctionCacheSize; элемент zabbix[tcache,cache,*]
новые шаблоны: Hikvision camera by HTTP, Travis CI, InfluxDb
Alias переименован в Username; {USER.USERNAME}
таблицы преобразования значений (value map) перенесены с глобального уровня на уровень хоста и шаблона
таблицы преобразования значений могут отображать интервалы значений, регулярные выражения, иметь значение по умолчанию
можно фильтровать по наличию метки (без указания значения) и по отсутствию метки или несовпадению значения
относящиеся к шаблонам объекты отделены от объектов, относящихся к хостам
параметр ForceActiveChecksOnStart агента 2
pgsql.queries[] для agent 2
SQL-файлы помещены в пакет zabbix-sql-scripts и разворачиваются в /usr/share/doc/zabbix-sql-scripts/
шаблоны получают уникальный UUID (тот же самый, если из одного источника)
zabbix 5.2.7 (26 октября 2020 - 28 июня 2021; нет сборки сервера для CentOS7; не поддерживается); средне:
функции в триггерах: trendavg, trendcount, trenddelta, trendmax, trendmin, trendsum
новый тип элемента данных Script: JavaScript
персональные настройки часового пояса
роли пользователей для гибкой настройки прав доступа (по умолчанию: Guest, User, Admin, Super admin (неудаляема); можно настраивать, добавлять, удалять)
возможность задать несколько имён в Hostname
Modbus - modbus.get[]
mqtt.get[] agent 2
аутентификация Digest в агенте HTTP и веб сценариях
комплексные экраны в шаблонах конвертируются в панели (преобразование с потерями; разработчики рекомендуют сделать резервную копию)
экспорт и импорт в YAML
правила предобработки для обработки ошибок при получении значения элемента (выкинуть, назначить значение, сообщение об ошибке)
в настройках прототипа хоста можно задать тип интерфейса (агент, IPMI, JMX, SNMP) и метки с использованием макросов
можно создать хост без интерфейса (агент, IPMI, JMX, SNMP)
параметр агента UserParameterDir
минимальная версия PHP поднята с 7.2.0 до 7.2.5
фильтр поиска панели по имени
фильтры хостов и проблем можно сохранять
новые шаблоны: GitLab by HTTP, HashiCorp Vault, Jenkins by HTTP
тестирование элементов данных неподдерживаемыми значениями
множество элементов vmware.hv.* и vmware.vm.*
zabbix 5.0.22 (11 мая 2020 - ; zabbix50 (zabbix 5.0.22) в EPEL7; полная поддержка до 31 мая 2023, поддержка безопасности до 31 мая 2025); средне:
изменён формат чисел с плавающей точкой (double?); требуются ручные действия при обновлении
(остановить zabbix сервер и database/mysql/double.sql; $DB['DOUBLE_IEEE754']=true в /ui/conf/zabbix.conf.php)
возможность мониторить ODBC без DSN (data source name) в /etc/odbc.ini
в предобработке появилась возможность найти и заменить строку
наносекунды в zabbix_sender: zabbix_sender --with-timestamps --with-ns
возможность TLS соединений с MySQL и PostgreSQL
параметры агента: AllowKey= и DenyKey=
использование bcrypt вместо MD5 для хеширования паролей
можно Webhook через прокси (HTTPProxy)
фильтрация правил автообнаружения (хост и др.)
новые возможности массового изменения хостов и шаблонов: изменить макро пользователя, отвязаться
можно задать шаблон сообщения для каждого типа событий при создании медиа
можно отменить подтверждение проблемы
версию и комьюнити SNMP можно привязать к хосту (можно было только к элементу)
возможность очистки кеша SNMP (zabbix_server -R snmp_cache_reload)
аутентификация SAML 2.0
новые Webhook: Jira, Jira Service Desk, Microsoft Teams, Redmine, ServiceNow, SIGNL4, Telegram,
Zammad, Zendesk, OTRS, iLert, SolarWinds, SysAid, TOPdesk, iTop, Rocket.Chat, VictorOps, brevis.one, Express.ms messenger, ManageEngine ServiceDesk
Webhook теперь посылает сообщения об автообнаружениях и внутренних событиях
agent2 официально поддерживается; Windows версия; модули Docker, Memcached, MySQL, PostgreSQL, Oracle, Ceph, S.M.A.R.T., MongoDB, WebCertificate;
параметры: EnablePersistentBuffer, PersistentBufferPeriod, PersistentBufferFile
элемент данных agent.variant
значение макро может быть секретным (звёздочки на экране)
новые шаблоны: MySQL (ODBC), Server (IPMI), Elasticsearch, ClickHouse, Memcached, Docker, EtcdMicrosoft SQL Server, IIS 2012R2,
DB Oracle (ODBC), DB Oracle (agent2), App Ceph by Zabbix agent 2, App PHP-FPM by Zabbix agent, App PHP-FPM by HTTP, App Squid SNMP,
Asterisk by HTTP, Apache Cassandra, Apache Kafka, Hadoop, ZooKeeper, Morningstar, Apache ActiveMQ,
Microsoft Exchange Server 2016, NetApp FAS3220, Ignite, APC UPS SNMP и другие, Cisco Catalyst 3750V2-*,
Huawei OceanStor 5300 V5 SNMP, SAN NetApp AFF A700 by HTTP, SMART (agent 2), MongoDB (agent 2), WildFly,
Cisco UCS Manager SNMP, DELL PowerEdge*, HPE ProLiant*, NGINX Plus by HTTP, Zyxel*, Big-IP SNMP, GridGain by JMX, Systemd by Zabbix agent 2,
Cisco ASAv SNMP, Website certificate by Zabbix agent 2, pfSense SNMP
zabbix[version]
экспорт графиков в формате PNG
Timescale DB 2.X
брошена поддержка IBM DB2
минимальные версии СУБД: MySQL 5.5.62 (в требованиях указано: 5.7-8.0), MariaDB 10.0.37, PostgreSQL 9.2.24, Oracle 11.2
поддержка MariaDB 10.6.X
минимальная версия PHP поднята с 5.4.0 до 7.2.0 (отдельные пакеты для RHEL/CentOS и PHP 7.3)
минимальная версия GO+ (golang) повышена до 1.16
Net-SNMP 5.3.0 или выше
брошена поддержка IE 11
брошена поддержка mbedTLS (PolarSSL)
объявлен устаревшим параметр агента EnableRemoteCommands (предлагается пользоваться DenyKey=system.run[*])
округлявшиеся до минуты макросы теперь округляются до секунды: {DISCOVERY.DEVICE.UPTIME}, {DISCOVERY.SERVICE.UPTIME}, {EVENT.AGE}, {EVENT.DURATION}, {ITEM.LOG.AGE}
параметр ListenBacklog (размер очереди)
vmware.hv.maintenance[]
vmware.hv.sensors.get[]
docker.container_stats[]
{$MACRO:regex:"выражение"}
zabbix 4.4.10 (7 октября 2019 - 29 июня 2020; не поддерживается); средне:
Zabbix agent 2: Go 1.12+ (--enable-agent2), очень модульная структура (модули: Run, Log, Redis)
поддержка TimescaleDB (временные ряды на PostgreSQL)
графики: прямоугольники (в т.ч. рядом), функции агрегирования (min, max, avg, sum, count, first, last
Kerberos
в списке проблем в отдельной колонке или рядом с именем триггера может показываться
расширение макро (например, {ITEM.LASTVALUE} - текущее проблемное значение) - {EVENT.OPDATA}
элемент данных db.odbc.get[] (несколько строк и колонок в формате JSON)
предобработка может преобразовать CSV в JSON, XML Xpath
при экспорте в реальном времени указывается тип значений
множество новых шаблонов для Linux, Windows, Cisco UCS, Nginx, Apache, RabbitMQ, MySQL, MariaDB, PostgreSQL
описание элементов данных и триггеров в интерфейсе
удалены методы извещений Jabber и Ez Texting
экспорт и импорт методов извещений
человеколюбивый формат экспорта хостов и шаблонов (но всё равно XML)
доработана панель Global view
доработаны средства редактирования панелей и виджетов
новые виджеты и прототипы виджетов
{EVENT.RECOVERY.NAME}
{EVENT.TAGS.имя-метки}
пользователь guest отключён по умолчанию
утилита zabbix_js для тестирования скриптов
комплексный экран (screen) внутри комплексного экрана не поддерживается
zabbix 4.2.8 (29 марта 2019 - 28 октября 2019; не поддерживается); средне:
предобработка значений элементов данных на JavaScript
проверка значений элементов данных
извлечение сообщений об ошибках их значений элементов данных
фильтрация лишних значений элементов данных
пользовательская обработка ошибочных значений элементов данных
тестирование предобработки значений элементов данных
предобработка может производиться на прокси
получение данных от Prometheus (Kubernetes, Docker, GitLab, Ceph, Collectd, InfluxDB и др.)
экспериментальная поддержка TimescaleDB (временные ряды на PostgreSQL)
использование значения элемента данных для именования автообнаруженного хоста
метки (tag) для шаблонов и хостов
упрощённое редактирование панели
анимированные GIF в картах сети (GD library минимум 2.0.28)
email извещение в формате HTML
тестирование работоспособности системы извещений
регулярные выражения для заголовков при веб мониторинге
массовое изменение прототипов элементов данных
фильтр триггеров и элементов данных может включать несколько хостов или групп хостов или уровней
в сетевых картах можно использовать макросы {HOST.ID}, {INVENTORY.*}, {HOSTGROUP.ID}, {TRIGGER.ID}, {MAP.ID}, {MAP.NAME},
{HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.IP}, {HOST.NAME}
автообнаружение хостов (LLD) вынесено в отдельные потоки; параметр StartLLDProcessors; zabbix[lld_queue]
параметр LoadModule
элементы данных vmware.datastore.*[]
переделаны глобальные извещения (в прошлом обличии были ужасны)
{EVENT.RECOVERY.NAME}
для сборки требуется libpthread, zlib, libpcre, libevent
не поддерживаются агенты старше 1.4; новые агенты не общаются со старым сервером
zabbix 4.0.34 (4.0.39) (1 октября 2018 - ; zabbix40 (zabbix 4.0.36) в EPEL7; полная поддержка закончилась, поддержка безопасности до 31 октября 2023); средне:
изменённая панель: виджет графиков на SVG (старый остался под именем classic); панели Global view и Zabbix server health
переделан способ выбора интервала в графиках
кнопка для немедленного обновления значения элемента данных (действует не всегда)
элемент данных типа HTTP agent
git-репозиторий шаблонов
ограничение области действия периода обслуживания (проблемами, этикетками)
автообнаружение повторяется при изменении метаданных хоста
экран изменения проблемы вместо экрана подтверждения; макросы также переименованы
режим киоска в полноэкранном формате
компактный режим просмотра проблем
удалена страница Monitoring - Triggers
можно запретить автоматическое преобразование мультипликаторов (например, 60s в 1m)
множество адресатов в одном сообщении
экспорт в реальном времени событий, элементов данных; параметры ExportDir и ExportFileSize
права доступа по меткам (tag)
сжатие (zlib) при обмене с прокси
элемент данных vfs.dir.count (параметр regex_excl_dir)
параметр slab у vm.memory.size
мелкие добавления для других элементов
параметры внешних скриптов обрамляются ' вместо "
обязательные поля в формах помечаются *
улучшена работа с клавиатурой
расширена цветовая палитра
расширена фильтрация проблем
контрастные темы: светлая и тёмная
максимальная длина DNS имени увеличена с 63 до 255 символов
{EVENT.NAME}
фильтрация хостов и шаблонов по именам используемых (linked) шаблонов
в списке проблем может показываться текущее проблемное значение
удалённый мониторинг состояния сервера; параметр StatsAllowedIP
параметр LoadModule
переделаны глобальные извещения (в прошлом обличии были ужасны)
{EVENT.RECOVERY.NAME}
пользователь guest отключён по умолчанию
элемент данных vfs.fs.get (опции монтирования и пр. в формате JSON)
максимальное значение CacheSize увеличено с 8 до 64ГБ
элемент данных vmware.dc.discovery[url]
MySQL 8
для сборки требуется libpthread, zlib, libpcre, libevent
не поддерживаются агенты старше 1.4; новые агенты не общаются со старым сервером
объявлены устаревшими позиционные и пользовательские макро в именах элементов данных;
с ними уже будут трудности в графиках
сервер больше не исправляет времена отчётов для агентов со смещённым временем
имена проблем и событий хранятся после создания, а не вычисляются при каждом обращении
zabbix 3.4.15 (21 августа 2017 - 12 ноября 2018; не поддерживается); средне:
новая панель (dashboard): несколько панелей, состоящих из настраиваемых виджетов и комплексных экранов (screen)
дерево сетевых карт (map)
стандартизованный шаблон для сетевых устройств на базе SNMPv2
удалённые команды могут выполняться через прокси; параметры EnableRemoteCommands и LogRemoteCommands
главные (master) и зависимые элементы данных
параллельная рассылка извещений; параметр StartAlerters (3 на всех, 1 на каждое медиа)
извещения о подтверждении проблемы
изменён формат извещения по умолчанию
настройка предобработки полученных элементов данных сведена в одно место, добавлена возможность фильтрации
по регулярному выражению, XML XPath и JSON Path
при веб мониторинге используется URL-кодировка; .urlencode(); punycode для доменных имён
изменения в сетевых картах: от пикселов к SVG, несколько триггеров к элементу, перемещение элементов мышкой, копи/пасте, линии, прямоугольники и эллипсы
пользовательские макро и суффиксы при задании интервалов
убрана поддержка IE9 и IE10
полное клонирование комплексных экранов и карт
упорядочены соединения к BMC (слабые BMC теперь не будут перегружены)
все операции предобработки данных вынесены в отдельный процесс; параметр StartPreprocessors
параметр SocketDir (/tmp)
элемент данных vfs.dir.size
внутренний zabbix[host,discovery,interfaces]
внутренний zabbix[preprocessing_queue]
отдельная настройка интервала перерисовки для каждого виджета панели
поддержка OpenSSL 1.1.1 (было до 1.0.2)
MySQL от ?, MariaDB от ? (case-sensitive - utf8_bin; сервер устанавливает autocommit=1)
SQLite только для прокси
после обновления требуется чистить куки и кеш браузера
обработка регулярных выражений переведена с POSIX на PCRE
для сборки требуется libpcre (PCRE v.8, не PCRE2 v.10)
для сборки требуется libevent
удалён параметр SenderFrequency
удалён DEFAULT_LATEST_ISSUES_CNT
zabbix 3.2.11 (15 сентября 2016 - 12 декабря 2017; не поддерживается); средне:
пользовательские метки (tag) для событий (настройка триггера, шаблона и прототипа
корреляция событий по меткам
новая страница "Проблемы" в обзоре
возможность ручного закрытия проблемы
функции обработки макро
подготовка к иерархии групп хостов
особенности обработки быстрорастущих журналов, в частности log.count и logrt.count
гистерезис триггеров
операция восстановления в настройках действия
задержка эскалации во время обслуживания хоста
автоматически сгенерированные элементы, триггеры и графики можно редактировать
экспорт и импорт сценариев веб мониторинга
фильтрация по имени групп хостов и шаблонов
поменялась логика вычисления триггеров и вычисляемых элементов из неопределённых значений
поддержка OpenSSL 1.1.0 (было до 1.0.2)
MySQL от ?, MariaDB от ? (case-sensitive - utf8_bin; сервер устанавливает autocommit=1)
zabbix 3.0.32 (15 февраля 2016 - 8 марта 2021; не поддерживается); средне:
полностью переделан интерфейс
взаимная аутентификация клиентов и серверов, шифрование (TLS 1.2; PSK или сертификаты)
предсказательные функции в вычисляемых элементах и триггерах (forecast, timeleft)
аутентификация и шифрование при использовании SMTP (TLS)
возможность запроса данных в точно указанное время (планировщик)
поддержка элементов данных пользователя в скриптах извещений; макросы {ALERT.SENDTO}, {ALERT.SUBJECT} и {ALERT.MESSAGE}
персональные карты, комплексные экраны (screens) и слайды
экспорт и импорт таблиц преобразований данных (value map) при экспорте хостов и шаблонов
возможность задавать зависимость между прототипами триггеров
ускорено создание и вычисление триггеров
поддержка множественных OID при автопоиске
при автопоиске элементы могут быть автоматически добавлены в группы элементов (application, прототипы application)
при просмотре графиков минимальный интервал времени уменьшен с часа до минуты
записи журналов могут сохраняться с указанием типа (целое и т.п.) и, соответственно, участвовать в построении графиков
время в формате ISO (yyyy-mm-dd hh:mm:ss)
шкала времени увеличена до 80 лет
работа с пользовательскими макросами стала прозрачнее (Inherited and host macros)
возможность автоматического выбора режима инвентаризации хоста при автопоиске
более гибкие групповые подтверждения событий
{$MACRO:context}
запуск сервера не в фоновом режиме (--foreground)
описание триггера показывается в списке событий
улучшения панели: фильтрация триггеров, карт, экранов по имени; фильтрация Top 100
при вебмониторинге по умолчанию используется имя агента "Zabbix", но можно изменить
таблица "Host status" переименована в "Host availability" (0 - not available; 1 - available; 2 - unknown)
таблица значений (map) может быть клонирована
ручная очистка БД (housekeeper)
изменены значения по умолчанию для параметров DBUser (zabbix), MaxHousekeeperDelete (5000), LogSlowQueries (3000),
Timeout (4), MaxLinesPerSecond (20), UnsafeUserParamaters
параметры LogType (file, обязательный),
HistoryIndexCacheSize (100 байт на каждый элемент данных, сервер падает при недостатке места))
внутренняя проверка zabbix[wcache,index,режим]
внутренняя проверка zabbix[vcache,cache,mode]
параметр StartEscalators (1)
удалён zabbix_agent (запускается inetd)
элемент данных proc.cpu.util
net.udp.service и net.udp.service.perf
внутренняя проверка zabbix[host,,items] и zabbix[host,,items_unsupported]
service.discovery и service.info
db.odbc.discovery
proc.mem получил 5 параметр memtype
Мониторинг использования CPU отдельным процессом или приложением
при мониторинге журналов метаданные журналов (размер, время изменения) сохраняются между перезапусками zabbix
функция percentile() при вычислении триггеров
при вычислении триггера изменились правила при сравнении с 0.000001 (теперь это 0?)
агент освобождает недоступное устройство через 3 часа (vfs.dev.read[] и т.п.), не надо устанавливать интервал опроса более 3 часов
в версиях с 3.0.13 по 3.0.24 устанавливался HSTS (HTTP Strict Transport Security)
zabbix 2.4.8 (11 сентября 2014 - 20 апреля 2016; больше не поддерживается); средне:
множество фильтров для LLD
убрана поддержка распределённого мониторинга (nodes)
построение "на-ходу" графиков для нескольких элементов данных
вычисление условий действия по произвольному логическому выражению
новые операции в триггерах: not, >=, <= ("#" заменён на "<>"; "&" на "and", "|" на "or")
возможности веб мониторинга расширены добавлением произвольных заголовков, верификацией SSL и аутентификацией
индивидульное управление пакетными запросами SNMP
прототипы графиков и простых графиков для комплексных экранов
подробная информация о неподдерживаемых элементах данных агента при наведении мышки
PHP (mbstring обязательна; mbstring.func_overload=off в php.ini)
пользовательские макро {$MACRO} в извещениях и командах
макро {HOST.DESCRIPTION} и {PROXY.DESCRIPTION}
параметр User для сброса уровня доступа сервера
пользовательские скрипты, внешние проверки и пр. возвращают stderr
можно изменить уровень журналирования без перезапуска сервера (по PID или типу процесса)
новые элементы данных: zabbix[host,,maintenance]
недоступность элемента данных не влечёт недоступности хоста (только 2.4.7)
строки извещения завершаются CRLF вместо LF?!
убрана поддержка констант округления
zabbix 2.2.23 (12 ноября 2013 - 30 июля 2018; больше не поддерживается; zabbix22 в RHEL/CentOS 7); средне:
шаблоны для веб мониторинга
веб мониторинг позволяет настроить повторы и прокси, регулярные выражения
Встроенный мониторинг VMWare
Добавлена поддержка дискретных сенсоров IPMI (рекомендуется band() и count())
загружаемые модули сервера и агента (LoadModulePath, LoadModule) - быстрее внешних проверок
значения элементов данных и макросов LLD в именах графиков ({host:key.func(param)}, функции - avg(), last(), max(), min())
внутренние (internal) события генерируются самим Zabbix в двух случаях:
элемент данных стал не поддерживаемым (not supported) либо триггер перешёл в неизвестное (unknown) состояние
таблицы отображений (value map) не только для целых, но и для строк и плавающих чисел
размер выражений для триггеров увеличен с 255 символов до 2048
улучшение карт сети: фильтрация тригерров по уровню
вместо параметра DisableHousekeeping множество тонких настроек в интерфейсе
Автоматическое обновление базы данных при обновлении версии
поддержка составных динамических SNMP индексов (CISCO-POP-MGMT-MIB::cpmDS1ActiveDS0s.6.0)
для вычисления триггеров используется кеширование исторических данных в памяти (параметр ValueCacheSize;
элементы данных zabbix[vcache,buffer,режим] и zabbix[vcache,cache,параметр])
обновление нескольких полей элемента данных производится в БД пакетом (кеширование изменений)
параметр сервера StartTimers
параметры агента HostMetadata и HostMetadataItem - расширение Hostname
процессы zabbix_server показываются командой ps (top) под осмысленными именами с указанием выполняемой сейчас задачи
"последние данные" и {ITEM.LASTVALUE} показывают только данные за последние 24 часа (ZBX_HISTORY_PERIOD в include/defines.inc.php)
недоступность элемента данных не влечёт недоступности хоста (только 2.2.11)
PHP от 5.3.0 (требуется mysqli вместо mysql)
MySQL от 5.0.3 (case-sensitive - utf8_bin; сервер устанавливает autocommit=1)
убрана поддержка iODBC (пользуйтесь unixODBC)
ранее параметр Timeout не отрабатывался для SNMP
SNMP запросы делают как минимум 1 повторение несмотря на настройки
элемент system.uname теперь делается не из `uname -a`, а из системного вызова uname()
при событии восстановления макросы {EVENT.ID}, {EVENT.TIME}, {EVENT.DATE}, {EVENT.AGE}, {EVENT.ACK.HISTORY}, {EVENT.ACK.STATUS}
теперь возвращают информацию в момент события
zabbix 2.0.17 (21 мая 2012 - 20 апреля 2016; больше не поддерживается); средне:
Теперь Zabbix может не только автоматически искать новые хосты, но и новые объекты на самих хостах,
например, дисковые разделы или сетевые интерфейсы. Для всех найденных объектов Zabbix может сам
создать новые элементы данных, триггеры и графики и автоматически начать их мониторить.
Если какой-то из объектов станет недоступным, через какое-то время Zabbix сам его удалит.
Это поможет сэкономить кучу времени при настройке мониторинга динамичных систем.
Для хостов теперь можно добавлять несколько сетевых интерфейсов разных типов (agent, SNMP, IPMI) и отмечать,
какие из них будут использоваться для соответствующих элементов данных;
интерфейс IPMI нельзя ни отключить как раньше, ни удалить
Автоматизированная инвентаризация.
Профиль и расширенный профиль сети были объединены в инвентарные данные, которые теперь
могут заполняться автоматически на основе информации, полученной из элементов данных.
Для этого в форме конфигурации элементов данных было добавлено поле "Заполнение поля
инвентаря узла сети" в котором можно указать, в какое именно поле надо сохранить информацию.
Учитывая, что эти данные теперь можно использовать при создании карт, это достаточно полезная возможность.
Теперь можно мониторить Java приложения без необходимости устанавливать дополнительные программы.
Достаточно использовать новый тип элементов данных — JMX агент, и Zabbix все сделает сам.
явное имя хоста
SNMP trap
улучшенный редактор карт: несколько URL на элемент (с метками)
заброшена поддержка IE6 и IE7
возвращена поддержка SQLite
MySQL 5.0 (case-sensitive - utf8_bin)
PHP от 5.1.6 (также требуется PHP gettext, PHP XML Reader, PHP XML Writer)
внутренний элемент zabbix[host,тип,available] (available, unavailable, unknown; тип - Zabbix agent, SNMP, JMX, IPMI)
использование кеша для конфигурации, триггеров и элементов данных, а также улучшенные алгоритмы очистки
истории и эскалации событий позволило значительно снизить нагрузку на базу данных; размеры кешей увеличены вдвое
время в наносекундах
новый тип элементов - Boolean (true, t, yes, y, 1, up, running, enabled, available)
нормальный и расширенный профиль хоста слиты в инвентарь
эскалация события всегда включена
адрес каталога с настройками задаётся при сборке как sysconfdir (ранее игнорировался и всегда как /etc/zabbix/)
адрес каталога с внешними скриптами задаётся при сборке как datadir (ранее игнорировался и всегда как /etc/zabbix/externalscripts/)
изменения параметров агента: удалены DisableActive и DisablePassive - если не указан ServerActive, то не будет активных элементов;
если StartAgents=0, то не будет пассивных элементов; удалён параметр ServerPort
необходимо отключить session.auto_start в php.ini
количество блочных устройств к мониторингк увеличено с 8 до 1024
ускорен LLD (от 64 до 250 раз меньше запросов SQL)
пользователь zabbix расслоился на zabbix и zabbixsrv
zabbix 1.8.22 (15 декабря 2014, больше не поддерживается, RHEL/CentOS 6):
меню реорганизовано
столбиковые диаграммы в качестве графиков
полная поддержка Unicode/UTF-8 (не понял? 1.6.9 выдаёт "charset=UTF-8" и русский язык),
введённый русский текст отображается знаками вопроса
улучшено управление интервалом времени при отображении графиков (предопределённые интервалы - всё, 1 час, 2 часа и т.д.)
редактирование карт в графическом режиме, к связям можно привязывать значения элементов данных ({host:key.func(param)})
улучшения в картах: возможность выделения узлов со свежими событиями
визуальный редактор выражений для триггеров с возможностью тестирования
при редактировании выражений триггеров цветами выделяется статус элемента данных (серый - не поддерживается, красный - не опрашивается)
улучшенная система фильтров визуализации: фильтрация настроек элементов по значениям атрибутов,
фильтр журнала аудита, фильтрация значений элементов по описанию (разве не было раньше?),
фильтр состояния триггеров (подтверждение, интервал времени), фильтр журнала
фильтрация объектов в управляющей панели (группы хостов, хосты в период обслуживания, уровень триггеров, только неподтверждённые триггеры)
дополнительные фильтры настройки хостов: имя, IP, DNS, порт
подтверждение получения извещения можно дать в окне триггеров
редактирование комплексных отчётов в графическом режиме (не работает), строки и колонки можно вставлять в любом месте
глобальный поиск хостов, групп хостов и шаблонов по имени
разбиение длинных списков на страницы (можно задать количество элементов на странице)
выбранные элементы списка подсвечиваются
переменная ZBX_SERVER_NAME в настройках веб интерфейса позволяет выводить имя сервера в правом верхнем углу
при привязке шаблона к хосту можно редактировать атрибуты элементов данных (например, имя сообщества SNMP)
отладчик в веб-интерфейсе, пока не нашёл
виджет состояния хостов в управляющей панели
виджет состояния сервера показывает проблемы с PHP
доступ к комплексным отчётам и картам по имени
экспорт и импорт комплексных отчётов и карт (с картинками) в XML
валидация XML перед импортом
возможность включить режим извещения о событиях на любой странице веб интерфейса (включил и тут же выключил),
в настройках пользователя задаётся интервал удержания оповещения и звук
API 1.2 для управления сервером (JSON-RPC) и консольная утилита zabcon, в поисковых шаблонах надо использовать '*' вместо '%'
пассивный прокси: опции StartProxyPollers, ProxyConfigFrequency, ProxyDataFrequency в настройках сервера;
опция ProxyMode в настройках прокси
добавлена и удалена опция StartDBSyncers в zabbix_server.conf (кеширование БД всегда включено,
обещано 10-кратное ускорение работы сервера с БД, параметры модуля dbcache), очередь необработанных запросов реально уменьшилась в 10 раз
удалена опция StartPollersUnreachable в zabbix_server.conf и добавлена снова
в опции ListenIP можно указывать несколько адресов
модуль веб мониторинга получил возможность базовой аутентификации HTTP и NTLM аутентификации
улучшения автоматического обнаружения: можно указывать интервал портов, новые операции при обнаружении (enable, disable),
можно указывать маску сети, поддержка серверов с несколькими адресами (multihome), SNMPv3
автоматическая регистрация активных агентов
пользовательские макросы в шаблонах (для триггеров), SNMP (комьюнити, OID и др.), описаниях элементов данных
периоды обслуживания хостов и групп хостов (при возникновении событий сообщения выдаются после завершения периода обслуживания)
внутренняя проверка zabbix[wcache,*] (можно узнать количество неподдерживаемых элементов данных) и zabbix[rcache,*] кеширования БД
новые простые проверки: ldap, ldap_perf, ntp, ntp_perf
вычисляемые элементы данных
новые элементы данных: icmppingloss, net.tcp.dns.query, system.cpu.switches
элемент данных icmpping получил параметры: цель, количество пакетов, интервал в милисекундах, размер пакета, время ожидания в милисекундах
элемент данных icmppingsec получил параметры: цель, количество пакетов, интервал в милисекундах, размер пакета, время ожидания в милисекундах,
режим (min, max, avg)
элементы данных log и eventlog получили параметр maxlines (максимальное количество строк в секунду, по умолчанию - 100)
элемент данных eventlog (MS Windows) можно фильтровать по типу, источнику и идентификатору событий
элементы данных net.if.list и net.if.* под MS Windows
элемент данных kernel.maxproc[]
элементы данных net.tcp.listen и net.udp.listen
элементы данных, определяющие количество строк в таблице: zabbix[history_log], zabbix[history_str], zabbix[history_text],
zabbix[history_uint], zabbix[trends_uint]
для элемента данных zabbix[queue] можно задать интервал времени
элемент данных zabbix[process,тип,режим,состояние] выдаёт процент времени,
который процесс zabbux указанного типа (poller, trapper и т.д.) проводит в указанном состоянии (busy) в последнюю минуту
снято ограничение на размер файла для элемента данных vfs.file.md5sum (но может не хватить времени)
элемент данных system.hostname для MS Windows получил параметр для выбора между NetBIOS и именем хоста
элементы данных vfs.dev.read и vfs.dev.write получили возможность работы с LVM (например, vfs.dev.read[/dev/mapper/system-root,sectors])
элемент данных agent.hostname (system.hostname, Hostname или HostnameItem)
исправлен элемент данных system.run[,wait] на system.run[,nowait]
расширение синтаксиса агрегированных данных - списки групп
элементы данных целого типа могут принимать значения, начинающиеся с символа "+"
новые типы данных: восьмеричные и шестнадцатеричные
возможность задания начала временного интервала в функциях min, max, avg, last и count
функция strlen, dayofmonth и logeventid в триггерных выражениях
возможность указывать массивы в качестве параметров ключей элементов данных
при указании временных промежутков в триггерных выражениях можно использовать суффиксы s, m, h, d, w
для безагентного мониторинга можно использовать telnet и SSH (по паролю или ключу, нужен libssh 1.0 или новее)
в действиях можно задать метод извещения
при мониторинге журналов можно использовать регулярные выражения в именах файлов (позволяет бороться с ротацией)
журнализация исполняемых агентом команд (LogRemoteCommands)
агент может обслуживать несколько серверов в активном режиме, параметр ServerActive задаёт список серверов
(для каждого сервера запускается отдельный обслуживающий процесс - осторожно со скриптами!)
изменение правил округлений и управляющие рукоятки в include/defines.inc.php: ZBX_UNITS_ROUNDOFF_THRESHOLD,
ZBX_UNITS_ROUNDOFF_UPPER_LIMIT, ZBX_UNITS_ROUNDOFF_LOWER_LIMIT
поддержка партиционирования БД: ZBX_HISTORY_DATA_UPKEEP в include/defines.inc.php
поддержка upstart
при запуске zabbix_server перестал использоваться "nice 5", надо выставлять приоритет самостоятельно
часовой пояс берётся из PHP
ЦП в system.cpu.util теперь нумеруются с 0
vfs.fs.size выдаёт результат в байтах для всех ОС и учитывает зарезервированное место
параметр service.ntp в net.tcp.service и net.tcp.service.perf переименован в ntp
хост должен принадлежать хотя бы к одной группе
изменились имена приложений при выдаче в syslog (zabbix_agent вместо "Zabbix Agent" и т.д.)
агенты версий 1.0, 1.1, 1.4 и 1.6 могут быть использованы с сервером версии 1.8
прокси версии 1.6 не могут быть использованы с сервером версии 1.8
memory_limit в PHP д.б. не менее 128 МБ
post_max_size в PHP д.б. не менее 16 МБ
max_input_time в PHP д.б. не менее 300
upload_max_filesize в PHP д.б. не менее 2 МБ
mbstring.func_overload в PHP больше нен нужен
убрана поддержка SQLite
изменился метод запуска внешних команд: вместо popen() вызывается /bin/sh
(привет именам устройств вида "cciss!c0d0")
утилиты zabbix_get и zabbix_sender переехали в bin (были в sbin)
программа не запускается, если конфигурационный файл содержит неизвестный параметр
требуется OpenIPMI 2.0.14 и новее (OpenIPMI-2.0.16 в RHEL/CentOS 5)
PHP 4 больше не поддерживается, требуется PHP 5.0; добавлена поддержка PHP 5.3 (пакеты php53 в RHEL/CentOS 5; пакеты php в RHEL/CentOS 6;
отсутствует в RHEL/CentOS 7)
поддержка MySQL 5.5
поддержка PostgreSQL 9.1, убрана поддержка PostgreSQL 7.0 (самая старая поддерживаемая версия - 7.4)
поддержка IBM DB2
формат даты берётся из локали
проблемы с IPMI при обновлении с 1.6.9:
адрес IPMI сбросился в 127.0.0.1, в качестве DNS имени указан бывший адрес IPMI
проблемы с элементами данных типа символ, извлекаемыми с помощью SNMP: была строка,
включая двойные кавычки, стала без кавычек
zabbix 1.6.9 (25 марта 2010) от 1.6.5
не требуется обновление БД
рекомендуется обновление агентов до 1.6.7, если используются активные агенты
рекомендуется создать индексы, если их нет (в 1.6.5 уже есть)
CREATE UNIQUE INDEX history_log_2 on history_log (itemid,id);
CREATE UNIQUE INDEX history_text_2 on history_text (itemid,id);
CREATE INDEX graphs_items_1 on graphs_items (itemid);
CREATE INDEX graphs_items_2 on graphs_items (graphid);
CREATE INDEX services_1 on services (triggerid);
zabbix_sender посылает данные пачками по 250 штук
новые индексы для httptest, httptest, actions, dhosts, dservices, escalations
исправлена доставшая ошибка с перемежающейся доступностью хоста при смешивании простой и агентской проверок
zabbix_sender -T (задать явно отметку времени с каждым значением)
поддержка более 10 ЦП в system.cpu.util
housekeeper обрабатывает таблицу trends_uint (то-то она у меня занимает 21 ГБ!)
исправлено падение сервера при получении неправильных данных
закрыта возможность SQL инъекции
исправлено падение сервера при проверке zabbix[queue] без использования dbcache
закрыта возможность исполнения скриптов неавторизованным пользователем
zabbix 1.6.5 от 1.4
агенты версий 1.0, 1.1 и 1.4 могут быть использованы с сервером версии 1.6
пустые пароли в версии 1.6 автозаменяются на "zabbix" (кроме пользователя guest)
Масштабируя Zabbix(10000 опросов в секунду;
"Главное, я думаю, правильно настраивать время хранения raw данных в zabbix, хранить 7-14 дней их в базе,
все остальное - агрегированные значения")