Observium – одна из систем мониторинга, которую установил чтобы ознакомиться.
Установку производил на виртуальную машину Proxmox используя шаблон centos-7-x86_64-minimal скаченный отсюда.
Мне не пришлось, т.к. его просто не было. Идём далее …
Добавляем необходимые репозитории EPEL и rpmforge:
1 2 3 4 |
# 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 |
Устанавливаем необходимые пакеты:
1 2 3 |
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. Запускаем ее и прописываем в автозагрузку:
1 2 3 |
# 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 жмём:
1 |
# /usr/bin/mysql_secure_installation |
Файрволом я не заморачивался, кому надо – ставьте, настраивайте.
Устанавливаем Observium
1 2 3 4 |
cd /opt # wget http://www.observium.org/observium-community-latest.tar.gz # tar zxvf observium-community-latest.tar.gz |
Переходим в папку с установкой:
1 |
# cd observium |
Создаём базу данных и пользователя для системы мониторинга Observium:
1 2 3 4 |
# 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_'; |
Создаем файл конфигураций нашего сервера мониторинга:
1 |
# cp config.php.default config.php |
В конец файла добавляем строчку:
1 |
$config['fping'] = "/usr/sbin/fping"; |
В начале редактируем параметры подключения к mysql серверу:
1 2 3 4 5 |
// Database config $config['db_host'] = 'localhost'; $config['db_user'] = 'observium'; $config['db_pass'] = '_password_'; $config['db_name'] = 'observium'; |
Запускаем скрипт создания БД:
1 |
# php includes/update/update.php |
Создаем директории для логов и RRD графиков:
1 2 3 |
# mkdir rrd # mkdir logs # chown -R apache:apache /opt/observium |
Добавляем в самый конец /etc/httpd/conf/httpd.conf
1 2 3 4 5 6 7 8 |
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 |
1 2 |
# systemctl start httpd # systemctl enable httpd |
Создаем пользователя с правами администратора observium и паролем _PASS_:
1 2 |
# cd /opt/observium # ./adduser.php admin _PASS_ |
Создаем задания cron:
в /etc/crontab
Добавляем туда:
1 2 3 |
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 |
1 |
# systemctl restart crond |
На этом установка сервера мониторинга Observium закончена.
Заходим на страницу мониторинга по адресу http://IP-адрес/ Нас встречает экран приветствия. Логинимся созданной учетной записью администратора.
Observium осуществляет сбор данных по snmp и unix-agent. Используем snmp сервер.Используем самую простую и быструю конфигурацию. Открываем файл на Linux машине /etc/snmp/snmp.conf и приводим его к следующему виду:
1 2 3 |
rocommunity public syslocation "server" syscontact root@localhost |
Запускаем и добавляем в автозагрузку snmpd (возможно потребуется инсталляция snmpd):
1 2 |
# systemctl start snmpd # systemctl enable snmpd |
Проверим, все ли нормально запустилось:
1 |
# snmpwalk -v 2c -c public -O e 127.0.0.1 |
Теперь добавляем новое устройство в Observium через web интерфейс. Для этого выбираем Devices -> Add Device. Добавляем наш сервер:
если это машина на которой установлен Observium – пишем localhost, если какая либо другая – пишем доменное имя. Observium не понимает IP адреса, поэтому используем файл /etc/hosts
1 |
192.168.1.20 server |
Опрос сервера можно произвести вручную в консоли:
1 2 3 |
# 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, – не трате время на изучение, это полный клон без каких либо заметных отличий.