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

Не так давно мне на глаза попалась довольно любопытная система мониторинга - Observium. Я решил ее установить и настроить, чтобы посмотреть на нее поближе. Привлекла она меня простотой установки и настройки. До этого я использовал Zabbix. В принципе, тоже ничего сложного в настройке нет, но Observium все же установить и настроить существенно проще. И сейчас я подробно расскажу как это сделать.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Моя инструкция будет основываться на оригинальном руководстве с сайта разработчиков. Но не во всем. Во-первых, я переведу все пункты. Во-вторых, кое-где будут небольшие изменения и комментарии, связанные с тем, что мы будем устанавливать Observium на CentOS 7-й версии. В-третьих, я на примерах покажу как добавлять устройства для мониторинга в систему. Если у вас нет настроенной системы CentOS, то можете настроить по моей статье на эту тему.

Подготовка CentOS 7 к установке Observium

Итак, у нас имеется:

# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)

Первым делом отключим 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

В centos 7 вместо mysql устанавливается mariadb, которая имеет полную совместимость с mysql, в том числе понимает все ее команды. Но тем не менее, служба называется mariadb. Запускаем ее и прописываем в автозагрузку:

# 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'

Запускаем скрипт настройки безопасности:

# /usr/bin/mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: команда не найдена

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Отключаем фаервол, либо настраиваем его отдельно. Я не хочу каcаться настройки фаервола в рамках этой статьи:

# systemctl stop firewalld && systemctl disable firewalld

Устанавливаем Observium

По-умолчанию, Observium ставится в папку /opt. Переходим туда

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 '12345678';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY '12345678';

Создаем файл конфигураций нашего сервера мониторинга:

# 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'] = '12345678';
$config['db_name'] = 'observium';

Запускаем скрипт создания БД:

# php includes/update/update.php

Создаем директории для логов и RRD графиков:

# mkdir rrd
# mkdir logs
# chown -R apache:apache /opt/observium

Теперь редактируем файл настроек httpd. Добавляем в самый конец /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
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
</Directory>
</VirtualHost>

Запускаем httpd и добавляем его в автозагрузку:

# systemctl start httpd
# systemctl enable httpd

Создаем пользователя с правами администратора observium:

# cd /opt/observium
# ./adduser.php admin 12345678 10
Observium CE 0.14.11.6000
Add User

User admin added successfully.

Создаем файл заданий мониторинга cron:

# touch /etc/cron.d/observium

Добавляем туда:

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

Перезапускаем crond:

# systemctl restart crond

На этом установка сервера мониторинга Observium закончена. Можно переходить к настройке и добавлению узлов.

Настраиваем Observium и добавляем узлы мониторинга

Заходим на страницу мониторинга по адресу http://IP-адрес/ Нас встречает экран приветствия. Логинимся созданной учетной записью администратора.

Observium установка и настройкаДобавим в систему локальный сервер, на котором установлен наш мониторинг. Observium осуществляет сбор данных по snmp. Так что сконфигурируем snmp сервер. У него много настроек, я для примера буду использовать самую простую и быструю конфигурацию. Итак, открываем файл /etc/snmp/snmp.conf и приводим его к следующему виду:

rocommunity  public
syslocation  "local-server"
syscontact  root@localhost

Запускаем и добавляем в автозагрузку snmpd:

# systemctl start snmpd
# systemctl enable snmpd

Проверим, все ли нормально запустилось:

# snmpwalk -v 2c -c public -O e 127.0.0.1

Должно вывести кучу строк с информацией.

Теперь добавляем новое устройство в Observium через web интерфейс. Для этого выбираем Devices -> Add Device. Добавляем наш сервер:
Observium установка и настройка
Теперь в списке устройств будет локальный сервер. Можно либо подождать, пока по крону будет произведен опрос сервера, либо сделать это вручную в консоли:

# cd /opt/observium
# ./discovery.php -h all
# ./poller.php -h all

Информация с сервера собрана, можно проверять через web интерфейс. Графики пока будут пустыми, но со временем заполнятся. Таким образом можно добавлять любые поддерживаемые устройства, не забывая включать и настраивать на них snmp. Список поддерживаемых устройств есть тут

На этом установка и настройка закончены, пользуйтесь удобной и информативной системой мониторинга Observium.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

5 комментариев

  1. Евгений

    Хм... ВОПРОС. А как удалить теперь Observium?
    День добрый.
    Учусь. Поставил. Теперь хочу zabbix, так как у Observium отправка сообщений только в платной версии...

  2. Скрипт создания БД: php includes/update/update.php в Observium CE 0.16.10.8128 не отрабатывает.
    Решение такое: ./discovery.php -u

  3. Добрый день
    подскажите как заставить observium собирать syslog'и
    делаю все по инструкции на сайте - ставлю на удбунту сервер 14.0.4. машины добавляются, графики рисуются, но когда включаю сислог инфа туда не добавляется. явно дело в правах на какую-то из папок но вот какую не понимаю
    syslog включаю как показано на сайе http://docs.observium.org/syslog/
    делаю настройку для rsyslog 7.4.4
    система упорно пишет что что то неправильно настроено

    • Не смогу тут помочь. С тех пор, как написал статью, использовал observium только в одном месте и сейчас полностью от него отказался в пользу zabbix. Пользуюсь только им.

      • разобрался. оказылось вот что
        во первых ему нравится использовать полные FQDN названия устройств
        в файл /etc/rsyslog.d/50-default.conf для локал хоста добавил запись *.* @my_ip_host:514
        на cisco прописал следующие настройки логирования:
        logging trap
        logging facility local7
        logging my_observium_ip

        после этого стало все ок

        чем вам забикс больше нравится?

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar