Мониторинг с помощью Zabbix: установка Zabbix (FreeBSD)

Опубликовано:

Как и многие коллеги-администраторы, долгое время я пользовался для мониторинга всего и вся  чем-то самописным. В последнее время стало изрядно лениво лазить по конфигурационным файлам, чтоб добавить хост, сервис и т.п., а потом еще и проверять в веб-интерфейсе, все ли видно хорошо. Захотелось некой удобной софтины для мониторинга, с конфигурацией в БД, удобным веб-интерфейсом. В результате был выбран Zabbix и честно говоря, вполне себя оправдывает, разве что требователен к ресурсам.

Приступим:

# cd /usr/ports/net-mgmt/zabbix-server
# make install
┌────────────────────────────────────────────────────────────────────┐
 │                Options for zabbix-server 1.8.1,2                   │
 │ ┌────────────────────────────────────────────────────────────────┐ │
 │ │         [X] MYSQL   Use MySQL backend                          │ │
 │ │         [ ] PGSQL   Use PostgreSQL backend                     │ │
 │ │         [ ] SQLITE  Use SQLite backend                         │ │
 │ │         [ ] IPV6    Support for IPv6                           │ │
 │ │         [ ] LDAP    Support for checking LDAP servers          │ │
 │ │         [X] JABBER  Use jabber media type                      │ │
 │ │         [X] FPING   Use fping for pinging hosts                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 ├─└────────────────────────────────────────────────────────────────┘─┤
 │                       [  OK  ]       Cancel                        │
 └────────────────────────────────────────────────────────────────────┘

Пока он ставится, немного расскажу о идеологии софтины. Состоит она из нескольких частей: сервера, агента, фронтенда. Сервер умеет опрашивать агентов или сами объекты мониторинга (в случае с последними поддерживаются протоколы SNMP и IPMI). Агент ставится на объект мониторинга (версии агента есть для широкого перечня операционных систем, включая винды) и шлет данные на сервер, также умеет выполнять на объекте заданные команды, фронтенд стоит на веб-сервере и показывает весь процесс. К базе данных обращаются сервер и фронтенд, агентам она не нужна. Создаем ее (исходим из того, что MySQL у нас на том же хосте, где zabbix-сервер):

# mysql
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword';
GRANT USAGE ON * . * TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `zabbix` ;
GRANT ALL PRIVILEGES ON `zabbix` . * TO 'zabbix'@'localhost';
quit;
# cd /usr/local/share/zabbix/server/create
# cat schema/mysql.sql data/data.sql data/images_mysql.sql | mysql -uzabbix -pzabbixpassword zabbix
# echo zabbix_server_enable="YES" >> /etc/rc.conf
# cp /usr/local/etc/zabbix/zabbix_server.conf.sample /usr/local/etc/zabbix/zabbix_server.conf
# ee /usr/local/etc/zabbix/zabbix_server.conf

Настройки по умолчанию достаточно разумны, потому файл /usr/local/etc/zabbix/zabbix_server.conf небольшой, для справки потом можно будет заглянуть в дефолтный файл:

# Исходящий IP, с него будут осуществляться соединения с агентами и объектами мониторинга
SourceIP=192.168.1.10

# Лог-файл
LogFile=/var/log/zabbix_server.log

# Размер лог-файла, в мегабайтах, 0 отключает ротацию лога
LogFileSize=10

# Уровень дебага, 0 - отключить, 1 - критические ошибки, 2 - ошибки, 3 - предупреждения, 4 - дебаг
DebugLevel=3

# Хост БД
DBHost=localhost

# Название БД
DBName=zabbix

# Пользователь БД
DBUser=zabbix

# Пароль БД
DBPassword=zabbixpassword

# Путь к Mysql-сокету
DBSocket=/tmp/mysql.sock
# Порт SQL-сервера, если используем сокет - не надо
# DBPort=3306

Если заббикс стоит, как в моем случае, в джейле, то на хост-машине надо в /etc/sysctl.conf добавить:

security.jail.sysvipc_allowed=1
kern.ipc.shmall=2097152
kern.ipc.shmmax=2147483648

На этом все, сервер можно запускать:

# touch /var/log/zabbix_server.log
# chown zabbix:zabbix /var/log/zabbix_server.log
# /usr/local/etc/rc.d/zabbix_server start

Теперь займемся фронтендом.

# cd /usr/ports/math/php5-bcmath
# make install
# cd /usr/ports/net-mgmt/zabbix-server/work/zabbix-1.8.1/frontends/php
# cp -R * /usr/local/www/vhosts/zabbix.jared.kiev.ua
# cd /usr/local/www/vhosts/zabbix.jared.kiev.ua/conf/
# cp zabbix.conf.php.example zabbix.conf.php
# ee zabbix.conf.php

Тут вписываем параметры доступа к БД и прочее:

<?php
global $DB;

$DB["TYPE"]             = "MYSQL";
$DB["SERVER"]           = "localhost";
$DB["PORT"]             = "0";
$DB["DATABASE"]         = "zabbix";
$DB["USER"]             = "zabbix";
$DB["PASSWORD"]         = "zabbixpassword";
$ZBX_SERVER             = "localhost";
$ZBX_SERVER_PORT        = "10051";
$ZBX_SERVER_NAME        = "";
$IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;
?>

Все, теперь можно смело заходить в фронтенд с логином Admin и паролем zabbix и заниматься дальнейшей настройкой системы.

Понравилась статья, расскажи о ней друзьям, нажми кнопку!