Observium — это платформа мониторинга и управления сетью, которая предоставляет информацию о состоянии и производительности сети в режиме реального времени по проктоколу SNMP. Она может автоматически обнаруживать сетевые устройства и службы, вести сбор метрик производительности и отправлять оповещения при обнаружении проблем.
Observium поддерживает широкий спектр типов устройств, платформ и операционных систем, включая Cisco, Windows, Linux, HP, Juniper, Dell, FreeBSD, Brocade, Netscaler, NetApp и многие другие.
Существует три версии: Enterprise, Professional и Community. Observium Community распространяется в виде 6-месячных выпусков в формате .tar.gz под эгидой Лицензии QPL с открытым исходным кодом. Рассматривать для установки будем именно ее - она бесплатная.
Официальный сайт проекта: https://www.observium.org/
Существует два способа установки: автоматический, с помощью скрипта и ручной. Рассмотрим оба варианта.
Она подходит для большинства случаев, когда для Observium выделен отдельный чистый сервер и задействованые службы не будут конфиликтовать с другими сервисами.
Observium имеет скрипт автоматической установки для Ubuntu и Debian.
Использовать скрипт автоматической установки так же просто, как скачать его. Нужно просто запустить и ответить на несколько простых вопросов.
Для загрузки скрипта понадобится wget. Установите его, если он еще не установлен.
apt install wget
Теперь загрузим скрипт и запустим его.
wget http://www.observium.org/observium_installscript.sh
chmod +x observium_installscript.sh
sudo ./observium_installscript.sh
Нам будет предложено выбрать версию (выбираем Community) и установка начнется. Во время установки нам так же будет предложено установить пароль для базы MySQL а так же создать пользователя. Ничего сложного - просто внимательно читаем вопросы. После успешной установки сервис будет готов к использованию.
Для Debian 12 потребуется устанавливть PHP 8.2, MySQL, Apache.
apt install libapache2-mod-php8.2 php8.2-cli php8.2-mysql php8.2-gd php8.2-bcmath php8.2-mbstring \
php8.2-opcache php8.2-apcu php8.2-curl php-json php-pear snmp fping mariadb-server \
mariadb-client python3-mysqldb python-is-python3 python3-pymysql rrdtool subversion whois mtr-tiny \
ipmitool graphviz imagemagick apache2
Если вы хотите иметь возможность отслеживать виртуальные машины libvirt, установите libvirt-clients в debian (будьте осторожны: это потребует установки зависимостей, которые в противном случае, вероятно, не понадобятся на вашем сервере):
apt install libvirt-clients
Создайте каталог для Observium:
mkdir -p /opt/observium && cd /opt
mkdir rrd
chown www-data:www-data rrd
Скачайте последнюю версию Observium и распакуйте:
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
Для продолжения настройки перейдем в каталог с приложением:
cd observium
Подключимся к СУБД и создадим базу и пользователя для Observium.
mysql -u root -p
<mysql root password>
mysql> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY '<db password>';
Скопируйте файл конфигурации по умолчанию и отредактируйте его для вашей системы c теми данными, что указывали выше:
cp config.php.default config.php
Теперь экспортируйте схему БД по умолчанию запустив скрипт:
./discovery.php -u
Со слов разработчика : «В результате экспорта могут быть ошибки - это нормально».
Создадим директорию, в которой Observium будет хранить свои логи:
mkdir logs
mkdir rrd
chown www-data:www-data rrd
Для того что бы у нас был доступ к системе нам необходимо настроить наш веб-север. Для этого отредактируем файл:
nano /etc/apache2/sites-available/000-default.conf
Настройки:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/observium/html
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>
Включите модуль php mcrypt, если он установлен (игнорируйте этот пункт, если он не установлен):
sudo phpenmod mcrypt
Применим дополнительные настройки для Apache для нашего дистрибутива.
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
sudo a2enmod php7.0
Включите для URL-адресов Observium:mod_rewrite
sudo a2enmod rewrite
sudo apache2ctl restart
Добавьте первого пользователя, используйте уровень 10 для администратора:
./adduser.php <username> <password> <level>
Добавьте первое устройство для мониторинга:
./add_device.php <hostname> <community> v2c
Выполните первоначальное обнаружение и опрос для заполнения данных для нового устройства:
./discovery.php -h all
./poller.php -h all
Для того что бы сервис производил опрос устройств по расписанию, необходимо добавить для него задачи в Cron
nano /etc/cron.d/observium
# Run a complete discovery of all devices once every 6 hours
33 */6 * * * root /opt/observium/observium-wrapper discovery >> /dev/null 2>&1
# Run automated discovery of newly added devices every 5 minutes
*/5 * * * * root /opt/observium/observium-wrapper discovery --host new >> /dev/null 2>&1
# Run multithreaded poller wrapper every 5 minutes
*/5 * * * * root /opt/observium/observium-wrapper poller >> /dev/null 2>&1
# Run housekeeping script daily for syslog, eventlog and alert log
13 5 * * * root /opt/observium/housekeeping.php -ysel >> /dev/null 2>&1
# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4 * * * root /opt/observium/housekeeping.php -yrptb >> /dev/null 2>&1