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?
| 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 Исправить нужно только в трех местах, при том что конфиг на первый взгляд пугает.
| Code: |
| # sec.name source community com2sec local 127.0.0.1 private com2sec mynetwork 10.0.0.2/32 public # |