Observium установка и настройка

Автор: | 07.07.2016

Observium — одна из систем мониторинга, которую установил чтобы ознакомиться.

Установку производил на виртуальную машину Proxmox используя шаблон centos-7-x86_64-minimal скаченный отсюда.

Рекомендуется отключить первым делом Selinux
# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

Меняем значение:

SELINUX=disabled

Перезагружаемся:

# reboot

Мне не пришлось, т.к. его просто не было. Идём далее …

Добавляем необходимые репозитории 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 мне пришлось поковыряться, чтобы вывести нужные графики.

observium_1

 

Добавленный Proxmox:

observium_2

Добавленный Mikrotik:

observium_3

К сожалению, у Observium есть и множество недостатков. Невозможность использовать активные агенты в случае нахождения устройств за NAT, нет trap. Невозможно скомпоновать интерфейс как удобно, нет никакой сортировки в главном окне. Карту Гугла невозможно на что то другое заменить. И самое большая неприятность, — аварии. Получать уведомления можно только в коммерческой версии. Т.е. Observium — система «для посмотреть». Отсутствие вменяемой документации. У Observium есть форк — LibreNMS, — не трате время на изучение, это полный клон без каких либо заметных отличий.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.