Ситема мониторинга Zabbix. Часть 1: Установка и настройка.
Zabbix — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым.
Основная информация доступна в виде базы знаний и её можно найти на официальном сайте проекта, здесь мне бы хотелось рассмотреть практические вопросы, связанные с конкретными дистрибутивами. Серверные компоненты Zabbix будут устанавливаться на FreeBSD 10.3. На момент написания данной заметки актуальной версией Zabbix была 3.0.2.
Содержание:
- Установка и настройка Zabbix-Server.
1.1. Установка MySQL.
1.2. Установка Apache.
1.3. Установка PHP.
1.4. Установка Zabbix.
1.5. Настройка Zabbix-сервера для мониторинга IPMI.
1.6. Настройка email-оповещений. - Установка 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 — имя хоста.
Запускаем скрипт настройки 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”:
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:
Жмем “Next” и далее производится проверка параметров, где я получил сообщение:
Возвращаемся к конфигу php и меняем параметры:
перезапускаем Apache и обновляем страницу:
Жмем “Next” и настраиваем доступ к БД:
Далее все настраивается по принципу “Next-Next-Next-Ok”, как на скриншотах:
По окончанию настройки:
Теперь можно произвести первый логин через веб-интерефс 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”, разве что только не нужно добавлять переменные:
Убедимся что действие “Report problems to Zabbix administrators” активировано и далее:
Теперь созданное оповещение нужно добавить к какому-либо из пользователей. Открываем:
Таким образом, для каждого пользователя можно задать свой способ оповещения и настроить расписание в соответствии с важностью события. Например, отправлять оповещения всех событий только в дневное время с понедельника по пятницу, а в ночное время и в выходные — отправлять оповещения только важных и черезвычайно важных событий.
Доставка сообщений штатными средствами так же не работает в 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-сервер устанавливался на 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-агента с различными конфиг-файлами — подробности здесь.
Источник: