|
Bog BOS: Zabbix - распределённая система мониторинга
|
Последнее изменение файла: 2024.09.06
Скопировано с www.bog.pp.ru: 2024.11.03
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
- preprocessing manager - синхронизация предобработчиков
- preprocessing worker - предобработка собранных данных
- proxy poller - опрашивает прокси zabbix
- report manager - менеджер генераторов отчётов
- report writer - генератор отчётов
- self-monitoring - сбор внутренней статистики
- task manager - удалённое выполнение команд, подтверждение проблем и т.д.
- timer - обрабатывает триггерные выражения, зависящие от времени (?)
- trapper; snmp trapper - приёмник данных от активных агентов, SNMP, журналов, прокси и zabbix_sender
- trigger housekeeper; problem housekeeper - очистка БД от старых триггеров
- unreachable poller - опрос недоступных устройств
- vmware collector - сбор данных от VMware
- active checks - ?
- collector - ?
- ha manager - управление кластером
- listener - ?
- service manager - ?
- Node Watcher - отслеживает межузловые коммуникации (удалена)
- СУБД для хранения собранных данных, конфигурации, событий и пр.
- агент 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.if.in[имя-интерфейса,bytes|packets|errors|dropped] (целое)
- net.if.out[имя-интерфейса,bytes|packets|errors|dropped] (целое)
- net.if.total[имя-интерфейса,bytes|packets|errors|dropped] (целое)
- net.tcp.dns[ip-адрес,домен] (1 - можно получить данные по указанному доменному имени;
ip-адрес игнорируется,
используются настройки /etc/resolv.conf)
- net.tcp.listen[порт] (1 - порт открыт; в Linux не поддерживается (?))
- net.tcp.port[ip-адрес,порт] (1 - можно соединиться с указанным портом)
- net.tcp.service[имя-сервиса,ip-адрес,порт] (0 - невозможно соединиться, 1 - TCP соединение удачно,
2 - истекло время ожидания; сервис: ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp
- net.tcp.service.perf[имя-сервиса,ip-адрес,порт] (0 - сервис не работает, иначе количество
секунд, потраченных на соединение
- proc.mem[имя-процесса,имя-пользователя,avg|max|min|sum,фильтр-командной-строки]
(используемая указанным процессом/процессами память в байтах;
любой параметр или все параметры можно опустить; не отличает процессы от потоков :()
- proc.num[имя-процесса,имя-пользователя,all|run|sleep|zomb,фильтр-командной-строки]
(количество указанных процессов;
любой параметр или все параметры можно опустить)
- system.boottime (время в момент загрузки в формате UNIX
- system.cpu.intr (количество прерываний)
- system.cpu.load[номер-процессора,avg1|avg5|avg15] (берётся из uptime)
- system.cpu.num (количество процессоров (ядер))
- system.cpu.switches (количество переключений контекста; в Linux не поддерживается)
- system.cpu.util[номер-процессора,idle|nice|user|system|kernel|wait|interrupt|softirq|steal,avg1|avg5|avg15]
(загрузка процессора в процентах; не работает при тестировании: "Collector is not started!";
wait переименован в iowait)
- system.run[команда-оболочки,wait|nowait] (указанная команда выполняется
на удалённом хосте, результат возвращается в режиме wait;
агент д.б. сконфигурирован в режиме EnableRemoteCommands)
- system.hostname
- system.localtime (локальное время в формате UNIX)
- system.swap.in[имя-устройства,count|pages] (в Linux не поддерживается)
- system.swap.out[имя-устройства|all,count|pages] (в Linux не поддерживается)
- system.swap.size[имя-устройства|all,free|total|pfree|pused] (в байтах или процентах)
- system.uname (uname -a)
- system.uptime (в секундах)
- system.users.num (who|wc -l)
- vfs.dev.read[имя-устройства|all,sectors|operations] (операций чтения или секторов всего)
- vfs.dev.write[имя-устройства|all,sectors|operations] (операций записи или секторов всего)
- vfs.file.cksum[имя-файла] (целое, cksum указанного файла)
- vfs.file.md5sum[имя-файла] (строка, md5sum указанного файла; размер файлов до 64МБ)
- vfs.file.exists[имя-файла] (0 - файл не существует, 1 - файл существует;
а права?
- vfs.file.regexp[имя-файла,регулярное-выражение] (поиск строки в файле,
возвращается найденная строка; только первая?
- vfs.file.regmatch[имя-файла,регулярное-выражение] (поиск строки в файле,
0 - не найдена, 1 - найдена; а права?
- vfs.file.size[имя-файла] (размер в байтах, требуются права на чтение файла)
- vfs.file.time[имя-файла,modify|access|change] (время в формате UNIX)
- vfs.fs.inode[файловая-система,total|free|used|pfree|pused] (количество inode в штуках
и процентах)
- vfs.fs.size[файловая-система,total|free|used|pfree|pused] (количество места в килобайтах
и процентах)
- vm.memory.size[total|shared|free|buffers|cached] (объём ОП в байтах) (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[boottime] (время в формате UNIX)
- zabbix[items] (количество элементов данных в БД)
- zabbix[items_unsupported]
- zabbix[log]
- zabbix[proxy,имя,lastaccess]
- zabbix[queue] (необработанных заданий в очереди)
- zabbix[triggers] (количество триггеров в БД)
- 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 секунд)
- now (время в формате UNIX)
- prev (предпоследнее значение; last (#2))
- regexp (1 - указанное в качестве первого параметра регулярное выражение
соответствует значению элемента данных за указанный интервал в секундах или за указанное
количество отсчётов (число предваряется символом '#');
с учётом регистра символов)
- str (1 - указанная в качестве первого параметра подстрока найдена
в элементе данных за указанный интервал в секундах или за указанное
количество отсчётов (число предваряется символом '#');
с учётом регистра символов)
- sum (сумма значений за указанный интервал в секундах или за указанное
количество отсчётов (число предваряется символом '#'))
- time (текущее время в формате HHMMSS)
Триггер может зависеть от других триггеров, т.е. он не меняет своё состояние в соответствии
со значением выражения, а событие не генерируется, если хотя бы один из
этих триггеров взведён.
События могут генерироваться только при взведении триггера или каждом
изменении взведённого триггера (Multiple TRUE events).
Триггер имеет уровень серьёзности (представляется цветом и звуком
в вебинтерфейсе, определяет допустимость средства доставки (Media) сообщения и используется
в условных действиях):
- Not classified (серый)
- Information (зелёный)
- Warning (жёлтый)
- Average (тёмнокрасный)
- High (красный)
- Disaster (алый)
Триггер может содержать комментарии, которые могут передаваться в сообщении,
и URL, которые будет доступен на странице состояния триггеров.
Действие триггера можно временно отключить.
При написании триггеров можно использовать макро.
Действие (action) является реакцией системы на событие (event).
Определяется для события или группы событий.
Атрибуты:
- Name - имя действия
- Event Source - источник событий: Triggers (изменение состояния триггера) или Discovery (модуль
автоматического обнаружения контролируемых объектов)
- Enable escalations - разрешить дальнейшую эскалацию событий
- Period - период времени для шага эскалации в секундах
- Defult subject - кого извещать по умолчанию (можно использовать макросы)
- Default message - текст сообщения по умолчанию (можно использовать макросы)
- Recovery message - текст сообщения о решении проблемы (можно использовать макросы)
- Recovery subject - кого извещать о решении проблемы (можно использовать макросы)
- Status - статус действия: активно или запрещено
- набор условий инициации действия (фильтр), каждое условие задаётся типом,
оператором сравнения и строкой для сравнения, условия одного типа OR-ятся,
разных типов - AND-ятся
- типы условий для событий, порождаемых переключением триггера
- Application (операторы: =, like, not like) - триггер является частью указанного приложения
- Host group (операторы: =, <>) - изменился триггер для хоста из указанной группы
- Host template (операторы: =, <>) - изменился триггер, определённый в указанном шаблоне,
использованном при создании хоста
- Host (операторы: =, <>) - изменился триггер для указанного хоста
- Trigger (операторы: =, <>) - изменился указанный триггер
- Trigger description (операторы: like, not like) - указанная строка
встречается в описании - имени? - изменившегося триггера)
- Trigger severity (операторы: =, <>, >=, <=) - изменился триггер указанной важности
- Trigger value (операторы: =) - изменился триггер с указанным значением (OK или PROBLEM)
- Time period (операторы: in) - время события попадает в указанный интервал
(шаблоны: dd-dd, hh:mm-hh:mm и др.)
- типы условий для событий, порождаемых модулем автообнаружения
- Host IP (операторы: =, <>) - входит ли адрес обнаруженного хоста в указанный интервал
- Service type (операторы: =, <>) - обнаруженный сервис совпадает с указанным
- Service port (операторы: =, <>) - TCP порт обнаруженного сервиса входит
в указанный интервал
- Discovery status (операторы: =) - Up или Down
- Uptime (>=, <=) - в секундах
- Downtime (>=, <=) - в секундах
- Received value (операторы: like, not like, =, <>, >=, <=) - сравнение указанной строки
со значением, полученным от агента или SNMP
- операция (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), генерации имён триггеров.
Вызов макроса заключается в фигурные скобки. Вызовы макросов могут быть вложенными.
Имена макросов:
Для посылки извещений администратором определяется среда передачи (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 (сюда надо помещать временно заблокированных пользователей вместо их удаления)
- Database administrators
Ключи запуска zabbix_server
- --help
- --version
- --config имя-конфигурационного-файла # /etc/zabbix/zabbix_server.conf, /etc/zabbix_server.conf, /usr/local/etc/zabbix_server.conf
- --foreground
- --runtime-control команда
- --new-nodeid идентификатор-узла # преобразовать БД под указанный номер узла, устарело
Команды:
- config_cache_reload # загрузить кеш настроек
- diaginfo[={historycache|valuecache|preprocessing|alerting|lld|locks}] # диагностика и статистика
- ha_status # состояние кластера высокой доступности
- ha_remove_node=идентификатор-узла # удалить сервер из кластера
- ha_set_failover_delay=задержка # можно использовать суффиксы (s, m)
- secrets_reload # загрузить секреты из Vault
- service_cache_reload # загрузить кеш менеджеров
- snmp_cache_reload # загрузить кеш SNMP
- housekeeper_execute # запустить очистку БД
- trigger_housekeeper_execute # запустить очистку БД триггеров
- log_level_increase[={тип-процесса|тип-процесса,номер-потока|номер-процесса}] # увеличить болтливость
- log_level_decrease[={тип-процесса|тип-процесса,номер-потока|номер-процесса}] # уменьшить болтливость
Конфигурационный файл имеет текстовый формат.
На каждой строке задаётся значение одного параметра в формате "имя=значение".
Комментарии начинаются с символа '#'.
Параметры:
- 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; интервал в секундах между попытками послать извещение)
- DebugLevel (3; 0 - ничего; 1 - критические сообщения; 2 - сообщения об ошибках;
3 - предупреждения; 4 - отладка (очень много)
- 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; не посылать локальные данные главному узлу)
Ключи запуска zabbix_agentd
- --help
- --version
- --config имя-конфигурационного-файла (/etc/zabbix/zabbix_agentd.conf)
- --print (вывести примерный список поддерживаемых элементов данных, тип значения,
значение в текущий момент)
- --test элемент-данных (протестировать возможность получения значения указанного элемента данных,
не обязательно из приведённого выше списка)
- --runtime-control {log_level_increase|log_level_decrease[={active checks | collector | listener}[,номер-потока]] | userparameter_reload}
- --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 (по разному; разрешить приём удалённых команд)
- DebugLevel (3; 0 - ничего; 1 - критические сообщения; 2 - сообщения об ошибках;
3 - предупреждения; 4 - отладка (очень много)
- 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_sender используется в долгоиграющих скриптах
для периодической посылки значений элементов данных типа trapper на сервер. Ключи:
- --config имя-файла-agentd
- --zabbix-server адрес-или-имя-сервера
- --port номер-порта-на сервере (10051)
- --host zabbix-имя-клиентского-хоста
- --source-address исходящий-IP
- --timeout секунд (60)
- --key имя-элемента-данных-типа-trapper
- --value значение
- --input-file имя-файла-со-значениями (каждая строка - имя клиента, ключ, значение)
- --with-timestamps (каждая строка файла значений в формате - имя клиента, ключ, UNIX-время, значение)
- --with-ns (каждая строка файла значений в формате - имя клиента, ключ, UNIX-время, наносекунды, значение)
- --real-time
- --tls-connect, --tls-ca-file, --tls-crl-file, --tls-server-cert-issuer, --tls-server-cert-subject, --tls-cert-file, --tls-key-file, --tls-psk-identity,
--tls-psk-file, --tls-cipher13, --tls-cipher
- --verbose (дальнейшее увеличение больливости: -vv)
- --help
- --version
Утилита zabbix_get используется при отладке для опроса агентов.
Ключи:
- --host адрес-агента
-
- --port номер-порта-агента
- --source-address исходящий-адрес
- --timeout секунд
- --key имя-элемента-данных
- --tls-connect, --tls-ca-file, --tls-crl-file, --tls-server-cert-issuer, --tls-server-cert-subject, --tls-cert-file, --tls-key-file, --tls-psk-identity,
--tls-psk-file, --tls-cipher13, --tls-cipher
- --help
- --version
Утилита zabbix_js используется при отладке для тестирования скриптов на JavaScript.
Ключи:
- --script имя-файла
- --param параметр
- --input имя-файла
- --timeout секунд
- --loglevel уровень
- --help
- --version
Сконфигурировать Media (email).
Создать пользователей (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 в несколько раз,
но события могут запаздывать на несколько секунд.
Подготовительные работы:
- убедиться в наличии резервной копии
- скопировать настройки zabbix: /etc/zabbix/zabbix_server.conf (/etc/zabbix_server.conf), /etc/zabbix/zabbix_agentd.conf (/etc/zabbix_agentd.conf)
- скопировать своё: zabbix_dump.sh, zabbix_dump_delete.sh, mysqldump.cnf, externalscripts/, web/? (maintenance.inc.php, zabbix.conf.php)
- скопировать настройки сервера httpd: /etc/httpd/conf.d/zabbix.conf
- скопировать PHP: /usr/share/zabbix/conf/zabbix.conf.php
- проверить требования (в дополнение к zlib, OpenIPMI, libssh2 1.0+, fping, libcurl 7.28+, libxml2, net-snmp 5.3.0+),
также нужны пакеты -devel:
- MySQL 8.0/ MariaDB 10.5.00-10.6.X
- Apache 1.3.12 и новее
- PHP 7.2.5-7.3
- библиотеки PHP: gd 2.0.28 (php-gd), php-bcmath, php-ctype (php-common),
php-xml 2.6.15, php-xmlreader (php-xml), php-xmlwriter (php-xml), php-session (php-common),
php-net-socket (php-sockets в php-common?), php-mbstring, php-gettext (php-common), php-ldap,
php-openssl (php-common), mysqli (php-mysql)
- pcre2 (но можно и pcre)
- libevent 1.4 и новее
- ?libpthread
- libssh2 или libssh
- OpenSSL/GnuTLS/LibreSSL
- libmodbus
- golang (если хочется agent2 или webservice)
- из SCL установлены MariaDB 10.5 (zabbix-web-mysql-scl-php73?) и PHP 7.3 (zabbix-apache-conf-scl, zabbix-web-deps-scl-php73?)
- учётные записи zabbix:zabbix и zabbixsrv:zabbixsrv есть
- используемая в Zabbix 5.0 БД zabbix имеется
Сборка (без agent2 и webservice - пытается что-то загрузить во время компиляции с github.com, golang.org и др.):
- получить и развернуть
- ./configure --help # ознакомиться
- ./configure [--prefix=/usr/local] --enable-server --enable-agent --disable-agent2 --disable-webservice --with-mysql=/opt/rh/rh-mariadb105/root/usr/bin/mariadb-config --with-libxml2 --with-net-snmp --with-ssh2 --with-openipmi --with-openssl --with-libmodbus --with-ldap --with-libcurl
- make
- 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/sbin: zabbix_agentd, zabbix_server
- /usr/local/bin: zabbix_get, zabbix_sender, zabbix_js
- /usr/local/etc/: zabbix_agentd.conf.d/, zabbix_agentd.conf, zabbix_server.conf.d/, zabbix_server.conf
- /usr/local/lib/modules/
- /usr/local/share/zabbix/externalscripts/
- /usr/local/share/zabbix/alertscripts/
- /usr/local/share/man/man1/: zabbix_get.1, zabbix_sender.1
- /usr/local/share/man/man8/: zabbix_agentd.8, zabbix_server.8
Установка:
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)
SSL
Подготовительные работы:
- убедиться в наличии резервной копии
- скопировать настройки zabbix: /etc/zabbix/zabbix_server.conf (/etc/zabbix_server.conf), /etc/zabbix/zabbix_agentd.conf (/etc/zabbix_agentd.conf)
- скопировать своё: zabbix_dump.sh, zabbix_dump_delete.sh, mysqldump.cnf, externalscripts/, web/? (maintenance.inc.php, zabbix.conf.php)
- скопировать настройки сервера httpd: /etc/httpd/conf.d/zabbix.conf
- скопировать PHP: /usr/share/zabbix/conf/zabbix.conf.php
- проверить требования (в дополнение к zlib, OpenIPMI, libssh2 1.0+, fping, libcurl 7.28+, libxml2, net-snmp 5.3.0+:
- MySQL 5.7-8.0/ MariaDB 10.0.37
- pcre (v8, не pcre2 v10)
- PHP 7.2-7.3
- библиотеки PHP: gd 2.0.28 (php-gd), php-bcmath, php-ctype (php-common),
php-xml, php-xmlreader (php-xml), php-xmlwriter (php-xml), php-session (php-common),
php-net-socket (php-sockets в php-common?), php-mbstring, php-gettext (php-common), php-ldap,
php-openssl (php-common), mysqli (php-mysql)
- libevent 1.4 и новее
- ?libpthread
- OpenSSL/GnuTLS/LibreSSL
- Apache 1.3.12 и новее
- минимальная ширина экрана - 1200 px
- подключить SCL: yum install centos-release-scl; отредактировать /etc/yum.repos.d/CentOS-SCLo-scl[-rh].repo
(проверить работоспособность: для установки вебинтерфейса требуются zabbix-apache-conf-scl, zabbix-web-deps-scl-php73, zabbix-web-mysql-scl-php73)
- остановить httpd
- остановить zabbix-server
- остановить zabbix-agent
yum remove zabbix40.x86_64 zabbix40-agent.x86_64 zabbix40-dbfiles-mysql.noarch zabbix40-server.noarch zabbix40-server-mysql.x86_64
zabbix40-web.noarch zabbix40-web-mysql.noarch # переименовать .rpmsave
Установить пакеты от автора (другая упаковка, нет вебинтерфейса, нет zabbixsrv, настройки в /etc/zabbix/, рабочие файлы в /var/run/zabbix/):
yum localinstall zabbix-server-mysql-5.0.23-1.el7.x86_64.rpm zabbix-agent-5.0.23-1.el7.x86_64.rpm zabbix-agent2-5.0.23-1.el7.x86_64.rpm zabbix-get-5.0.23-1.el7.x86_64.rpm zabbix-js-5.0.23-1.el7.x86_64.rpm zabbix-sender-5.0.23-1.el7.x86_64.rpm
Слить /etc/zabbix/zabbix_agentd.conf.
Запустить службы (если всё хорошо, то enable): zabbix-agent.
Слить /etc/zabbix/zabbix_server.conf.
Отредактировать параметры.
Запустить службы (если всё хорошо, то enable zabbix-server): zabbix-server. БД обновляется автоматически и недолго.
Установка вебинтерфейса: zabbix-apache-conf-scl, zabbix-web-deps-scl-php73, zabbix-web-mysql-scl-php73, zabbix-web
(rh-php73, rh-php73-php-bcmath, rh-php73-php-cli, rh-php73-php-common, rh-php73-php-fpm, rh-php73-php-gd, rh-php73-php-json, rh-php73-php-ldap, rh-php73-php-mbstring,
rh-php73-php-mysqlnd, rh-php73-php-pdo, rh-php73-php-pear, rh-php73-php-process, rh-php73-php-xml, rh-php73-php-zip, rh-php73-runtime).
Слить /etc/httpd/conf.d/zabbix.conf:
раньше был в /etc/zabbix/web/zabbix.conf, а теперь /etc/opt/rh/rh-php73/php-fpm.d/zabbix.conf и в другом формате?
php_value[max_execution_time] = 300
;php_value[memory_limit] = 128M
php_value[memory_limit] = 256M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
; php_value[date.timezone] = Europe/Riga
php_value[date.timezone] = Europe/Moscow
; php_flag session.auto_start off
; php_value mbstring.func_overload 0
php_value[mysql.default_socket] = /var/lib/mysql/mysql.sock
php_value[mysqli.default_socket] = /var/lib/mysql/mysql.sock
Слить /etc/zabbix/web/zabbix.conf.php (/usr/share/zabbix/conf/zabbix.conf.php?)
systemctl start rh-php73-php-fpm # enable
chown apache:apache web/maintenance.inc.php
systemctl start httpd # enable
Настройки очистки БД переехали из файла настройки в вебинтерфейс и выключены по умолчанию.
Проблемы:
- 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 (Таблицы истории в базе данных обновлены - нет)
- остановить сервер zabbix
- выполнить database/mysql/double.sql (подозрительно быстро)
- $DB['DOUBLE_IEEE754']=true в /etc/zabbix/web/zabbix.conf.php
- запустить сервер zabbix
- убивается BMC серверов Intel SR1680MVR
- проблема с использованием сложных элементов в синтезируемых элементах
Обновление MariDB
- systemctl stop zabbix-server
- systemctl stop mariadb
- сохранить /etc/my.cnf и /etc/my.cnf.d/client.cnf и /etc/my.cnf.d/mysql-clients.cnf
- umount /var/lib/mysql
- yum remove mariadb.x86_64 [mariadb-devel.x86_64 mariadb-libs.x86_64] mariadb-server.x86_64 # /var/log/mariadb/mariadb.log.rpmsave /etc/my.cnf.d/server.cnf.rpmsave
- yum install rh-mariadb105-mariadb-server-syspaths rh-mariadb105-mariadb-syspaths rh-mariadb105-mariadb-libs.x86_64
rh-mariadb105-mariadb-devel.x86_64 rh-mariadb105-syspaths rh-mariadb105-mariadb-config-syspaths
(подтягиваются rh-mariadb105-mariadb, rh-mariadb105-mariadb-common, rh-mariadb105-mariadb-config, rh-mariadb105-mariadb-errmsg,
rh-mariadb105-mariadb-server, rh-mariadb105-runtime, rh-mariadb105-mariadb-server-utils, rh-mariadb105-mariadb-server-utils-syspaths)
- mount /var/lib/mysql
- /etc/my.cnf не изменился
- при этом имеется /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
Подготовительные работы:
- убедиться в наличии резервной копии
- скопировать настройки zabbix: /etc/zabbix/zabbix_server.conf (/etc/zabbix_server.conf), /etc/zabbix/zabbix_agentd.conf (/etc/zabbix_agentd.conf)
- скопировать своё: zabbix_dump.sh, zabbix_dump_delete.sh, mysqldump.cnf, externalscripts/, web/? (maintenance.inc.php, zabbix.conf.php)
- скопировать настройки сервера httpd: /etc/httpd/conf.d/zabbix.conf
- скопировать PHP: /usr/share/zabbix/conf/zabbix.conf.php
- остановить httpd
- остановить zabbix-server
- остановить zabbix-agent
yum remove zabbix30.x86_64 zabbix30-agent.x86_64 zabbix30-dbfiles-mysql.noarch zabbix30-server.noarch zabbix30-server-mysql.x86_64
zabbix30-web.noarch zabbix30-web-mysql.noarch # переименовать .rpmsave
Установить пакеты: yum localinstall zabbix40.x86_64 zabbix40-agent.x86_64 zabbix40-dbfiles-mysql.noarch zabbix40-server.noarch zabbix40-server-mysql.x86_64 zabbix40-web.noarch zabbix40-web-mysql.noarch # доустановились
Слить /etc/zabbix_agentd.conf.
Запустить службы (если всё хорошо, то enable): zabbix-agent.
Слить /etc/zabbix_server.conf.
Отредактировать параметры.
Запустить службы (если всё хорошо, то enable zabbix-server-mysql): zabbix-server. БД обновляется автоматически и недолго.
Слить /etc/httpd/conf.d/zabbix.conf, /usr/share/zabbix/conf/zabbix.conf.php (реально в /etc/zabbix/web/zabbix.conf.php).
в zabbix.conf:
php_value max_execution_time 300
php_value memory_limit 256M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_flag session.auto_start off
php_value mbstring.func_overload 0
php_value date.timezone Europe/Moscow
php_value mysql.default_socket /var/lib/mysql/mysql.sock
php_value mysqli.default_socket /var/lib/mysql/mysql.sock
Запустить 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
Подготовительные работы:
- убедиться в наличии резервной копии
- остановить httpd
- остановить zabbix-server
- остановить zabbix-agent
- скопировать настройки zabbix: /etc/zabbix/zabbix_server.conf (/etc/zabbix_server.conf), /etc/zabbix/zabbix_agentd.conf (/etc/zabbix_agentd.conf)
- скопировать своё: zabbix_dump.sh, zabbix_dump_delete.sh, mysqldump.cnf, externalscripts/, web/? (maintenance.inc.php, zabbix.conf.php)
- скопировать настройки сервера httpd: /etc/httpd/conf.d/zabbix.conf
- скопировать PHP: /usr/share/zabbix/conf/zabbix.conf.php
yum remove zabbix22.x86_64 zabbix22-agent.x86_64 zabbix22-dbfiles-mysql.noarch zabbix22-server.noarch zabbix22-server-mysql.x86_64
zabbix22-web.noarch zabbix22-web-mysql.noarch # переименовать .rpmsave
Установить пакеты: yum localinstall zabbix30.x86_64 zabbix30-agent.x86_64 zabbix30-dbfiles-mysql.noarch zabbix30-server.noarch zabbix30-server-mysql.x86_64 zabbix30-web.noarch zabbix30-web-mysql.noarch # доустановились js-jquery1, web-assets-filesystem, web-assets-httpd
Слить /etc/zabbix_agentd.conf.
Запустить службы (если всё хорошо, то enable): zabbix-agent.
Слить /etc/zabbix_server.conf.
Отредактировать параметры. В частности, HistoryTextCacheSize заменён на HistoryIndexCacheSize.
Запустить службы (если всё хорошо, то enable zabbix-server-mysql): zabbix-server. БД обновляется автоматически и очень быстро.
Слить /etc/httpd/conf.d/zabbix.conf, /usr/share/zabbix/conf/zabbix.conf.php.
Запустить httpd (если всё хорошо, то enable). Возможно потребуется очистить куки.
Проблемы:
- старое имя сервера (/etc/zabbix/web/zabbix.conf.php)
- перебрасывает на старый сайт (поправить URL входа в настройках пользователя)
- массовые запросы SNMP опять насильно включили по умолчанию, но теперь их надо отключать поштучно
Подготовительные работы:
- установить пакеты libssh2.x86_64, libssh2-devel.x86_64 (0:1.8.0-4.el7)
- установить пакет fping (0:3.10-4.el7)
- установить пакеты OpenIPMI.x86_64, OpenIPMI-devel.x86_64, OpenIPMI-libs.x86_64, OpenIPMI-modalias.x86_64 (2.0.27-1.el7)
- установить пакеты libcurl.x86_64, libcurl-devel.x86_64 (7.29.0-59.el7_9.1)
- установить пакеты libxml2.x86_64, libxml2-devel.x86_64 (2.9.1-6.el7_9.6)
- установить пакеты net-snmp.x86_64, net-snmp-libs.x86_64, net-snmp-agent-libs.x86_64, net-snmp-devel.x86_64, net-snmp-utils.x86_64 (1:5.7.2-49.el7_9.2)
установить пакет libcurl.x86_64 (7.29.0-59.el7_9.1)
Удалить старые пакеты и установить новые
- systemctl stop zabbix-agent
- yum localupdate .../zabbix22-2.2.23-1.el7.x86_64.rpm .../zabbix22-agent-2.2.23-1.el7.x86_64.rpm
- yum localinstall .../zabbix22-dbfiles-mysql-2.2.23-1.el7.noarch.rpm .../zabbix22-server-2.2.23-1.el7.noarch.rpm .../zabbix22-server-mysql-2.2.23-1.el7.x86_64.rpm
- привычный пользователь zabbix расслоился на zabbix и zabbixsrv в группе zabbixsrv (/var/lib/zabbixsrv, nologin)
Установить СУБД и загрузка из резервной копии
- установка СУБД MariaDB (1:5.5.68-1.el7)
- настройка MariaDB под работу с Zabbix
- создание БД zabbix и пользователя zabbix:
- echo "create database zabbix character set utf8 collate utf8_bin;" | mysql -u root -p
- 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('пароль');
- flush privileges;
- выйти и удалить ~/.mysql_history
- загрузить БД от версии 1.8: zcat .../zabbix.sql.gz | mysql -u zabbix -p zabbix
- обновить старую БД от версии 1.8 до версии 2.0:
- cd /usr/share/zabbix-mysql/upgrades/2.0/
- ./upgrade -u zabbix -p zabbix # долго, нужно место под копию таблицы history, много раз спрашивает пароль zabbix
- отредактровать /etc/zabbix_server.conf
- отключить EnableSNMPBulkRequests (что-то странное происходит)
- запустить сервис, он автоматически преобразует БД к версии 2.2 (средне)
Веб-интерфейс
Изменения настройки
- заменить элементы status на zabbix[host,agent,available] и поменять таблицу преобразования "Host status" и триггеры
- в настройках агентов версий 1.8 и 2.2 добавить адрес нового сервера; в более старых заменить
- в связи с измененим адреса поменять сетевые экраны и маршруты
- по-прежнему проблемы с производительностью IPMI, какая-то путаница с настройками при переходе - увеличил интервал до 300 секунд
Обеспечить резервное копирование.
Подготовительные работы:
- установить пакеты libssh2.x86_64, libssh2-devel.x86_64 (напрасно, т.к. требуется версия 1.0.0, в RHEL/CentOS 5 только 0.18)
- установить пакет php-mbstring
- установить пакеты php-domxml-php4-php5 и php-xml, иначе не работает экспорт узлов и шаблонов в XML
- отключить систему перезапуска сервера
- остановить zabbix сервер и агент (service zabbix_agentd stop; service zabbix_server stop)
- сделать резервную копию БД zabbix, файлов настройки (mv /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.169.conf;
mv /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.169.conf),
веб-интерфейса (mv /var/www/html/zabbix/ /var/www/html/zabbix169), исполнительных файлов
Установка сервера и агента Zabbix
Веб-интерфейс
- исправить /etc/php.ini и перезапустить httpd (service httpd restart)
- cd frontends/php/
- mkdir /var/www/html/zabbix/
- cp -rf * /var/www/html/zabbix/
- адаптировать: latest.php, include/blocks.inc.php, include/locales/ru_ru.inc.php
,
- адаптировать /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)
Рассылка новых агентов.
Подготовительные работы:
- остановить zabbix сервер и агент
- сделать резервную копию БД zabbix, файлов настройки, PHP, исполнительных файлов
Установка сервера и агента Zabbix
- развернуть архив
- ./configure --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp --with-openipmi
- make
- make install
- /usr/local/sbin/ (zabbix_agent (запускается через xinetd),
zabbix_agentd (самостоятельный), zabbix_get, zabbix_sender, zabbix_server
- и это всё?
- редактирование файлов настройки (никаких изменений)
- обновления БД не требуется
- service zabbix_agentd start
- service zabbix_server start
Веб-интерфейс
- cd frontends/php/
- mv /var/www/html/zabbix/ /var/www/html/zabbix165
- mkdir /var/www/html/zabbix/
- cp -rf * /var/www/html/zabbix/
- адаптировать: latest.php, include/blocks.inc.php, include/locales/ru_ru.inc.php
,
- скопировать conf/zabbix.conf.php
- права доступа: chown apache /var/www/html/zabbix/conf/zabbix.conf.php; chmod 440 /var/www/html/zabbix/conf/zabbix.conf.php
- при первом запуске предлагается провести установку системы, надо вежливо отказаться
Рассылка новых агентов.
Подготовительные работы:
- установить net-snmp (для использования SNMP агентов): пакеты net-snmp и net-snmp-devel
- установить OpenIPMI (для использования возможностей IPMI):
пакеты OpenIPMI, OpenIPMI-libs и OpenIPMI-devel
- установить libcurl (для мониторинга HTTP-серверов): пакет curl и curl-devel
- установить fping (из EPEL5)
- создать отдельный логический том под БД
(lvcreate --name mysql --size 20000M system)
- создать на нём файловую систему на
(mke2fs -j -L mysql -m 0 -T largefile -v /dev/mapper/system-mysql)
- установить MySQL (и mysql-devel), при этом
- смонтировать /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('пароль');
- flush privileges;
- выйти и удалить ~/.mysql_history
- ./configure --enable-server --enable-agent --with-mysql --with-libcurl
--with-net-snmp --with-openipmi
- make
- make install
- /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 на сервере
Веб-интерфейс
Определение и настройка контролируемых объектов, элементов данных,
триггеров, пользователей и их прав, средств доставки и красивых карт и консолей.
- пересборка пакетов из исходных текстов:
установить 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.
- развернуть архив
- ./configure --enable-agent
- make
- make install # старая версия остаётся в /usr/sbin/
- /usr/local/sbin/ (zabbix_agent, zabbix_agentd, )
- /usr/local/bin/ (zabbix_get, zabbix_sender)
- /usr/local/share/man/man1/ (zabbix_get.1, zabbix_sender.1)
- /usr/local/share/man/man8/zabbix_agentd.8
- service zabbix-agent stop
- отредактировать /etc/zabbix/zabbix_agentd.conf
- отредактировать /etc/init.d/zabbix-agent (ZABBIX_AGENTD=/usr/local/sbin/zabbix_agentd)
- service zabbix-agent start
При установке из 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).
- развернуть (использовать gtar)
- добавить /usr/ccs/bin в PATH
- ./configure --enable-agent
- make
- make install
- /usr/local/sbin/ (zabbix_agent, zabbix_agentd, zabbix_get, zabbix_sender)
- добавить пользователя zabbix:zabbix (без домашнего каталога и командной оболочки
- mkdir /etc/zabbix
- cp misc/conf/zabbix_agentd.conf /etc/zabbix/
- настроить /etc/zabbix/zabbix_agentd.conf
(адрес сервера, имя клиентского хоста, локальный порт (10050) и адрес,
уменьшить количество агентов (но одного недостаточно), не разрешать удалённые команды,
журнал в /val/log/zabbix/)
- mkdir /var/lib
- mkdir /var/log/zabbix /var/run/zabbix /var/lib/zabbix (сzabbix:zabbix)
- сделать /etc/init.d/zabbix-agent из чего-нибудь
- chmod +x /etc/init.d/zabbix-agent
- /etc/init.d/zabbix-agent start
- ln -f -s /etc/init.d/zabbix-agent /etc/rc0.d/K20zabbix-agent
- ln -f -s /etc/init.d/zabbix-agent /etc/rc1.d/S99zabbix-agent
- ln -f -s /etc/init.d/zabbix-agent /etc/rc2.d/S99zabbix-agent
Отличия версий:
- 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/
- можно запрещать слабые пароли
- поддерживаемые СУБД - MySQL/Percona 8.0.X, MariaDB 10.5.X - 10.6.X (InnoDB), PostgreSQL 13.X - 14.X и TimescaleDB 2.0.1-2.3, Oracle 19c - 21c, SQLite 3.3.5-3.34.X (прокси)
- параметр AllowUnsupportedDBVersions (версия СУБД проверяется при запуске zabbix_server)
- PHP 7.2.5 - 7.4 (gd, bcmath, ctype, libXML, xmlreader, xmlwriter, session, sockets, mbstring, gettext, ldap, openssl, mysqli/pgsql/oci8)
- поддержка 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
- новые математические функции: abs, acos, asin, atan, atan2, cbrt, ceil, cos, cosh, cot, degrees, e,
exp, expm1, floor, log, log10, mod, pi, power, radians, rand, round, signum, sin, sinh, sqrt, tan, truncate
- новые операторы (вхождение в интервал): 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,*]
- фильтр LLD по наличию или отсутствию макро
- поддерживаемые СУБД: MySQL/Percona 5.7.28-8.0.X, MariaDB 10.0.37-10.6.X, PostgreSQL 10.9-13.X (TimescaleDB 1.5-2.1), Oracle 12.1.0.2 - 19c, SQLite 3.3.5-3.34.X
- отдельный процесс для вычисляемых элементов и внутренних проверок; параметр StartHistoryPollers
- отдельный процесс для определения доступности хостов
- zabbix[process,тип] - количество процессов
- vmware.cl.perfcounter[] - производительность кластера
- {ITEM.VALUETYPE}
- новые шаблоны: 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); средне:
- модное вертикальное меню (удалён полноэкранный режим)
- новая секция "Monitoring - Hosts"
- сравнение строк в триггерах
- тестирование элементов данных
- модули веб интерфейса zabbix
- копи/пасте виджетов
- переделаны средства выбора хостов в интерфейсе
- автообнаружение IPMI сенсоров; ipmi.get[]
- изменён формат чисел с плавающей точкой (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
- значение макро может быть секретным (звёздочки на экране)
- пользовательские макро в прототипах хостов
- пользовательские макро в элементах данных IPMI
- {EVENT.DURATION}, {EVENT.TAGSJSON}, {EVENT.RECOVERY.TAGSJSON}
- сжатие TimescaleDB
- новые шаблоны: 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)
- собственная логика извещений на JavaScript: Webhooks (встроенная реализация Opsgenie, Mattermost, Pushover, Pagerduty, Slack, Discord, Telegram)
- поддержка TimescaleDB (временные ряды на PostgreSQL)
- графики: прямоугольники (в т.ч. рядом), функции агрегирования (min, max, avg, sum, count, first, last
- Kerberos
- в списке проблем в отдельной колонке или рядом с именем триггера может показываться
расширение макро (например, {ITEM.LASTVALUE} - текущее проблемное значение) - {EVENT.OPDATA}
- элемент данных db.odbc.get[] (несколько строк и колонок в формате JSON)
- автообнаружение блочных устройств - vfs.dev.discovery
- автообнаружение сервисов systemd - systemd.unit.discovery (только agent2)
- wmi.getall[]
- защищённая (PSK) авторегистрация агентов
- параметры агента HostInterface, HostInterfaceItem
- предобработка может преобразовать 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)
- убрана поддержка IE8
- поддержка OpenSSL 1.1.0 (было до 1.0.2)
- требуется как минимум PHP 5.4.0
- MySQL 5.0.3 - 5.7.x (InnoDB), MariaDB ? (case-sensitive - utf8_bin; сервер устанавливает autocommit=1)
- Apache 1.3.12 и выше
- 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 множество тонких настроек в интерфейсе
- Изменена логика расчёта пользовательских полномочий (read-write приоритетнее read)
- Возможность линковки к хосту шаблонов имеющих одинаковое приложение (application) - Performance и т.д.
- при отключении узла остаётся доступ к собранной информации
- добавлены параметры для vfs.file.regexp[], log[], logrt[], web.page.regexp[]
- внутренние проверки для прокси: zabbix[proxy_history], zabbix[boottime] и пр.
- переработаны шаблоны хоста и пр.
- научный формат чисел
- zabbix[items] возвращает число элементов под мониторингом, а не общее
- zabbix[hosts] возвращает число хостов под мониторингом
- официальная поддержка мониторинга БД
- новые макросы в извещениях: {ACTION.ID}, {ACTION.NAME}, {EVENT.STATUS}, {EVENT.VALUE}, {EVENT.RECOVERY.ID},
{EVENT.RECOVERY.DATE}, {EVENT.RECOVERY.TIME}, {EVENT.RECOVERY.STATUS}, {EVENT.RECOVERY.VALUE},
{ITEM.STATE}, {TRIGGER.STATE}, {LLDRULE.NAME.ORIG}, {LLDRULE.KEY.ORIG},
{LLDRULE.ID}, {LLDRULE.NAME}, {LLDRULE.KEY}, {LLDRULE.DESCRIPTION}, {LLDRULE.STATE}
- LLD макросы в триггерах
- макро и LLD макро в описаниях триггеров
- Автоматическое обновление базы данных при обновлении версии
- поддержка составных динамических SNMP индексов (CISCO-POP-MGMT-MIB::cpmDS1ActiveDS0s.6.0)
- для вычисления триггеров используется кеширование исторических данных в памяти (параметр ValueCacheSize;
элементы данных zabbix[vcache,buffer,режим] и zabbix[vcache,cache,параметр])
- обновление нескольких полей элемента данных производится в БД пакетом (кеширование изменений)
- параметр сервера StartTimers
- параметры агента HostMetadata и HostMetadataItem - расширение Hostname
- процессы zabbix_server показываются командой ps (top) под осмысленными именами с указанием выполняемой сейчас задачи
- параметр AllowRoot
- PHP gettext необязателен с 2.2.1
- пакетные SNMP запросы (2.2.3); параметр EnableSNMPBulkRequests
- OID как значение SNMP
- поправлена обработка зависимых триггеров
- "последние данные" и {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)
- PostgreSQL от 8.1
- переработан внешний вид, увеличена производительность web-интерфейса
- новые иконки элементов сети
- панель настраивается графически
- настраиваемые имена и цвета уровней триггеров; настраиваемые времена мигания и удержания
- отчёт инвернтаризации
- экспорт событий в CSV
- возможность затребовать подтверждение перед выполнением внешнего скрипта
- типы скриптов: IPMI, глобальный, ssh, telnet
- возможность запускать скрипты на агенте
- графики без заголовков
- улучшенные "Услуги ИТ"
- в шаблонах можно указывать комплексные графики (screen)
- макросы {ITEM.DESCRIPTION} и {ITEM.KEY}
- net.tcp.dns переименован в net.dns, net.tcp.dns.query в net.dns.record; можно указать адрес DNS сервера, таймаут и количество повторов
- улучшены system.localtime, net.tcp.service, net.tcp.service.perf, system.cpu.util, system.cpu.num, system.cpu.load, vm.memory.size
- параметр mode (all, skip) в log[], logrt[] и eventlog[]
- IP адрес в простых проверках
- пустая строка теперь воспринимается как строка, а не ошибка!
- внешняя проверка может иметь много параметров, первый параметр не предопределён, результатом может быть несколько строк
- vfs.file.contents[]
- system.hw.chassis[full|type|vendor|model|serial] (требуется root)
- system.hw.cpu[all|cpunum,full|maxfreq|vendor|model|curfreq]
- system.hw.devices[pci|usb]
- system.hw.macaddr[interface,short|full]
- system.sw.arch
- system.sw.os[name|short|full]
- system.sw.packages[package,manager,short|full]
- удалён элемент status и zabbix[log]
- внутренний элемент 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
- макросы извещений: {TRIGGER.TEMPLATE.NAME}, {TRIGGER.HOSTGROUP.NAME}, {TRIGGER.NAME.ORIG}, {ITEM.NAME.ORIG}, {ITEM.KEY.ORIG}
- ускорен 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 и др.), описаниях элементов данных
- периоды обслуживания хостов и групп хостов (при возникновении событий сообщения выдаются после завершения периода обслуживания)
- журнал аудита включает точные изменения настроек
- новые макросы в извещениях: NODE, ITEM.LOG, ITEM.VALUE, ITEM.LASTVALUE, HOST.CONN, HOST.DNS, IPADDRESS, TRIGGER.KEY, HOSTNAME, PROXY.NAME,
ITEM.NAME, ITEM.ID*, PROFILE, EVENT.ACK.STATUS, EVENT.ACK.HISTORY, TRIGGER.EVENTS.UNACK, TRIGGER.EVENTS.ACK, TRIGGER.ID,
TRIGGER.EXPRESSION, DISCOVERY
- новые макросы в этикетках карт: TRIGGERS.UNACK
- внутренняя проверка 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 или новее)
- в действиях можно задать метод извещения
- при мониторинге журналов можно использовать регулярные выражения в именах файлов (позволяет бороться с ротацией)
- журнализация медленно выполняемых сервером запросов (LogSlowQueries)
- журнализация исполняемых агентом команд (LogRemoteCommands)
- агент может обслуживать несколько серверов в активном режиме, параметр ServerActive задаёт список серверов
(для каждого сервера запускается отдельный обслуживающий процесс - осторожно со скриптами!)
- параметр CacheUpdateFrequency (60 секунд) задаёт частоту обновления кеша пользователей
- параметры CacheUpdateFrequency и TrendCacheSize удалены из конфигурации прокси
- параметр настройки агента UnsafeUserParameters
- настройка ограничений чистильщика БД MaxHousekeeperDelete, ранее было жёсткое ограничение - 500 (?!) штук за 1 заход
- чистильщик (housekeeper) сообщает сколько и чего он удалил
- увеличены верхние пределы количества процессов zabbix (например, StartAgents с 16 до 100)
- поддержка записей SRV для извещений с помощью Jabber и элементов данных net.tcp.dns.query
- zabbix_server --runtime-control config_cache_reload (обновления кеша конфигурации)
- zabbix_sender - [-r]
- изменение правил округлений и управляющие рукоятки в 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)
- изменилась схема прав доступа пользователей
|
Bog BOS: Zabbix - распределённая система мониторинга
|
Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru