Чӣ нав дар Zabbix 5.0

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

Чӣ нав дар Zabbix 5.0

Zabbix 4.2 и Zabbix 4.4

Начнем с изменений, появившихся в версии Zabbix 4.0, в связи с использованием LTS-версий.
В версии Zabbix 4.2, которая вышла в апреле 2019 года, появились следующие возможности:

  • Высокочастотный мониторинг с помощью троттлинга, который обеспечивает масштабирование и повышение NVPS, что означает более быстрое обнаружение проблем и направление оповещений без большой нагрузки на Zabbix.
  • Сбор данных с помощью HTTP-агента.
  • Поддержка сбора данных от Prometheus Pro.
  • Предобработка поддерживает валидацию и JavaScript, который позволяет трансформировать любые собираемые данные.
  • Предобработка на стороне прокси, которая обеспечивает более эффективное масштабирование с помощью прокси.
  • Улучшенное управление тегами — мета-информацией на уровне событий и проблем, с которыми удобно работать, потому что теги поддерживаются и на уровне шаблонов, и на уровне узлов сети.

В сентябре прошлого года вышла версия Zabbix 4.4, которая предлагала следующие возможности:

  • Новый Zabbix агент.
  • Поддержка Webhook для оповещений и уведомлений, что позволяет интегрироваться с внешними системами.
  • Поддержка TimescaleDB.
  • Встроенная база знаний для метрик и триггеров стала видимой для пользователей Zabbix. Например, пользователи могут использовать описание элементов данных и триггеров в Monitoring > Latest data.
  • Новый стандарт для шаблонов.

Zabbix 5.0

Сегодня мы поговорим о LTS-релизе Zabbix 5.0, который будет поддерживаться в течение 5 лет. Поддержка версии 4.4 прекращается через один месяц. LTS-релиз Zabbix 3.0 будет поддерживаться еще 3,5 года.

Zabbix обеспечивает мониторинг многих вещей, список которых можно уточнить на странице http://www.zabbix.com/integrations, где представлены шаблоны для мониторинга и плагины, в том числе для нового агента.

Чӣ нав дар Zabbix 5.0
Доступные шаблоны для мониторинга и интеграции

Кроме того, существуют возможности интеграции с различными системами, включая системы тикетов, ITSM-системы и системы доставки сообщений с помощью Webhook.

Чӣ нав дар Zabbix 5.0
Возможности интеграции

В Zabbix 5.0 расширена встроенная поддержка для интеграции с различными системами тикетов, а также системами оповещений:

Чӣ нав дар Zabbix 5.0
Интеграция с различными системами

Расширен список встроенных шаблонов для мониторинга приложений и устройств:

Чӣ нав дар Zabbix 5.0
Встроенные шаблоны для мониторинга приложений и устройств

Все обновления доступны для скачивания в Git repository.

Любой пользователь или разработчик может участвовать в Zabbix с готовыми наработками — шаблонами или плагинами, воспользовавшись простой процедурой:

  1. Подписание Zabbix Contributory Agreement (ZCA) на https://www.zabbix.com/developers.
  2. Размещение Pull Request на https://git.zabbix.com.
  3. Рассмотрение заявки командой разработчиков. Если плагин или шаблон соответствует стандартам Zabbix, он включается в продукт, и работа такого разработчика будет официально поддерживаться командой Zabbix.

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

Разработчики Zabbix предлагают пакеты для практически всех наиболее популярных дистрибутивов и различных платформ виртуализации. Кроме того, Zabbix с помощью одного клика мыши можно установить в публичном облаке. Zabbix также доступен на платформах Red Hat Openshift или OpenStack.

Чӣ нав дар Zabbix 5.0
Пакеты Zabbix для дистрибутивов и платформ

Поддержка Zabbix Agent 2 для Windows и Linux

Новый Zabbix Agent 2 — одно из лучших решений на рынке.

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

Кроме того, для нового агента в Zabbix 5.0 предлагается поддержка постоянного хранения данных. Ранее неотправленная информация хранилась только в буферной памяти агента, а в новой версии доступна настройка хранения такой информации на диске.

Чӣ нав дар Zabbix 5.0
Нигоҳдории доимии маълумот

Это важно в случае мониторинга критических систем и нестабильных коммуникаций, поскольку большое количество важнейших данных сохраняется до отправки на Zabbix сервер. Опция также полезна для спутниковых соединений, которые могут быть недоступны в течение длительного времени.
Муҳимтарин! В Zabbix 5.0 сохранена поддержка Zabbix Agent 1.

Изменения в системе безопасности в Zabbix 5.0

1. В новой версии поддерживается HTTP-прокси для webhook, который позволяет выполнять соединения с Zabbix сервера на внешние системами оповещения более безопасным и управляемым образом.

Если необходима интеграция Zabbix-сервера в локальной сети с внешней системой, наример, JIRA в облаке, можно поддерживать соединение через HTTP-прокси, что улучшает контролируемость и надежность соединения.

2. Как для старого, так и для нового агента предусмотрена возможность выбирать, какие именно проверки должны быть доступны на определенном агенте. Например, можно ограничить количество проверок, фактически создав белые и черные списки, определить поддерживаемые ключи.

  • Whitelist for MySQL related checks
    AllowKey=mysql[*] 
    DenyKey=*
  • Blacklist to deny all shell scripts
    DenyKey=system.run[*]
  • Blacklist to deny access to /etc/password
    DenyKey=vfs.file.contents[/etc/passwd,*]

3. Возможен выбор алгоритмов шифрования для всех компонентов Zabbix, во избежание использования небезопасных шифров для TLS-соединений. Это важно для мониторинга сред, для которых применяются определенные стандарты безопасности.

Чӣ нав дар Zabbix 5.0
Выбор алгоритмов шифрования для TLS-соединений

4. В Zabbix 5.0 появилась поддержка шифрованных соединений с базой данных. На данный момент доступно только шифрованное соединение с PostgreSQL и MySQL.

Чӣ нав дар Zabbix 5.0
Шифрованные соединения с базой данных

5. Zabbix 5.0 перешел с MD5 на SHA256 для хранения хэшей паролей пользователей в базе данных, поскольку на данный момент это наиболее безопасный алгоритм.

6. Zabbix 5.0 поддерживает секретные пользовательские макросы для хранения любой конфиденциальной информации, такой как пароли и API токены, к которой не имеют доступа конечные пользователи.

Чӣ нав дар Zabbix 5.0
Секретные макросы

7. Все соединения Zabbix с внешними системами и внутренние соединения с агентами являются безопасными. Поддерживается шифрование с использованием TLS сертификатов, либо с использованием предварительно опубликованного ключа (pre-shared key encryption) для соединения с агентами и c прокси, либо HTTPS. Безопасность на стороне агентов можно усиливать за счет белых и черных списков. Интерфейс работает через HTTPS.

Чӣ нав дар Zabbix 5.0
Безопасные соединения

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

Чӣ нав дар Zabbix 5.0
SAML-идентификация

Поддержка SAML позволяет интегрировать Zabbix с различными локальными и облачными поставщиками идентификационных услуг, такими как Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, а также Azure, AWS или Google Cloud Platform.

Удобство использования Zabbix 5.0

1. Пользовательский интерфейс, оптимизированный для широких экранов. Мы переместили меню из верхней части, где всегда не хватает места, в левую часть экрана. Меню по-прежнему отображается в полном, минимальном и скрытом режиме.

Чӣ нав дар Zabbix 5.0
Интерфейс, оптимизированный для широкого экрана

2. Копирование виджетов с панелей позволяет очень быстро создавать новые ПАНЕЛИ. Для этого в ПАНЕЛИ необходимо выбрать нужный виджет, нажать Copy

Чӣ нав дар Zabbix 5.0
Копирование виджета

и вставить виджет в нужную панель.

Чӣ нав дар Zabbix 5.0
Вставка скопированного виджета

3. Экспорт графиков. Чтобы скопировать график и отправить, например, по электронной почтe, можно получить график в формате PNG, выбрав нужный виджет и нажав Тасвирро зеркашӣ кунед.

Чӣ нав дар Zabbix 5.0
Экспорт графиков

4. Фильтрация по тегам: Problem by severity и Problem hosts. Появилась возможность, например, собрать в одном дата-центре данные по всем проблемам, связанным с одним узлом сети.

Чӣ нав дар Zabbix 5.0
Филтр аз рӯи тегҳо

5. Поддержка модулей для расширения интерфейса Zabbix. Для установки независимого модуля нужно скопировать его в определенную директорию. Модули позволяют расширять существующую функциональность интерфейса, создавать новые страницы, менять структуру меню, например, добавлять пункты.

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

Чӣ нав дар Zabbix 5.0
Добавление нового модуля

6. Простота навигации по ресурсам, связанным с узлами сети. Дар Monitoring > Hosts отображается список устройств, которые мониторит Zabbix: узлы сети, сервисы, сетевые устройства и т. д. Кроме того, доступна быстрая навигация к экранам, графикам и проблемам конкретных устройств.

Мы убрали вкладки Monitoring > Graphs и Monitoring > Webs, и вся навигация осуществляется через Monitoring > Hosts. Отображаемую информацию можно фильтровать, в том числе, по тегам, что позволяет отображать отключенные устройства

Чӣ нав дар Zabbix 5.0
Навигация по ресурсам, связанным с узлами сети

Например, можно выбрать устройства, которые относятся к сервисам конечных пользователей, выбрав ‘хизматрасонӣ’, а также задав уровень важности этих проблем.

Чӣ нав дар Zabbix 5.0
Возможности фильтрации

7. Новая операция предварительной обработки — ‘Замена‘ позволяет делать несколько полезных вещей, которые раньше можно было делать только с помощью регулярных выражений, достаточно сложных для многих пользователей.
Иваз кунед позволяет фактически заменить одну строку или символ на другие, что позволяет просто конвертировать данные, полученные в текстовом формате, в числовое представление.

Чӣ нав дар Zabbix 5.0
Оператор Replace

8. Оператор JSONPath, который позволяет извлекать имена атрибутов в удобной форме

Чӣ нав дар Zabbix 5.0
Оператор для JSONPath

9. Отображение сообщений электронной почты Zabbix. В предыдущих версиях все сообщения электронной почты от Zabbix в папке паёмдони отображались списком. Начиная с Zabbix 5.0 сообщения будут группироваться по проблемам.

Чӣ нав дар Zabbix 5.0
Группировка сообщений электронной почты от Zabbix

10. Поддержка пользовательских макросов для IPMI для имени пользователя и пароля. Если для имени пользователя и пароля используются секретные макросы, доступ к их значению будет закрыт.

Чӣ нав дар Zabbix 5.0
Поддержка пользовательских макросов

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

Чӣ нав дар Zabbix 5.0
Добавление и изменение пользовательских макросов

а также удалять какие-то определенные или все макросы из выбранных шаблонов для узлов сети.

Чӣ нав дар Zabbix 5.0
Удаление отдельных или всех пользовательских макросов

12. Контроль формата сообщений на уровне способа оповещения. Дар Намудҳои ВАО появилась вкладка Media templates с шаблонами сообщений.

Чӣ нав дар Zabbix 5.0
Шаблоны способов оповещений

Для разных типов сообщений можно определить различные шаблоны.

Чӣ нав дар Zabbix 5.0
Определение шаблона для типа сообщений

В предыдущих версиях нужно было управлять этими сообщениями на уровне действий, определять сообщения и предмет по умолчанию.

Чӣ нав дар Zabbix 5.0
Управление шаблонами на уровне действий

В новой версии все можно определить на глобальном уровне, а на уровне сообщений — переписать глобальные настройки.

Чӣ нав дар Zabbix 5.0
Управление шаблонами на глобальном уровне

Для большинства пользователей достаточно определять форматы шаблонов на уровне способа оповещения. Более того, после импорта какого-то нового способа оповещения все соответствующие форматы шаблонов уже являются его частью.

13. Более широкое применение JavaScript. JavaScript используется для скриптов предобработки, для Webhook и т.д. В командной строке, работать с JavaScript непросто.
В Zabbix 5.0 используется новая утилита — zabbix_js, запускающая JavaScript, который принимает данные, обрабатывает их и генерирует выходные значения.

Чӣ нав дар Zabbix 5.0
Утилита zabbix_js

Чӣ нав дар Zabbix 5.0
Примеры использования утилиты zabbix_js

14. Поддержка текстовых операций триггерными выражениями позволяет проверять версии установленных компонентов, сравнивать значения с какими-либо константами, при этом константой может быть пользовательский макрос,

{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}

cравнивать последнее значение с предыдущим, например, когда речь идет о текстовых данных,

{host:text.last()}<>{host.text.prev()}

ё

{host:text.last(#1)}<>{host.text.prev(#2)}

или сравнивать текстовые значения различных метрик.

{hostA:textA.last()}={hostB:textB.last()}

15. Автоматизация и обнаружение.

  • Доступны новые проверки JMX для получения и обнаружения списка счетчиков JMX, что очень полезно, например, для мониторинга Java-приложений, а также для автоматизации создания элементов мониторинга, метрик, триггеров и графиков.
    jmx.get[]

    и

    jmx.discovery[]

    Чӣ нав дар Zabbix 5.0
    Проверки JMX

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

    Чӣ нав дар Zabbix 5.0
    Мониторинг счетчиков производительности Windows с помощью ключа perf_counter

  • ODBC-мониторинг стал намного проще. Ранее все параметры для ODBC-мониторинга приходилось описывать во внешнем файле /etc/odbc.ini, к которому не было доступа со стороны интерфейса Zabbix. В новой версии практически все параметры могут быть частью ключа метрики.

    Чӣ нав дар Zabbix 5.0
    Ключ метрики с описанием параметров

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

    Чӣ нав дар Zabbix 5.0
    Использование секретных макросов

  • При использовании протокола IPMI для мониторинга оборудования появилась возможность создавать более простые шаблоны для автоматизации с помощью ipmi.get.

    Чӣ нав дар Zabbix 5.0
    ipmi.get

16. Тестирование элементов данных из интерфейса. В Zabbix 5.0 появилась возможность тестирования некоторых элементов данных и, что еще более важно, шаблонов элементов данных из интерфейса.

Чӣ нав дар Zabbix 5.0
Тестирование элементов данных

Любые возникающие проблемы отображаются в интерфейсе.

Чӣ нав дар Zabbix 5.0
Отображение проблем в интерфейсе

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

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

Чӣ нав дар Zabbix 5.0
Тестирование способов оповещения

18. Поддержка пользовательских макросов для прототипов элементов данных. Для определения значений пользовательских макросов можно использовать LLD-макросы.

Чӣ нав дар Zabbix 5.0
Использование LLD-макросов для определения значений пользовательских макросов

19. Поддержка данных Float64, которые необходимы, в основном, для мониторинга очень больших значений, в Zabbix требуется для поддержки данных получаемых от агентов Prometheus.
В случае установки Zabbix 5.0 автоматическая миграция данных на стандарт Float64 не происходит. У пользователя остается возможность использовать старые типы данных. Скрипты миграции на Float64 запускаются вручную и меняют типы данных в исторических таблицах. Автоматическая замена не используется, поскольку занимает очень длительное время.

20. Улучшение масштабируемости Zabbix 5.0: оптимизация интерфейса и устранение «узких мест»

  • Устранены раскрывающиеся списки, например, для выбора узлов сети, потому что эта функция не масштабируется.
  • Появились «встроенные» лимиты для размеров таблиц шарҳ.
  • Появились новые возможности в Monitoring > Hosts > Graphs.
  • Появилась функция paging (Monitoring > Hosts > Web) там, где её не было.

21. Улучшенная компрессия
Компрессия в Zabbix основана на расширении для PostgreSQL — TimescaleDB (начиная с Zabbix 4.4). TimescaleDB обеспечивет автоматическое секционирование базы данных и повышает её производительность, поскольку производительность TimescaleDB фактически не зависит от размера базы данных.

В Zabbix 5.0 в Administration > General > Housekeeping можно настроить, например, компрессию данных старше 7 дней. Это значительно сокращает требуемое место на диске (почти в десять раз, по данным пользователей), что улучшает экономию дискового пространства и повышает производительность.

Чӣ нав дар Zabbix 5.0
Компрессия с помощью TimescaleDB

22. Настройка SNMP на уровне интерфейса. В Zabbix 5.0 вместо трех типов элементов данных используется только один — SNMP agent. Все атрибуты SNMP перенесены на уровень интерфейса узлов сети, что позволяет упростить шаблоны, переключение между версиями SNMP и т. д.

Чӣ нав дар Zabbix 5.0
Настройка SNMP на уровне интерфейса

23. Зависимость мониторинга доступности узлов сети от доступности прокси позволяет отображать проблему доступности прокси как первоочередную в случае недоступности узлов сети при мониторинге с использованием триггера с функцией nodata:

{HostA:item.nodata(1m)}=1

Чӣ нав дар Zabbix 5.0
Доступность узлов сети определяется доступностью прокси

функсия nodata по умолчанию принимает во внимание доступность прокси. Для более строгой проверки, не принимающей во внимание доступность прокси, используется второй параметр — қатъии:

{HostA:item.nodata(1m,strict)}=1

24. Управление правилами низкоуровневого обнаружения. В Zabbix 5.0 появился LLD-фильтр, который позволяет просматривать в том числе неподдерживаемые правила обнаружения

Чӣ нав дар Zabbix 5.0
LLD-фильтр

25. Возможность снять подтверждение проблемы (unacknowledge) позволяет исправлять ошибки и полезна при создании рабочих процессов, зависящих от подтверждения проблемы.

Чӣ нав дар Zabbix 5.0
Снятие подтверждения проблемы

26. Изменение правил низкоуровневого обнаружения —возможность добавления исключений при обнаружении объектов в результате мониторинга файловых систем, которая позволяет при низкоуровнем обнаружении создавать или не создавать определенные объекты, триггеры, элементы данных и т.д., менять важность проблем, добавлять теги для определенных объектов, исключать объекты, например, временные файловые системы, из поиска, менять интервал обновления данных и т.д.

Чӣ нав дар Zabbix 5.0
Исключение из низкоуровневого обнаружения временных файловых систем

Например, можно изменить уровень приоритетности триггеров для обнаруженных файловых систем Oracle, оставив уровень приоритетности триггеров других файловых систем на прежнем уровне.

Чӣ нав дар Zabbix 5.0
Изменение уровеня приоритетности триггеров для отдельны файловых систем

27. Новые макросы в Zabbix 5.0 позволяют повысить качество мониторинга.

Чӣ нав дар Zabbix 5.0
Новые макросы в Zabbix 5.0

28. Другие нововведения в Zabbix 5.0:

Чӣ нав дар Zabbix 5.0
Улучшения в Zabbix 5.0

29. Прекращение поддержки
Чӣ нав дар Zabbix 5.0
Неподдерживаемая функциональность

хулоса

Обновиться до Zabbix 5.0 очень просто! Устанавливайте и запускайте новые бинарные файлы для сервера и frontend-файлы, и сервер автоматически обновит вашу базу данных.
Информация о процедуре обновления Zabbix размещена по адресу:
https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500

Муҳимтарин!

  1. Обновление исторических данных до формата Float64 необязательно.
  2. Данные TimescaleDB доступны только для чтения.
  3. Минимальная требуемая версия PHP7.2.
  4. DB2 не поддерживается как backend для Zabbix сервера

(!) Видео и слайды презентаций Алексея Владышева и других спикеров Zabbix Meetup Online (Russian) можно посмотреть дар ин ҷо.

Манбаъ: will.com

Илова Эзоҳ