Правильное обнаружение проблем с помощью zabbix

Введение

Zabbix — опенсорсная система мониторинга всевозможных параметров и систем — отдельных компьютеров, серверов, сетей, сетевого оборудования. Написана нашим человеком — Алексеем Владышевым. Интерфейс управления системой работает на php и легко разворачивается на любом веб сервере. Данные хранятся в бд, которой может выступать MySQL, PostgreSQL, SQLite или Oracle.

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

Заббикс сервер без проблем устанавливается на все популярные дистрибутивы Linux, Freebsd, IBM AIX, IBM Power8, NetBSD, OpenBSD, HP-UX, Mac OS X, Solaris. Под Windows работают только агенты.

Мы же приступим к установке сервера Zabbix на CentOS 7.

Введение

Я уже много раз рассказывал и описывал современную, бесплатную, популярную систему мониторинга zabbix. Повторяться в очередной раз не хочется. Для тех, кто впервые попал на мой сайт и не знаком с предыдущими материалами, поделюсь некоторыми ссылками на статьи.

Небольшое описание самой системы можно увидеть в материалах, касающихся установки предыдущих версий — 2.4 и 3.0. Информацию об изменениях в разных версиях можно посмотреть в материалах по обновлению — 2.4 -> 3.0, 3.0 -> 3.2.

Несмотря на то, что новые версии zabbix выходят достаточно часто, материалы по настройке мониторинга различных систем и сервисов не устаревают и остаются актуальным для самых новых релизов:

  • Установка и настройка zabbix прокси на CentOS 7
  • Мониторинг размера бэкапа
  • Мониторинг значений из текстового файла
  • Мониторинг времени делегирования домена
  • Мониторинг Synology
  • Мониторинг бэкапов
  • Мониторинг транков (trunk) в asterisk
  • Мониторинг программного рейда mdadm
  • Мониторинг доступности службы linux
  • Мониторинг MySQL репликации
  • Мониторинг web сайта
  • Мониторинг web сервера nginx и php-fpm
  • Настройка мониторинга температуры

Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии происходит безболезненно. Нет необходимости перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться. Приступим к установке последней версии zabbix 3.2.

Справочник методов

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

Мониторинг

Zabbix API позволяет вам получить доступ к истории и другим данным, собранным в процессе мониторинга.

История

Получение исторических данных, которые собраны процессами мониторинга Zabbix, для отображения или дальнейшей обработки.

События

Получение событий, которые сгенерированы триггерами, сетевым обнаружением и другими системами Zabbix, для более гибкого управления ситуациями или интеграции со сторонними инструментами.

Мониторинг услуг

Получение подробной информации доступности слоев услуг касательно любой услуги IT.

Настройка

Zabbix API позволяет вам управлять настройкой вашей системы мониторинга.

Узлы сети и группы узлов сети

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

API узлов сети | API групп узлов сети | API интерфейсов узлов сети |
API пользовательских макросов |
API обслуживания

Элементы данных и группы элементов данных

Добавление элементов данных для мониторинга. Создавайте и удаляйте группы элементов данных и назначайте элементы данных в эти группы.

API элементов данных | API групп элементов данных

Графики

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

API графиков | API элементов графиков

Экспорт и импорт

Экспорт и импорт данных конфигурации Zabbix для создания архивных копий конфигурации, миграции или крупномасштабных изменений конфигурации.

Низкоуровневое обнаружение

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

API правил LLD | API прототипов элементов данных | API прототипов триггеров | API прототипов графиков | API прототипов узлов сети

Комплексные экраны

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

API комплексных экранов | API элементов комплексного экрана | API комплексных экранов шаблона | API элементов комплексного экрана шаблонов

Действия и оповещения

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

API действий | API оповещений

Сетевое обнаружение

Управление правилами обнаружения сетевого уровня для автоматического поиска и мониторинга новых узлов сети. Получение полного доступа к информации об обнаруженных сервисах и узлах сети.

API правил обнаружения | API проверок обнаружения | API обнаруженных узлов сети | API обнаруженных сервисов

Администрирование

С Zabbix API вы можете менять настройки администрирования вашей системы мониторинга.

Пользователи

Добавление пользователей, которые будут иметь доступ к Zabbix, назначение их в группы пользователей и предоставление прав доступа. Настройка типов оповещений и способов, которыми пользователи будут получать оповещения.

API пользователей | API групп пользователей | API способов оповещений | API оповещений пользователей

Общие

Изменение некоторых опций глобальной конфигурации.

API соответствий иконок | API изображений | API пользовательских макросов | API преобразований значений

Скрипты

Настройка и выполнение скриптов, которые помогут вам с вашими ежедневными задачами.

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

Дополнительные материалы по Zabbix

Онлайн курс «Сетевой инженер»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Это авторская программа в сочетании с удалённой практикой на реальном оборудовании и академическим сертификатом Cisco! Студенты получают практические навыки работы на оборудовании при помощи удалённой онлайн-лаборатории, работающей на базе партнёра по обучению — РТУ МИРЭА: маршрутизаторы Cisco 1921, Cisco 2801, Cisco 2811; коммутаторы Cisco 2950, Cisco 2960.

Особенности курса:

  • Курс содержит две проектные работы.;
  • Студенты зачисляются в официальную академию Cisco (OTUS, Cisco Academy, ID 400051208) и получают доступ ко всем частям курса «CCNA Routing and Switching»;
  • Студенты могут сдать экзамен и получить вместе с сертификатом OTUS ещё сертификат курса «CCNA Routing and Switching: Scaling Networks»;

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX

Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.

Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.

Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.

Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.

Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.

Мониторинг служб и сервисов
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology

Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.

Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.

Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.

Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)

Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.

Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.

Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.

Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов

Настройка мониторинга web сайта в zabbix. Параметры для наблюдения — доступность сайта, время отклика, скорость доступа к сайту.

Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.

Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.

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

Пример распознавания и мониторинга за изменением значений в обычных текстовых файлах с помощью zabbix.

Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Из чего состоит Zabbix и что он может?

Zabbix простой установке и настройке, написан на C (сервер, прокси и агент) и PHP (фронтенд). Zabbix Server и Zabbix Proxy может работать только на Linux системах. Агент можно установить на большом количестве поддерживаемых ОС и платформах.

Инсталляция Zabbix сервера состоит из:

  • бинарника zabbix_server (обычно работает как сервис);
  • MySQL (MariaDB)/PostgreSQL базы данных;
  • Веб сервера Apache2/Nginx с обработчиком PHP;
  • Файлов самого frontend сайта (.php, .js, .css и т.д.).

Обычно схема работы выглядит так:

  1. Агент Zabbix посылает данные на сервер
  2. Сервер Zabbix получает и обрабатывает данные.
  3. Если полученные данные подпадают под заданные условия, то срабатывает триггер;
  4. Активный триггер сигнализирует о проблеме. Отображается уведомление на фронтенде (сайте), и в зависимости от конфигурации рассылается сообщение по почте и выполняется какие-либо действия (например, перезапуск службы, которая мониторится).

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

Установка zabbix agent 3.0 на freebsd 10.3

Давайте для примера установим на этот же сервер агент zabbix. Сделать это очень просто. Снова смотрим список свежих пакетов zabbix:

# pkg search zabbix3-agent
zabbix3-agent-3.0.1_2          Enterprise-class open source distributed monitoring (agent) LTS

Ставим эту версию:

# pkg install  zabbix3-agent-3.0.1_2

По-умолчанию агент уже сконфигурирован на работу с локальным сервером. Нам нужно только скопировать конфиг:

# cp /usr/local/etc/zabbix3/zabbix_agentd.conf.sample /usr/local/etc/zabbix3/zabbix_agentd.conf

Добавить в атозагрузку и запустить агент:

# sysrc zabbix_agentd_enable=YES
# service zabbix_agentd start

Чтобы мониторинг заработал, нужно в веб интерфейсе зайти  раздел Configuration -> Hosts и нажать на Disabled напротив Zabbix server, чтобы он стал Enabled

Через 2-3 минуты можно идти проверять поступление данных. На этом все, основную тему статьи я раскрыл. Мы научились устанавливать zabbix server и agent 3.0 на freebsd.

Стоимость

Тип решения Длительность Условия поставки ЦенаEUR / USD
Лёгкий 1 день Удаленная инсталляция Zabbix сервера с базовыми настройками и настройкой производительностиПримеры:
Персонализация интерфейса (подбор темы + логотип) или
Добавление наблюдаемых устройств, официальных шаблонов, создание пользователей, настройка оповещений
€950 / $1,290
Базовый 2 дня Удаленная инсталляция Zabbix сервера с базовыми настройками и настройкой производительностиПримеры:
Добавление контролируемых устройств, официальных шаблонов, создание пользователей, настройка уведомлений
создание кастомизированных шаблонов
€1,800 / $2,450
Расширенный 5 дней Удаленная консультация, инсталляция и расширенная настройкаПримеры:
Начальная инсталляция Zabbix в определённой среде (напр. AWS) и реализация дополнительных требований: (высокая доступность, требований повышенной безопасности — ежемесячное пересоздание серверов):
Кластер высокой доступности в AWS, мониторинг производительности, замена apache на nginx, устранение комплексных проблем.
Начальная инсталляция Zabbix с дополнительными требованиями (напр. кластер высокой доступности, аварийное восстановление экземпляра Zabbix и пользовательские шаблоны).
Инсталляция Zabbix сервера, настройка SELinux и брандмауэра, оптимизация производительности БД, настройка кластера высокой доступности для Zabbix, настройка репликации БД в режиме Мастер-Мастер, настройка партиционирования БД, добавление сетевых устройств и серверов в Zabbix (без установки агентов), заведение групп пользователей и оповещений (электронная почта / SMS), настройка мониторинга по SNMP, добавление пользовательских шаблонов, создание карт для визуализации данных, настройка резервного копирования.


5% скидка на любой выбранный уровень коммерческой поддержки сроком на 1 год

€4,500 / $5,900
Расширенный+ 10 дней Удаленная консультация, инсталляция и расширенная настройкаПример:

10% скидка на любой выбранный уровень коммерческой поддержки сроком на 1 год
€8,500 / $11,500
Профессиональный 10 дней Консультация на месте, инсталляция и расширенная настройка (7 дней),Обучение на месте для 5-ти сотрудников (3 дня) по курсу Zabbix сертифицированный специалист.15% скидка на любой выбранный уровень коммерческой поддержки сроком на 1 год €16,500 / $22,400
Индивидуальный пакет   Пожалуйста, свяжитесь с нашим отделом продаж для запроса стоимости индивидуального пакета  

Вышел Zabbix 2.2

Я очень рад сообщить, что сегодня вышла новая версия открытой системы мониторинга Zabbix 2.2. Хочу поблагодарить нашу команду, пользователей и активное сообщество наших друзей. Спасибо всем за работу и активное участие!

Что такое Zabbix?

Zabbix — это распределённая система мониторинга. Zabbix является полностью свободным (Open Source) решением без каких-либо платных версий или расширений.
Zabbix способен следить за сотнями тысяч устройств, приложений и сервисов, собирать сотни гигабайт исторической информации в день и производить миллионы проверок доступности и производительности в минуту.
Zabbix используется во всём мире в различных индустриях в том числе крупнейшими европейскими банками и финансовыми учреждениями, интеграторами, IT и телекоммуникационными компаниями и известными университетами.
Основными отличиями Zabbixa от других систем мониторинга являются широкая функциональность, открытость, масштабируемая архитектура, способность собирать и анализировать огромный поток информации в режиме реального времени. Нашими приоритетами являются качество и простота поддержки.
Первая версия Zabbix вышла в свет в 2001 году, в настоящее время разрабатывается командой профессионалов. Наш головной офис находится в Риге и существует дочерняя компания в Токио, Япония. Мы занимаемся разработкой и предоставлением коммерческих сервисов нашим клиентам: техническая поддержка различных уровней, обучение, разработка новой функциональности, решения под ключ и другое. Это то, как мы растём и развиваемся.

Zabbix 3.0: Интерфейс

Продолжаем серию мини-статей о нововведениях в Zabbix 3.0.
Одним их самых значимых и ожидаемых изменений в новой версии стал переработанный интерфейс. Мы преследовали цель сделать интерфейс более легким, убрать все нагромождающие элементы, но при этом не отпугнуть наших пользователей, привыкших к старому внешнему виду Zabbix.
Вообще возможно два подхода к решению этого вопроса: это радикальный редизайн или постепенное улучшение от релиза к релизу. И мы посчитали, что наилучший вариант — это нечто среднее, но с пониманием того, что хотят наши пользователи и как они используют Zabbix. Считаем, что такой подход позволит нам существенно улучшить качество визуальной части нашего продукта.

Функции агента

Zabbix агент поддерживает следующий список проверок по умолчанию.

Сеть
  • Переданные пакеты/байты
  • Ошибочные/отброшенные пакеты
  • Коллизии
CPU
  • Load average (усредненная загрузка)
  • Простой/использование CPU
  • Данные утилизации CPU по отдельным процессам
Память
  • Свободная/использованная память
  • Утилизация swap/файла подкачки
Диск
  • Свободное/занятое дисковое пространство
  • I/O чтения и записи
Служба
  • Состояние процесса
  • Использование памяти процессом
  • Состояние службы (ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap)
  • Состояние службы Windows
  • Разрешение DNS
  • Работоспособность TCP
  • Время ответа TCP
Файл
  • Размер/время файла
  • Существование файла
  • Контрольная сумма
  • MD5 хеш
  • Поиск по регулярному выражению
Журнал (лог)
  • Текстовый журнал
  • Журнал событий Windows
Другое
  • Время работы системы
  • Системное время
  • Подключенные пользователи
  • Счетчики производительности (Windows)

Смотрите полный список поддерживаемых проверок.

Добавление устройства на Zabbix-сервере

Чтобы убедиться в работоспособности агента, нужно добавить хост testnode2 на Zabbix сервер и назначить ему проверки (checks).

Заметка. В заббиксе есть 2 типа проверок:

  • Пассивные – Zabbix сервер запрашивает у агента какие-либо данные;
  • Активные – агент посылает на сервер данные;

При установке агента мы указывали сервер в формате IP:PORT как раз для активных проверок.

Добавление нового устройства для мониторинга в Zabbix выполняется через Web-интерфейс. Перейдите в раздел Configuration -> Hosts.

Нажмите Create host и заполните данные

Обратите внимание, что Host name хоста должен полностью совпадать с hostname машины или значением параметра Hostname в конфиге агента

Во вкладке Templates добавить несколько встроенных Windows шаблонов. Шаблоны в Zabbix это наборы значений, триггеров, графов и правил обнаружения, которые могут быть назначены одному или нескольким хостам.

Эти интегрированные шаблоны имеют постфикс “active”, значит, будут использоваться активные проверки.

Нажмите Add. Чтобы не ждать пока сервер и агент увидят друг друга (обычно занимает пару минут), перезагрузите службу Zabbix Agent на testnode2 и проверьте лог агента (C:\Program Files\Zabbix Agent\zabbix_agentd.txt).

Сообщение “started ” говорит о том, что на сервере найдены активные проверки для этого хоста. Теперь посмотрим на данные, которые пришли на сервер Zabbix от агента. Для этого в Zabbix перейдите на Monitoring -> Latest Data и выберете нужный вам хост в поле Hosts.

В этом разделе отображаются последние данные, которые пришли на сервер по выбранным хостам или группам хостов.

Обратите внимание на то, что в дашборде Zabbix висит уведомление о том, что служба BITS не запущена. Это уведомление появилось потому что мы назначили стандартные шаблоны нашему хосту

В одном из шаблонов был мониторинг сервиса BITS и соответствующий триггер, который срабатывает если служба BITS находится не в статусе Running.

На этом настройка Windows Agentа завершена.

Установка и настройка сервера Zabbix

Переходим к установке самого Zabbix сервера.

Установка

Сначала установим репозиторий последней версии Zabbix. Для этого переходим на страницу загрузки zabbix 5 для CentOS 8 и копируем ссылку на последнюю версию дистрибутива:

* в моем случае это ссылка на версию 5.0-1.

Устанавливаем репозиторий командой:

dnf install https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

Устанавливаем сервер, вводя команду:

dnf install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get

Настройка базы данных

Входим в оболочку ввода sql-команд:

mysql -uroot -p

Создаем базу данных:

> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;

* мы создали базу zabbix

Принципиально важно, чтобы кодировка была utf8 и utf8_bin

Создаем пользователя для подключения и работы с созданной базой:

> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbixpassword’;

* в данном примете мы создали пользователя zabbix с доступом к базе zabbix и паролем zabbixpassword.

Выходим из sql-оболочки:

> \q

В составе zabbix идет готовая схема для СУБД MySQL/MariaDB или postgreSQL. В нашем случае, нам нужен MySQL.

Для применения схемы переходим в каталог:

cd /usr/share/doc/zabbix-server-mysql

Распаковываем архив с дампом базы:

gunzip create.sql.gz

Восстанавливаем базу их дампа:

mysql -u root -p zabbix < create.sql

* после ввода команды система запросит пароль. Необходимо ввести пароль, который мы задали после установки mariadb.

Настройка zabbix

Открываем конфигурационный файл zabbix:

vi /etc/zabbix/zabbix_server.conf

Добавляем строку:

DBPassword=zabbixpassword

* мы настраиваем портал на подключение к базе с паролем zabbixpassword, который задали при создании базы для zabbix.

И проверяем следующие строки:


DBName=zabbix

DBUser=zabbix

* имя базы и пользователя должны быть zabbix (как мы и создали в mariadb).

Задаем владельца для каталога /etc/zabbix/web:

chown apache:apache /etc/zabbix/web

* в данном примере мы указали владельцем apache, так как именно от него по умолчанию работает php-fpm.

Разрешаем автозапуск сервера мониторинга и стартуем его:

systemctl enable zabbix-server —now

Настройка nginx

При установке zabbix-web файлы портала копируются в каталог /usr/share/zabbix. Наш веб-сервер работает с каталогом /usr/share/nginx/html.

Меняем это — открываем конфигурационный файл nginx:

vi /etc/nginx/nginx.conf

Редактируем параметры root и set $root_path:

    server {
        listen       80 default_server;
        …
        root         /usr/share/zabbix;
        location ~ \.php$ {
            set $root_path /usr/share/zabbix;
            …
        }

Перезапускаем nginx:

systemctl restart nginx

Установка портала для управления Zabbix

Установка через веб выполняется в несколько шагов.

2. В следующем окне внимательно смотрим на результаты проверки нашего веб-сервера — справа мы должны увидеть все OK:

Если это не так, проверяем настройки и исправляем предупреждения и ошибки, после перезапускаем страницу F5 для повторной проверки настроек.

Когда все результаты будут OK, кликаем по Next Step:

3. В следующем окне мы оставляем настройки подключения к базе как есть — дополнительно прописываем пароль, который задали при создании пользователя zabbix (в нашем примере, zabbixpassword). После нажимаем Next Step:

4. В следующем окне оставляем все как есть:

… и нажимаем Next Step.

5. В последнем окне мы проверяем настройки и кликаем Next Step.

6. Установка завершена — нажимаем Finish:

7. В открывшемся окне вводим логин Admin и пароль zabbix (по умолчанию) — откроется окно со сводной информацией по мониторингу:

Мониторим всё: расширение агентов Windows и Linux при помощи скриптов

Если нам нужно мониторить состояние серверов и прочих компьютеризированных рабочих мест при помощи Zabbix, то это можно сделать двумя способами.
Первый способ — это при помощи SNMP-запросов, с отправкой которых Zabbix замечательно справляется. Так можно вытащить и загрузку сетевых интерфейсов, и загрузку процессора, памяти. Поверх этого, производители сервера могут выдать нам по SNMP еще много информации о состоянии железа.
Второй заключается в использовании Zabbix агента, который мы будем запускать на наблюдаемой системе. Список наблюдаемых параметров включает в себя как и такие простые вещи, как загрузка процессора, использование памяти, так и более хитрые, такие как чтение текстовых лог-файлов с поддержкой ротации или отслеживание факта изменения любого файла. Можно даже в качестве параметра использовать вывод любой произвольной команды на системе. Возможности Zabbix агента растут от версии к версии.
Что делать, если того, что мы хотим контролировать через Zabbix нет в списке возможностей Zabbix агента? Ждать пока это имплементируют разработчики в следующем релизе? Не обязательно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *