Ситема мониторинга Zabbix. Часть 1: Установка и настройка.

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

Основная информация доступна в виде базы знаний и её можно найти на официальном сайте проекта, здесь мне бы хотелось рассмотреть практические вопросы, связанные с конкретными дистрибутивами. Серверные компоненты Zabbix будут устанавливаться на FreeBSD 10.3. На момент написания данной заметки актуальной версией Zabbix была 3.0.2.

Содержание:

  1. Установка и настройка Zabbix-Server.
    1.1. Установка MySQL.
    1.2. Установка Apache.
    1.3. Установка PHP.
    1.4. Установка Zabbix.
    1.5. Настройка Zabbix-сервера для мониторинга IPMI.
    1.6. Настройка email-оповещений.
  2. Установка Zabbix-агента.

Конфигурация сети, DNS и hostname:

Конфигурация интерфейсов и имени хоста:

Если интефрейсу em0 требуется добавить дополнительный IP-адрес, то:

Перезапустить службы и обновить настройки сети можно командами:

1. Установка и настройка Zabbix-Server.

1.1. Установка MySQL.

В первую очередь необходимо установить порты, если они отсутствуют в системе:

или обновить порты, если они присутствуют в системе:

Далее нужно указать некоторые опции сбоки mysql55-server:

После чего переходим непосредственно к установке mysql55-server:

Теперь следует создать конфигурационный файл my.cnf. Шаблоны конфигов для mysql55-server лежат в /usr/local/share/mysql:

Для более новых версий MySQL шаблоны конфигов могут остутствовать. Для примера копируем large-конфиг:

В случае ошибок смотрите лог /var/db/mysql/hostname.err,
где hostname — имя хоста.

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №1

Запускаем скрипт настройки MySQL сервера:

Зададим пароль для root и далее на все вопросы можно отвечать утвердительно. Логинимся под пользователем root, создаем пользователя zabbix, создаем одноименную пустую базу данных и выдаем нужные права:

где: password — пароль для пользователя zabbix

Если для отладки требуется логиниться удаленно под учетной записью root, то:

Но оставлять так крайне нежелательно, поэтому по завершению отладки:

1.2. Установка Apache.

У меня при установке ругнулось на устаревшие и отсутствующие пакеты, поэтому вначале переставим пакеты glib20 и nettle:

Теперь устанавливаем сам Apache:

Добавляем Apache в автозагрузку и запускаем службу:

Если все завершилось удачно, то введя в адресной строке браузера IP-адрес хоста, где установлен Apache, получим сообщение “It works!”.

1.3. Установка PHP.

Установим PHP с необходимыми модулями. Процесс сборки из исходников может оказаться слишком утомительным, поэтому я ставлю из готовых пакетов c помощью package manager’а, который, если вы еще не установили, собирается из port’ов:

Далее ставим php:

И на всякий случай выставляем права:

Приступаем к конфигурированию. Далее нужно найти и раскоментировать две строчки в конфиге apache:

Теперь дополним строчку в том же httpd.conf:

Находим секцию LoadModule и добавляем в конце блока:

сразу после строки “AddType application/x-gzip .gz .tgz” добавим:

и в конце файла допишем:

Создаем конфигурацию php из шаблона и открываем ее на редактирование:

где:
magic_quotes_gpc
— отключает “экранирование” кавычек;
upload_max_filesize — выставляет лимит для одного загружаемого на сервер файла;
post_max_size — лимит для всех загружаемых на сервер файлов;
max_execution_time — лимит времени в секундах на выполнение скрипта (при его превышении сервер вернет ошибку, тогда как при значении параметра 0 время не ограничивается).

Переходим в директорию расположения веб-скриптов, переименовываем файл и добавляем в него код для отображения версии и других параметров интерпретатора PHP:

Перезапустив Apache введя в браузере IP-адрес веб сервера увидим информацию о PHP, что говорит о его работоспособности:

Здесь следует обратить внимание на включенную поддержку MySQL — если все настроено правильно, то статус обоих строчек будет “Enabled”:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №2

1.4. Установка Zabbix.

Установим серверную часть Zabbix из “портов” (на момент написания актуальной версией была 3.0.2): перейдем в папку с портом zabbix3-server и установим его:

При конфигурации можно будет выбрать поддерживаемые опции. Лично я выбрал почти все (хоть это и увеличивает время сборки): поддерживаемую базу — MySQL, все остальное — оставил по умолчанию. Единственное, что не рекомендую выбирать для openipmi2.0.21_1 — это IPMI 2.0 RMCP+ encryption and authentication, вызывающий ошибку при компиляции (подробности здесь). В данном случае можно обойтись уже готовым пакетом openipmi:

Импортируем базу данных MySQL:

Проверить результат можно так:

Последняя команда выводит список таблиц базы. Теперь нужно добавить данные для подключения к БД в конфиге zabbix-сервера. Копируем шаблон конфигурации:

и открываем на редактирование:

Проверяем расположение fping, необходимый для работы Template ICMP Ping:

и добавляем пути в конфиги:

Добавляем zabbix-сервер в автозагрузку и запускаем:

Проверяем запустился ли:

Теперь необходимо установить frontend zabbix-сервера:

Лично я все настройки оставил по умолчанию (галочка на MYSQL И MYSQLI установлена, на остальных — снята). Устанавливаем:

По завершении добавим путь к zabbix-frontend в файл виртуальных сайтов Apache:

выставляем права для пользователя, под которым запущен Apache (как правило, это www):

и на всякий случай, чтобы перечитались все конфиги, перезапускаем Apache:

Теперь сможем заходить в веб интерфейс Zabbix по адресу: http://IP адрес/zabbix. Заходим и продолжаем конфигурирование Zabbix:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №3

Жмем “Next” и далее производится проверка параметров, где я получил сообщение:

Возвращаемся к конфигу php и меняем параметры:

перезапускаем Apache и обновляем страницу:

Жмем “Next” и настраиваем доступ к БД:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №4

Далее все настраивается по принципу “Next-Next-Next-Ok”, как на скриншотах:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №5

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №6

По окончанию настройки:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №7

Теперь можно произвести первый логин через веб-интерефс Zabbix. Для входа необходимо использовать логин Admin (с большой буквы), пароль — zabbix.

1.5. Настройка Zabbix-сервера для мониторинга IPMI.

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

и изменить строку:

на ненулевое значение (1–1000), указав количество запущенных инстанций (forks) для сбора IPMI.

Обязательно в системе должен быть установлен пакет openipmi. Поидее, он ставится вместе с установкой Zabbix-сервера, но на всякий случай проверим его наличие в системе:

Если не найден, то устанавливаем:

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

1.6. Настройка оповещений по email.

Zabbix умеет отправлять уведомления на email, что называется, “из коробки”. Однако в некоторых дистрибутивах отправлять уведомления штатными средствами не удается. Для FreeBSD можно использовать ssmtp + внешний скрипт. В первую очередь необходимо установить ssmtp:

Создаем конфигурацию из шаблона:

В моем примере в качестве релея будет использоваться gmail, поэтому настройки будут следующими:

Отправляем тестовое сообщение:

Если сообщение было доставлено, то переходим к созданию bash-скрипта, с помощью которого Zabbix будет отправлять оповещения на email. Скрипты выполняются на стороне Zabbix-сервера и размещаются в папке, указанной в файле конфигурации Zabbix-сервера в переменной AlertScriptsPath. По-умолчанию для FreeBSD, скорей всего, /usr/local/etc/zabbix3/zabbix/alertscripts/, но лучше убедиться:

Во избежании путанницы (если Zabbix скомпилировался с другим параметром datadir), лучше указать пути к скриптам в явном виде:

Раскоментируем эту строчку в конфиге и создадим скрипт:

Переходим к настройке оповещений в web-инерфейсе Zabbix. В остальном настройка оповещения через скрипт схожа с штатным способом оповещения “Email”, разве что только не нужно добавлять переменные:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №8

Убедимся что действие “Report problems to Zabbix administrators” активировано и далее:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №9

Теперь созданное оповещение нужно добавить к какому-либо из пользователей. Открываем:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №10

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

Доставка сообщений штатными средствами так же не работает в Ubuntu (не исключено, что и в Debian). Так, например, в Zabbix Appliance 3.0.1 придется удалить sendmail и воспользоваться связкой “mailutils + скрипт”. В первую очередь убедимся, не установлен ли sendmail:

Если установлен, то удаляем:

и заменяем его, создав символическую ссылку:

Теперь установим mailutils и отправим тестовое сообщение:

Если сообщение было доставлено, то переходим к созданию bash-скрипта. Смотрим, где располагаются скрипты:

Значит cоздаем bash-скрипт (аналогичный как и для FreeBSD) в /usr/lib/zabbix/alertscripts и разрешаем его автозапуск:

После чего можно переходить к настройке оповещений в web-инерфейсе Zabbix, по аналогии, как было расписано чуть выше.

2. Установка Zabbix-агента.

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

FreeBSD:
Как минимум, мы будем мониторить систему, на которой установлен Zabbix сервер. Для FreeBSD установка будет выглядеть следующим образом:

Копируем шаблон конфига zabbix-агента и редактируем его (или сверяем настройки):

Запускаем агент и добавляем его в автозагрузку:

Проверяем, запустился ли:

Заходим в веб-интерфейс, выбираем “Настройка -Узлы сети”, выбираем подгруппу “Zabbix server” и активируем дефолтный уже созданный узел Zabbix-сервера. Если все настроено правильно, через некоторое время пикограмма “ZBX” станет зеленого цвета, как на скриншоте:

Ситема мониторинга Zabbix. Часть 1: Установка и настройка., изображение №11

Zabbix-сервер устанавливался на FreeBSD, поэтому зайдем в свойства узла Zabbix server и поменяем Template OS Linux на Template OS FreeBSD.

Debian:
Если говорить о других linux-дистрибутивах, то на примере Debian 8.x:

Далее все по аналогии — открываем конфиг, где указываем:

Все остальное можно оставить поумолчанию. Перезапускаем службу и добавляем правило для iptables:

Далее сохраняем правила iptables, в зависимости, где у вас расположен конфиг: по умолчанию для Debian 8.x:

Перезагружаем службу и проверяем правила:

Windows:
Для операционных систем Windows в первую очередь необходимо скачать с сайта архив с pre-compiled agent соответствующей версии. Внутри архива в папке bin располагаются две версии для разной разрядности операционных систем, а в папке conf — дефолтный конфиг агента. Содержимое папки bin, в соответствии с разрядностью вашей операционной системы и конфиг-файл необходимо скопировать в одну папку, например, в С:\Zabbix\. Теперь открываем комнадную строку с правами администратора, устанавливаем zabbix-агент, как службу:

и запускаем службу Zabbix-агента:

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

Необходимо так же разрешить соединения для порта 10050 и после добавления Windows-узла через веб-интерефейс Zabbix-сервера добавить Template OS Windows.

По желанию можно так же установить несколько инстанций zabbix-агента с различными конфиг-файлами — подробности здесь.


Источник: vk.com