Мониторинг М-200 с помощью Nagios. Часть 1.

Материал из M-200 WIKI
Перейти к: навигация, поиск

Данная статья ни в коем случае не является инструкцией. Это просто пример использования одной из распространенных систем сетевого мониторинга для наблюдения за оборудованием М-200.


Сразу же отвечу на несколько вопросов.

  1. Почему Nagios. Да просто мне доводилось с ним работать, и выбрался он как-то сам собой. Никакой скрытой рекламы и т.п. искать не надо. Есть множество аналогичных систем, выбирайте любую.
  2. Заменяет ли это стандартную программу мониторинга М-200? Нет.
  3. Кому это нужно? Прежде всего, тем, у кого уже используется nagios для наблюдения за существующей сетью и есть желание включить сюда и контроль за М-200. А в качестве общей информации, наверное, пригодится любому специалисту, который работает с нашей техникой.


И так, для начала скрин результата:

001.jpg


В данном случае мы имеем:

  • МАЛ на базе платы К-87 (192.168.5.48)
  • МР-4 серии СС (192.168.5.67)
  • Задействованы 6 потоков Е1 (2 на МАЛ и 4 на коммутаторе)
  • Модули объединены по GSCPoIP

На первом этапе стояла задача мониторить основные функциональные подсистемы оборудования и состояние потоков Е1. Ниже расскажу, что для было сделано, чтобы получить подобную картинку.


Условия

Система

Компьютер с работающим Nagios. В сети множество документации на эту тему и проблем с установкой и первоначальной настройкой возникнуть не должно.

Все рабочие скрипты написаны на Perl. Из дополнительных модулей использовались

  • Net::Telnet
  • Time::HiRes
  • XML::Simple

В папке plugins nagios-а нужны скрипты m-200_xxx (примеры скриптов взять можно здесь).

m-200_atsdirect - проверяет работу LINUXATSDIRECT. Использование - <m-200_atsdirect ip_addr>
m-200_prodriver - проверяет работу PRODRIVER. Использование - <m-200_prodriver ip_addr>
m-200_pcm - проверяет работу цифровых потоков. Использование - <m-200_pcm proxy_ip_addr pcm_no>. pcm_no - три цифры начиная с 001. Этот скрипт работает через PROXY, так что ip_addr - это адрес модуля на котором запущен PROXY!
m-200_mg4 - проверяет работу плат MG-4 и т.п.. Использование - <m-200_mg4 proxy_ip_addr slot_no>. slot_no - две цифры начиная с 01. Этот скрипт работает через PROXY, так что ip_addr - это адрес модуля на котором запущен PROXY!

М-200

  • Мотор не ниже 5.86.50
  • Все модули подключены к локальной сети.
  • На одном из модулей (желательно на коммутаторе) должна быть настроена и запущена подсистема PROXY (см. соответствующую документацию). В нашем случае - это МР-4 СС (192.168.5.67).

Внимание! Установленная версия PROXY может быть устаревшей и не поддерживать ряд функций. В этом случае обращайтесь в техническую поддержку МТА.

Исполнение

Templates

define contact{
       name                            m-200_contact
       service_notification_period     24x7
       host_notification_period        24x7
       service_notification_options    w,u,c,r,f,s
       host_notification_options       d,u,r,f,s
       service_notification_commands   notify-service-by-email
       host_notification_commands      notify-host-by-email
       register                        0
       }

define host{
       name                            m-200
       notifications_enabled           1
       event_handler_enabled           1
       flap_detection_enabled          1
       failure_prediction_enabled      1
       process_perf_data               1
       retain_status_information       1
       retain_nonstatus_information    1
       check_period                    24x7
       check_interval                  5
       retry_interval                  1
       max_check_attempts              10
       check_command                   check-host-alive
       notification_period             24x7
       notification_interval           120
       notification_options            d,u,r
       contact_groups                  m-200_admins
       register                        0
       }

define service{
       name                            m-200_service
       active_checks_enabled           1   
       passive_checks_enabled          1   
       parallelize_check               1   
       obsess_over_service             1   
       check_freshness                 0   
       notifications_enabled           1   
       event_handler_enabled           1   
       flap_detection_enabled          1   
       failure_prediction_enabled      1   
       process_perf_data               1   
       retain_status_information       1   
       retain_nonstatus_information    1   
       is_volatile                     0   
       check_period                    24x7
       max_check_attempts              3      
       normal_check_interval           10     
       retry_check_interval            2      
       contact_groups                  admins 
       notification_options            w,u,c,r
       notification_interval           60
       notification_period             24x7
       register                        0
       max_check_attempts              4
       normal_check_interval           5
       retry_check_interval            1
       register                        0
       }

Contacts

define contact{
       contact_name                    m-200_admin
       use                             m-200_contact
       alias                           M-200 Admin
       email                           admin@my.net
       }

define contactgroup{
       contactgroup_name       m-200_admins
       alias                   M-200 Administrators
       members                 m-200_admin
       }


Commands

Для для проверки базовой работоспособности

Наличие модуля:

define command{
       command_name    check-host-alive
       command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
       }

Контроль SSH:

define command{
       command_name    check_ssh
       command_line    $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
       }

Контроль FTP:

define command{
       command_name    check_ftp
       command_line    $USER1$/check_ftp -t 20 -H $HOSTADDRESS$
       }

Контроль HTTP:

define command{
       command_name    check_http
       command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
       }

Контроль базовых подсистем АТС

LINUXATSDIRECT

define command{
       command_name    check_atsdirect
       command_line    $USER1$/m-200_atsdirect $HOSTADDRESS$
       }

PRODRIVER

define command{
       command_name    check_prodriver
       command_line    $USER1$/m-200_prodriver $HOSTADDRESS$
       }

Проверка наличия плат G-04 (в том числе и СОРМ, PROMG и т.д. - все, что размещается в кассете)

define command{
       command_name    check_mg4
       command_line    $USER1$/m-200_mg4 $HOSTADDRESS$ $ARG1$
       }

$ARG1$ - двухзначный номер слото-места. Нумерация с 01.


Проверка состояния потоков Е1

define command{
       command_name    check_pcm
       command_line    $USER1$/m-200_pcm $HOSTADDRESS$ $ARG1$ $ARG2$
       }

$ARG1$ - трехзначный номер модуля. $ARG2$ - трехзначный номер потока. Нумерация с 001.


HOSTS и HOST GROUPS

МР-4 СС и МАЛ

define host{
       use                     m-200
       host_name               MP-SS
       alias                   MP-SS
       address                 192.168.5.67
       }

define host{
       use                     m-200
       host_name               MAL
       alias                   MAL
       address                 192.168.5.48
       }

define hostgroup{
       hostgroup_name          m-200
       alias                   m-200
       members                 MP-SS, MAL
       }


Потоки Е1, сгруппированные в host-ы по направлениям

define host{
       use                     m-200
       host_name               Peterstar
       alias                   PS
       address                 192.168.5.67
       }

define host{
       use                     m-200
       host_name               Obit
       alias                   OB
       address                 192.168.5.67
       }

define host{
       use                     m-200
       host_name               Xorp
       alias                   CP
       address                 192.168.5.67
       }

define hostgroup{
       hostgroup_name          PCM
       alias                   PCM
       members                 Peterstar, Obit, Xorp
       }


ВНИМАНИЕ! Обратите внимание, что используется IP адрес модуля, на котором запущен PROXY. Информация о потоках во всех модулях будет получена через него!


SERVICES

PING, SSH, FTP, HTTP

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             1. PING
       check_command                   check_ping!100.0,20%!500.0,60%
       }

define service{
       use                             m-200_service
       host_name                       MAL
       service_description             1. PING
       check_command                   check_ping!100.0,20%!500.0,60%
       }

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             4. SSH
       check_command                   check_ssh
       notifications_enabled           0
       }

define service{
       use                             m-200_service
       host_name                       MAL
       service_description             4. SSH
       check_command                   check_ssh
       notifications_enabled           0
       }

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             5. FTP
       check_command                   check_ftp
       notifications_enabled           0
       }

define service{
       use                             m-200_service
       host_name                       MAL
       service_description             5. FTP
       check_command                   check_ftp
       notifications_enabled           0
       }

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             6. HTTP
       check_command                   check_http
       notifications_enabled           0
       }

define service{
       use                             m-200_service
       host_name                       MAL
       service_description             6. HTTP
       check_command                   check_http
       notifications_enabled           0
       }

Проверка базовых подсистем АТС

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             2. ATS
       check_command                   check_atsdirect
       }

define service{
       use                             m-200_service
       host_name                       MAL
       service_description             2. ATS
       check_command                   check_atsdirect
       }

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             3. PRODRV
       check_command                   check_prodriver
       }

define service{
       use                             m-200_service
       host_name                       MAL
       service_description             3. PRODRV
       check_command                   check_prodriver
       }


Проверка состояния плат

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             SLOT 01
       check_command                   check_mg4!01
       }

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             SLOT 02
       check_command                   check_mg4!02
       }

define service{
       use                             m-200_service
       host_name                       MP-SS
       service_description             SLOT 03
       check_command                   check_mg4!03
       }


Контроль состояния потоков Е1

define service{
       use                             m-200_service
       host_name                       Peterstar
       service_description             PCM 1
       check_command                   check_pcm!100!001
       }

define service{
       use                             m-200_service
       host_name                       Obit
       service_description             PCM 1
       check_command                   check_pcm!100!002
       }

define service{
       use                             m-200_service
       host_name                       Xorp
       service_description             PCM 1
       check_command                   check_pcm!127!001
       }

define service{
       use                             m-200_service
       host_name                       Xorp
       service_description             PCM 2
       check_command                   check_pcm!127!002
       }

define service{
       use                             m-200_service
       host_name                       Xorp
       service_description             PCM 3
       check_command                   check_pcm!127!003
       }

define service{
       use                             m-200_service
       host_name                       Xorp
       service_description             PCM 4
       check_command                   check_pcm!127!004
       }
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты