Не так давно мне на глаза попалась довольно любопытная система мониторинга - Observium. Я решил ее установить и настроить, чтобы посмотреть на нее поближе. Привлекла она меня простотой установки и настройки. До этого я использовал Zabbix. В принципе, тоже ничего сложного в настройке нет, но Observium все же установить и настроить существенно проще. И сейчас я подробно расскажу как это сделать.
Научиться настраивать 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 осуществляет сбор данных по 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. Добавляем наш сервер:
Теперь в списке устройств будет локальный сервер. Можно либо подождать, пока по крону будет произведен опрос сервера, либо сделать это вручную в консоли:
# cd /opt/observium # ./discovery.php -h all # ./poller.php -h all
Информация с сервера собрана, можно проверять через web интерфейс. Графики пока будут пустыми, но со временем заполнятся. Таким образом можно добавлять любые поддерживаемые устройства, не забывая включать и настраивать на них snmp. Список поддерживаемых устройств есть тут
На этом установка и настройка закончены, пользуйтесь удобной и информативной системой мониторинга Observium.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Хм... ВОПРОС. А как удалить теперь Observium?
День добрый.
Учусь. Поставил. Теперь хочу zabbix, так как у Observium отправка сообщений только в платной версии...
Скрипт создания БД: php includes/update/update.php в Observium CE 0.16.10.8128 не отрабатывает.
Решение такое: ./discovery.php -u
Добрый день
подскажите как заставить 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
после этого стало все ок
чем вам забикс больше нравится?