Система мониторинга Observium

Система мониторинга Observium.

Содержание

1 Общая информация

  • Сайт: https://www.observium.org/.
  • Хорош тем, что практически не требует настройки. Работает из коробки.
  • Observium доступен в двух версиях:
    • бесплатная Community (выпускается раз в 6 месяцев);
    • платная Professional;
    • платная Enterprise.
  • Observium Community годится только для сервисов не критичных к времени реакции, так как устройства по SNMP опрашиваются раз в 5 минут.
  • В платной версии предусмотрен модуль Alarms.
  • Опрос устройств осуществляется по протоколу SNMP.
  • Наилучшим образом подходит для мониторинга коммутационного оборудования.

2 Подключение устройств

  • Для добавления маршрутизатора Cisco достаточно задать SNMP community:
    1snmp-server community public RO
    
  • Добавление устройств в Observium осуществляется либо через меню веб интерфейса (Devices->Add device), либо из командной строки сервера (из каталога Observium):
    1./add_device.php hostname
    

3 Принципы работы

  • Сбор статистики поделен на 2 основных процесса:
    • discovery: выполняется основное обнаружение поддерживаемых на данном устройстве датчиков;
    • poller: опрос устройств каждые 5 минут.
  • В версии для подписчиков есть ещё 2 дополнительных процесса, работающих совместно с процессом poller:
    • bill: подсчёт биллинговой информации на отдельных портах для пользователей;
    • alert: генерация уведомлений по собираемым системой параметрам.

4 Установка Observium

  • Создаем директории, в которых будут располагаться файлы Observium:
    1sudo mkdir -p /opt/observium
    
  • Скачаем версию Community Edition:
    1cd /opt
    2wget http://www.observium.org/observium-community-latest.tar.gz
    3tar zxvf observium-community-latest.tar.gz
    
  • Переходим в папку с конфигурационными файлами и создаем конфигурационный файл, скопировав файл по умолчанию:
    1cd /optobservium
    2sudo cp config.php.default config.php
    
  • Открываем файл config.php и редактируем настройки MySQL: username, password, dbname.
  • Подключаемся к MySQL:
    1mysql -u root -p
    
  • Создаём базу данных с именем observium:
    1CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    
  • Даём полные привилегии пользователю observium на одноименную базу данных:
    1GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'IDENTIFIED BY 'PASSWORD';
    
  • Выполняем скрипт конфигурации ранее созданной базы данных MySQL:
    1/opt/observium/discovery.php -u
    
  • Создаем дополнительные служебные каталоги:
    1mkdir /opt/observium/logs
    2mkdir /opt/observium/rrd
    
  • Создайте файл /etc/httpd/conf.d/observium.conf:
     1<VirtualHost *>
     2   DocumentRoot /opt/observium/html/
     3   ServerName  observium.domain.com
     4   CustomLog /opt/observium/logs/access_log combined
     5   ErrorLog /opt/observium/logs/error_log
     6   <Directory "/opt/observium/html/">
     7     AllowOverride All
     8     Options FollowSymLinks MultiViews
     9     Require all granted
    10   </Directory>
    11</VirtualHost>
    
  • Создайте файл /etc/cron.d/observium:
     1# Run a complete discovery of all devices once every 6 hours
     233  */6   * * *   root    /opt/observium/discovery.php -h all >> /dev/null 2>&1
     3# Run automated discovery of newly added devices every 5 minutes
     4*/5 *     * * *   root    /opt/observium/discovery.php -h new >> /dev/null 2>&1
     5# Run multithreaded poller wrapper every 5 minutes
     6*/5 *     * * *   root    /opt/observium/poller-wrapper.py >> /dev/null 2>&1
     7# Run housekeeping script daily for syslog, eventlog and alert log
     813 5 * * * root /opt/observium/housekeeping.php -ysel
     9# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
    1047 4 * * * root /opt/observium/housekeeping.php -yrptb
    
  • Чтобы форсировать мониторинг устройств, нужно выполнить команды:
    1/opt/observium/discovery.php -h all
    2/opt/observium/poller.php -h all
    

5 Обновление Observium

  • Переименуйте старую установку и скачайте и распакуйте новую (всё под пользователем root):
    1cd /opt
    2mv observium observium_old
    3wget https://www.observium.org/observium-community-latest.tar.gz
    4tar zxvf observium-community-latest.tar.gz
    5mv /opt/observium_old/rrd observium/
    6mv /opt/observium_old/logs observium/
    7mv /opt/observium_old/config.php observium/
    
  • Исправьте права доступа:
    1chown -R apache:apache /opt/observium
    
  • Обновите схему БД:
    1/opt/observium/discovery.php -u
    
  • Можно принудительно выполнить немедленное повторное обнаружение всех устройств:
    1/opt/observium/discovery.php -h all
    
  • Можно удалить каталог observium_old:
    1rm -rf observium_old
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие