Мониторинг М-200 с помощью Nagios. Часть 1.
- Часть 1.
- Часть 2.
Данная статья ни в коем случае не является инструкцией. Это просто пример использования одной из распространенных систем сетевого мониторинга для наблюдения за оборудованием М-200.
Сразу же отвечу на несколько вопросов.
- Почему Nagios. Да просто мне доводилось с ним работать, и выбрался он как-то сам собой. Никакой скрытой рекламы и т.п. искать не надо. Есть множество аналогичных систем, выбирайте любую.
- Заменяет ли это стандартную программу мониторинга М-200? Нет.
- Кому это нужно? Прежде всего, тем, у кого уже используется nagios для наблюдения за существующей сетью и есть желание включить сюда и контроль за М-200. А в качестве общей информации, наверное, пригодится любому специалисту, который работает с нашей техникой.
И так, для начала скрин результата:
В данном случае мы имеем:
- МАЛ на базе платы К-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
}
