Observium — одна из систем мониторинга, которую установил чтобы ознакомиться.
Установку производил на виртуальную машину Proxmox используя шаблон centos-7-x86_64-minimal скаченный отсюда.
Мне не пришлось, т.к. его просто не было. Идём далее …
Добавляем необходимые репозитории EPEL и rpmforge:
# yum install epel-release # rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Устанавливаем необходимые пакеты:
yum install wget httpd php php-mysql php-gd php-posix php-mcrypt php-pear php-pear.noarch vixie-cron net-snmp net-snmp-utils fping mariadb mariadb-server MySQL-python rrdtool subversion jwhois ipmitool graphviz ImageMagick yum -y install net-tools.x86_64 yum -y install bind-utils
Вместо mysql в Centos 7 — mariadb, которая имеет полную совместимость с mysql. Запускаем ее и прописываем в автозагрузку:
# systemctl start mariadb.service # systemctl enable mariadb.service ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
Запускаем скрипт настройки безопасности, везде YES жмём:
# /usr/bin/mysql_secure_installation
Файрволом я не заморачивался, кому надо — ставьте, настраивайте.
Устанавливаем Observium
cd /opt # wget http://www.observium.org/observium-community-latest.tar.gz # tar zxvf observium-community-latest.tar.gz
Переходим в папку с установкой:
# cd observium
Создаём базу данных и пользователя для системы мониторинга Observium:
# mysql -u root -p MariaDB [(none)]> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; MariaDB [(none)]> CREATE USER 'observium'@'localhost' IDENTIFIED BY '_password_'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY '_password_';
Создаем файл конфигураций нашего сервера мониторинга:
# cp config.php.default config.php
В конец файла добавляем строчку:
$config['fping'] = "/usr/sbin/fping";
В начале редактируем параметры подключения к mysql серверу:
// Database config $config['db_host'] = 'localhost'; $config['db_user'] = 'observium'; $config['db_pass'] = '_password_'; $config['db_name'] = 'observium';
Запускаем скрипт создания БД:
# php includes/update/update.php
Создаем директории для логов и RRD графиков:
# mkdir rrd # mkdir logs # chown -R apache:apache /opt/observium
Добавляем в самый конец /etc/httpd/conf/httpd.conf
DocumentRoot /opt/observium/html/ ServerName observium.domain.com CustomLog /opt/observium/logs/access_log combined ErrorLog /opt/observium/logs/error_log <Directory "/opt/observium/html/"> AllowOverride All Options FollowSymLinks MultiViews Require all granted
# systemctl start httpd # systemctl enable httpd
Создаем пользователя с правами администратора observium и паролем _PASS_:
# cd /opt/observium # ./adduser.php admin _PASS_
Создаем задания cron:
в /etc/crontab
Добавляем туда:
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1 */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1 */5 * * * * root /opt/observium/poller-wrapper.py 2 >> /dev/null 2>&1
# systemctl restart crond
На этом установка сервера мониторинга Observium закончена.
Заходим на страницу мониторинга по адресу http://IP-адрес/ Нас встречает экран приветствия. Логинимся созданной учетной записью администратора.
Observium осуществляет сбор данных по snmp и unix-agent. Используем snmp сервер.Используем самую простую и быструю конфигурацию. Открываем файл на Linux машине /etc/snmp/snmp.conf и приводим его к следующему виду:
rocommunity public syslocation "server" syscontact root@localhost
Запускаем и добавляем в автозагрузку snmpd (возможно потребуется инсталляция snmpd):
# systemctl start snmpd # systemctl enable snmpd
Проверим, все ли нормально запустилось:
# snmpwalk -v 2c -c public -O e 127.0.0.1
Теперь добавляем новое устройство в Observium через web интерфейс. Для этого выбираем Devices -> Add Device. Добавляем наш сервер:
если это машина на которой установлен Observium — пишем localhost, если какая либо другая — пишем доменное имя. Observium не понимает IP адреса, поэтому используем файл /etc/hosts
192.168.1.20 server
Опрос сервера можно произвести вручную в консоли:
# cd /opt/observium # ./discovery.php -h all # ./poller.php -h all
Observium определяет множество устройств «из коробки», полный список тут
У меня прекрасно определились Mikrotik (неиспользуемые порты выключаются в настройках), Proxmox (удобно видеть объём дисков виртуальных машин), устройства ubiquiti — камеры и радиомосты. Устройства netping прекрасно мониторятся, в Zabbix мне пришлось поковыряться, чтобы вывести нужные графики.
Добавленный Proxmox:
Добавленный Mikrotik:
К сожалению, у Observium есть и множество недостатков. Невозможность использовать активные агенты в случае нахождения устройств за NAT, нет trap. Невозможно скомпоновать интерфейс как удобно, нет никакой сортировки в главном окне. Карту Гугла невозможно на что то другое заменить. И самое большая неприятность, — аварии. Получать уведомления можно только в коммерческой версии. Т.е. Observium — система «для посмотреть». Отсутствие вменяемой документации. У Observium есть форк — LibreNMS, — не трате время на изучение, это полный клон без каких либо заметных отличий.