Александр Александров из компании Татэнерго рассказывает о системе мониторинга Забекс.
Татэнерго обслуживает инфраструктуру Татэнерго и его филиалов.
Основные направления деятельности: каналы связи, интернет, телефония и АСУ ТП.
Александр учился в КФУ, закончил бакалавриат и магистратуру.
Работает в компании с 2015 года, начинал как инженер технической поддержки, затем стал системным администратором.
С 2019 года руководит группой развития информационных систем и сервисов.
Используются Забекс, Прометеус для мониторинга, Графана для визуализации данных.
Также Виндовс сервер, Редхат, Елка стек, Докер, Майкрософт, Питон, Пауэршел, Рокет чат, Икс вики.
Забекс - решение для распределенного мониторинга корпоративного класса с открытым исходным кодом.
Разрабатывается компанией Забег-с, последняя стабильная версия - 4.4.
Жизненный цикл продукта: лонг терм саппорт каждые полтора года, стандартные выпуски каждые полгода.
Забекс представлен на конференциях различных компаний, включая Альфа-банк, Магнит, Айкан, Сбербанк, Киви.
Достигнуты высокие показатели нагрузки на больших инсталляциях.
Агентный и безагентный мониторинг, поддержка различных протоколов.
Прокси-сервер для сбора данных с удаленных площадок.
Низкоуровневое обнаружение, гибкая настройка прав доступа, встроенная система визуализации.
Упрощенная архитектура: Забекс с прокси, агенты, база данных, интерфейс пользователя.
Забекс сервер состоит из трех частей: главный процесс, фронтенд и база данных.
Поддержка различных баз данных: PostgreSQL, MariaDB, Oracle.
Плагин для PostgreSQL для оптимизации хранения данных.
Агент Zabbix собирает данные с хоста и отправляет их на сервер.
Агент написан на языке C и работает быстро, не нагружая систему.
Конфигурация агента на сервере.
Поддержка операционных систем и механизмов работы с агентом.
Активные проверки: агент периодически обращается к серверу для сбора данных.
Пассивные проверки: сервер опрашивает агента для получения данных.
Поддержка SNMP v1, v2c, v3.
Поддержка TRAP SNMP.
Поддержка протоколов для сбора данных с физических устройств.
Поддержка JMX мониторинга Java-приложений.
Поддержка ODBC проверок для подключения к базам данных.
Поддержка зависимых метрик.
Прокси-сервер для сбора данных с удаленных устройств.
Работает в активном и пассивном режимах.
Определение объектов для мониторинга.
Шаблоны для сбора данных и их обработки.
Визуализация данных и анализ.
Веб-интерфейс для управления хостами.
Настройка шаблонов для подключения устройств.
Шаблоны определяют, как собирать данные и реагировать на них.
Поддержка иерархии шаблонов.
Примеры элементов данных: загрузка процессора, свободное место на диске.
Настройка элементов данных в шаблонах.
Определение элементов данных, триггеров и графиков.
Настройка параметров элементов данных: обновление, хранение данных, тренды.
Определение однотипных объектов на хосте.
Настройка правил для создания объектов.
Преобразование и фильтрация текстовых данных.
Использование регулярных выражений, XPath, JSONPath и Java Script для обработки данных.
Пример использования регулярных выражений для извлечения данных из текста.
Определение групп захвата в регулярных выражениях.
Триггеры определяют состояние хоста: "окей" или "проблема".
Примеры триггеров: загрузка оперативной памяти, отсутствие ответа на пинги, отсутствие процесса.
Возможность комбинировать триггеры с помощью логических операций.
Действия выполняются по событиям: триггеры, обнаружение новых устройств, авторегистрация.
Операции: отправка уведомлений, выполнение команд на сервере.
Интеграция с системами через веб-хуки.
Настройка алгоритмов действий при обнаружении проблем.
Пример: веб-сервер недоступен, отправка уведомлений, создание заявки в сервис-деск.
Карты сетей и дашборды для визуализации проблем.
Последние данные и графики для мониторинга метрик.
Типы пользователей: супер админ, админ, пользователь.
Способы аутентификации: логин-пароль, LDAP, аутентификация через веб-сервер.
Настройка прав доступа и разграничение по группам пользователей и хостов.
Использование пользовательских параметров, внешних скриптов, модулей и ключа system.ran.
Пользовательские параметры позволяют задавать команды для выполнения на хосте и возвращать результаты в Zabbix.
Плюсы: безопасно, не требует правки конфигурации на каждом хосте, минусы: требует автоматизации и укладывается в тайм-аут агента.
Написание скриптов на удобном языке и размещение их на сервере Zabbix.
Скрипты вызываются при сборе метрик и возвращают результаты.
Плюсы: удобно, безопасно, минусы: сложность разработки и компилирования модулей.
Модули на языке C, встраиваемые в код Zabbix агента.
Плюсы: безопасность, удобство, минусы: сложность разработки и необходимость компиляции.
Команда, вызываемая на хосте и возвращающая результат на Zabbix сервер.
Плюсы: не требует правки конфигурации агента, минусы: длина ключа ограничена, небезопасность.
Новый агент на языке GoLang, обещающий решить проблемы предыдущих версий.
Плюсы: простота разработки модулей, совместимость с Zabbix Agent 1.
До Zabbix использовалась система мониторинга Host Monitor, не обновлявшаяся с 2000-х годов.
Host Monitor позволял выполнять простые проверки и скрипты, но не обеспечивал частое снятие метрик и визуальную привлекательность.
Недостаточная частота снятия метрик, визуализация, интеграция с другими системами и автоматизация процессов.
Цели: частое снятие метрик, визуализация, интеграция и автоматизация.
В мае 19 года начали внедрять Zabbix для мониторинга.
В сентябре 19 года добавили Grafana для визуализации данных.
В декабре 19 года внедрили Jira для документирования.
В январе 20 года добавили ELK для сбора логов.
ELK включает Elasticsearch, Logstash и Kibana.
Elasticsearch хранит текстовые данные в формате JSON.
Шаблоны для мониторинга часто отсутствуют или устарели.
Сайт Zabbix Community предлагает шаблоны, но они не всегда подходят.
Zabbix начал разрабатывать свои официальные шаблоны с 19 года.
Эти шаблоны поддерживаются командой Zabbix и обновляются оперативно.
Знание Zabbix и его документации.
Знание Linux и Bash.
Знание протоколов, таких как SNMP и JMX.
Умение работать с регулярными выражениями и скриптами.
Мониторинг виртуализации с помощью Hyper-V и PowerShell.
Мониторинг серверов с помощью PerfCounters и Prometheus.
Мониторинг резервного копирования с помощью SQL и Traps.
Рост показателей Zabbix, измеряемых в NVPs.
Текущий показатель около 280 NVPs.
Zabbix сервер на CentOS 7 с 8 виртуальными процессорами и 8 ГБ памяти.
Использование трех забиксов с прокси для мониторинга удаленных площадок.
Конфигурация: один виртуальный процессор, один гигабайт памяти.
Показатели: 20 пользователей, 8000 триггеров, 25000 элементов данных, 160 подключенных хостов.
Стабильная загрузка памяти из-за использования MySQL.
Периодические всплески нагрузки из-за запуска процесса ChaosKeeper для очистки базы данных.
Высокая нагрузка на сетевой интерфейс при запуске ChaosKeeper.
Прозрачность для всех сотрудников, включая другие подразделения.
Возможность делиться данными мониторинга с другими подразделениями.
Визуализация статистики и возможность проактивных мер.
Анализ инцидентов и улучшение их расследования.
Повышение знаний и навыков в работе с Open Source продуктами.
Развитие сбора логов на базе Elasticsearch.
Интеграция забикса с другими системами для автоматического создания тикетов.
Мониторинг СХД и SAN.
Мониторинг рабочих станций пользователей.
Документация и баг-трекер забикса.
Телеграм-каналы для поддержки и шаблоны сообщества.
Контакты для дальнейшей поддержки.