Добавляем Asterisk на мониторинг в Observium

Добавляем Asterisk на мониторинг в Observium

Roman Bogachev VMware Specialist | Drone Pilot | Traveler

Вытягиваем данные о звонках с популярной телекоммуникационной платформы Asterisk в мониторинг Observium

Поскольку Observium по умолчанию не имеет готового модуля для работы с Asterisk, то будем вытягивать данные через Unix-агент.

Установим и запустим сервис xinetd

1
2
yum -y install xinetd
service xinetd start

Изменим конфигурационный файл /etc/xinetd.d/observium_agent:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
service app-asterisk
{
type = UNLISTED
port = 36602
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/observium_agent/asterisk

# configure the IPv[4|6] address(es) of your Observium server here:
#only_from = 192.168.1.1

# Don't be too verbose. Don't log every check. This might be
# commented out for debugging. If this option is commented out
# the default options will be used for this service.
log_on_success =

disable = no
}

Создаем xinetd скрипт для получения данных с Asterisk:

1
nano /usr/bin/observium_agent/asterisk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash

####### Asterisk server
if [ -a /usr/sbin/asterisk ]
then
echo '<<<app-asterisk>>>'
ACTIVECHAN=$(asterisk -rx 'core show channels' | grep 'active channels' | cut -d' ' -f1)
ACTIVECALL=$(asterisk -rx 'core show channels' | grep 'active call' | cut -d' ' -f1)
IAXCHANNELS=$(asterisk -rx 'iax2 show channels' | grep active | cut -d' ' -f1)
SIPCHANNELS=$(asterisk -rx 'sip show channels' | grep active | cut -d' ' -f1)
SIPTOTALPEERS=$(asterisk -rx 'sip show peers' | grep 'sip peers' | cut -d' ' -f1)
SIPONLINE=$(asterisk -rx 'sip show peers' | grep -o '[0-9]* online' | head -1 | cut -d' ' -f1)
IAXTOTALPEERS=$(asterisk -rx 'iax2 show peers' | grep 'iax2 peers' | cut -d' ' -f1)
IAXONLINE=$(asterisk -rx 'iax2 show peers' | grep -o '[0-9]* online' | head -1 | cut -d' ' -f1)

echo "activechan:$ACTIVECHAN"
echo "activecall:$ACTIVECALL"
echo "iaxchannels:$IAXCHANNELS"
echo "sipchannels:$SIPCHANNELS"
echo "sippeers:$SIPTOTALPEERS"
echo "sippeersonline:$SIPONLINE"
echo "iaxpeers:$IAXTOTALPEERS"
echo "iaxpeersonline:$IAXONLINE"

fi

Выдаем соответствующие привилегии:

1
chmod +x /usr/bin/observium_agent/asterisk

Перезагружаем сервиc xinetd:

1
service xinetd restart

В настройках сервера в Observium не забываем включить поддержку Unix-агента, а также активировать модуль опроса.

On this page