Моніторинг мережевих сервісів за допомогою Nagios

Nagios - це програма моніторингу комп'ютерних систем і мереж з відкритим кодом. Призначена для спостереження, контролю стану обчислювальних вузлів і служб, сповіщає адміністратора в тому випадку, якщо якісь із служб припиняють (або відновлюють) свою роботу.

Nagios спочатку була створена під ім'ям Netsaint, розроблена Етаном Галстадом. Він же підтримує і розвиває систему сьогодні, спільно з командою розробників, які займаються як офіційними, так і неофіційними плагінами.

Спочатку Nagios була розроблена для роботи під Linux, але вона також добре працює і під іншими ОС, такими як Sun Solaris, FreeBSD, AIX і HP-UX.

Можливості Nagios дуже широкі.

Ця система може

  • Моніторити мережеві служби (SMTP, POP3, HTTP, NNTP, ICMP, SNMP)

  • Моніторити стан хостів (завантаження процесора, використання диска, системні логи) в більшості мережевих операційних систем

  • Проста архітектура модулів розширень (плагінів) дозволяє, використовуючи будь-яку мову програмування за вибором (Shell, C ++, Perl, Python, PHP і інші), легко розробляти свої власні способи перевірки служб

  • У якості повідомлень системному адміністратору підтримується відправка сповіщень в разі виникнення проблем зі службою або хостом (за допомогою пошти, пейджера, SMS, або будь-яким іншим способом, визначеним користувачем через модуль системи)

  • так само є можливість організації спільної роботи декількох систем моніторингу з метою підвищення надійності і створення розподіленої системи моніторингу

    Установка Nagios

    Для роботи Nagios необхідний веб-сервер, який ми і встановимо:

    # apt-get install apache2

    Установка сервера Nagios здійснюється командою:

    #apt-get install nagios3 nagios-plugins-extra

    Зверніть увагу, що крім цих двох пакетів за залежностями встановлюється ще досить багато додаткових програм і сервісів.

      

     

    В процесі налаштування сервера Nagios буде запропоновано ввести пароль для облікового запису nagiosadmin для доступу до консолі.

    Після закінчення установки і налаштування всіх компонентів можна зайти на веб-інтерфейс Nagios за адресою http://server-ip/nagios3 і після переходу на закладку "Service Details" ми побачимо інформацію про сервер, який додається автоматично при установці - локальний сервер, на який встановлений Nagios.

      

      

    Додавання нового хоста в систему моніторинга

    Для додавання нового хоста слід створити його файл конфігурації. Налаштуємо моніторинг сервера, наприклад, 192.168.0.30. Для цього створимо файл /etc/nagios3/conf.d/192.168.0.30.cfg

    та запишемо в нього

      

    define host {

    host_name my_server

    alias my_server

    address 192.168.0.30

    use generic-host

    }

      

    Крім цього необхідно описати які сервіси на сервері слід моніторити.

    Опис того, які сервіси моніторяться на серверах знаходиться в файлі /etc/nagios3/conf.d/hostgroups_nagios2.cfg

    Відкриємо цей файл і додамо наш сервер в групу ssh-servers.

      

    define hostgroup {

    hostgroup_name http-servers

    alias HTTP servers

    members localhost, my_server

    }

      

    Після цих змін слід дати команду сервісу Nagios перечитати конфігурацію

    #service nagios3 reload

      

    Тепер, після оновлення веб-сторінки Nagios ми побачимо інформацію про наш сервер, який ми додали в систему моніторингу.

      

      

    Додавання моніторингу нових сервісів

    Опис всіх сервісів, які можуть моніториться в мережі знаходяться у файлі /etc/nagios3/conf.d/services_nagios2.cfg. За замовчуванням їх там всього два - HTTP та SSH. Звісно цього недостатньо для повноцінного моніторингу. З цього ми зараз розглянемо, як додати нові сервіси. Для прикладу налаштуємо моніторинг поштового сервера, тобто будемо перевіряти те, що наш сервер відповідає на 25 порту по протоколу SMTP.

    Відкриємо файл /etc/nagios3/conf.d/services_nagios2.cfg та додамо в нього опис нового сервісу:

      

    define service {

    hostgroup_name smtp-servers

    service_description smtp

    check_command check_smtp

    use generic-service

    notification_interval 0 ; set > 0 if you want to be renotified

    }

      

    Далі необхідно включити перевірку даного сервіса на нашому сервері. Для цього в файлі /etc/nagios3/conf.d/hostgroups_nagios2.cfg необхідно описати нову групу і включити в неї наш сервер

      

    define hostgroup {

    hostgroup_name smtp-servers

    alias SMTP servers

    members my_server

    }

      

      

    Після перезавантаження конфігурації Nagios в веб-інтерфейсі можна буде побачити результати моніторингу сервісу SMTP.

    Для того, що б з'ясувати як описується команда перевірки різних сервісів, варто подивитися вміст файлів в /etc/nagios-plugins/config. Там уже є готові перевірки для великої кількості різноманітних сервісів.