AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Monitoring Asterisk на Cacti с использованием group. Как?

Newbies/FAQ Forum 3 сообщений 14.10.2010 13:15 - 19.10.2010 12:04
#1 14.10.2010 13:15

Monitoring Asterisk на Cacti с использованием group. Как?


Доброго времени суток.

Имеется: Asterisk(карта Digium Wildcard TE121) АТС провайдера.

30 голосовых линий потока E1 разбиты на 2 группы. Как разбить поток на группы я описывал тут. Группы имеют названия g1 и g2.
Исходящие идут, ну допустим так:
exten => _XXXXXX,1,Dial(DAHDI/g1/${EXTEN},300,T)
exten => _XXXXXXXX,1,Dial(DAHDI/g2/${EXTEN},300,T)

Задача:
Мониторить на Cacti число звонков по каждой из групп отдельно (отдельный график на каждую группу).
Наткнулся в нете на статью. Сделал все как там написано. Но:
1) Cacti дополнительные графики, после пропатчивания скрипта asx-stats.py, так и не стал рисовать.
2) Периодически python начинал "кушать" 99.9% процессоров.

Расптчил скрипт asx-stats.py,все нормализовалось, и теперь живу только с графиками предложенными на сайте Cacti.

Подскажите, как мониторить группы (group) на Cacti? Question
#2 14.10.2010 15:07

Если Вы не фанат исключительно Cacti - то для этих целей лучше подойдут специальные приложения для мониторинга Астериска например: FOP2, asternic call center stats и много других.
#3 19.10.2010 12:04

2.6.30-std-def-alt15 x86_64 GNU/Linux


Quote:
EVoIP.Если Вы не фанат исключительно Cacti


Второй раз уже со мной это происходит. Пишу вопрос, толковых ответов по теме вопроса нет. Приходится прибегать к помощи бородатых гуру линукса, плюс собственные изучения. И вот, ответ на мой вопрос готов.
Пишу как организовать мониторинг звонков Asterisk посредствам Cacti+ SNMP+Grep:

1) Идея следующая :.
Данные о звонках будем получать встроенными средствами Asterisk (asterisk -rx "show channels").
Используя перенаправление в файл и утилиту командной строки Grep мы будем получать в текстовом файле число звонков, удовлетворяющее конкретным условиям. Раз в начале этого топика я поставил задачу мониторить количество звонков в рамках групп g1 и g2, то распишем подробно как это сделать для мониторинга звонков (исходящих) в рамах группы g1.

2) Команда show channels выводит нам звонок в консоли Asterisk (запуск консоли: asterisk -r) в следующем виде:
Code:

sip*CLI> show channels

Channel Location State Application(Data)
SIP/220-007bf9e0 347003@PRI:12 Up Dial(DAHDI/g1/347003|300|T)

1 active channels
1 of 255 max active calls ( 1.18% of capacity)


таким образом грепуем вывод этой команды по регулярному выражению g1 и перенаправляем число звонков (строк) в группе g1 в файл sip_g1.txt
/usr/sbin/asterisk -rx "show channels" |grep g1 |grep -c . > /usr/local/bin/sip_g1.txt

Внимание, я указываю везде полные пути. Это необходимо для запуска скрипта по crontab (об этом чуть далее)


Итак запуская вышеуказанную команду, мы получаем в sip_g1.txt число звонков, в текущий момент времени.

3) пишем скрипт sip_g1.sh, где указываем эту команду:

Code:

#!/bin/bash

/usr/sbin/asterisk -rx "show channels" |grep g1 |grep -c . > /usr/local/bin/sip_g1.txt


4) Добавляем запуск этого скрипта каждые 3 минуты в crontab (расписывать как это сделать не буду, в Нете много инфы по данной теме )

5) Теперь актуальные, меняющиеся во времени данные, о исходящих звонках в рамках группу g1 (файл sip_g1.txt), надо забрать по SNMP и на основании их рисовать график на Cacti.

6) Инсталим на Asterisk сервере SNMP (apt-get install net-snmp).
Конфигурируем SNMP в фале /etc/snmp/snmpd.conf Исправить нужно только в трех местах, при том что конфиг на первый взгляд пугает. Mad

Code:

# sec.name source community
com2sec local 127.0.0.1 private
com2sec mynetwork 10.0.0.2/32 public #