Asterisk PBX - Monitoring SIP Peers

Monitoring der SIP-Extensions an einer Asterisk PBX ist nützlich, denn
Fehler lassen sich so früh erkennen und Fehlerhäufungen aufzeichnen.

Hier zwei Beispielaufzeichnungen:


Beide Aufzeichnungen zeigen einen deutlichen Qualitätsunterschied.
Die SIP-Proxys von T-Online arbeiten unzuverlässig, dies äußert sich auch in häufigen Gesrpächsabbrüchen. Im Vergleich im selben Zeitraum liefert sipgate hier konstante und zuverlässige Leistung.

Zur Aufzeichnung wird collectd und rrdtool genutzt. Ein PHP-Script pollt über das Asterisk-AMI-Interface vorhandene SIP Qualifys (Sippeer-Latenzen).

Aufbau und Konfiguration

Asterisk vorbereiten:
Eine funktionierende Asterisk PBX-Konfiguration wird vorausgesetzt
Manager-User anlegen (.z.B. collectd)
Datei /etc/asterisk/manager.d/collectd.conf anlegen:
[collectd]
secret = your_password
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user,originate
Datei muss für Asterisk-User lesbar sein, dann asterisk Manager neustarten:
sudo rasterisk -rx 'manager reload'

In der /etc/asterisk/sip.conf müssen alle zu überwachenden Peers qualify=yes gesetzt haben.

Collectd einrichten:
Eine funktionierende Collectd-Installation wird vorausgesetzt.
Script herunterladen, nach /etc/collectd kopieren und Rechte anpassen
cd /etc/collectd
wget http://www.saenet.de/dl/projects/asterisk/sippeerd
chmod 750 /etc/collectd/sippeerd
chown asterisk /etc/collectd/sippeerd
sippeerd benötigt nun noch einige lokale Anpassungen. Bitte mit einem Editor öffnen und Variablen im Kopf entsprechend den gesetzten Einstellungen von Asterisk ergänzen.
Datei /etc/collecd/collectd.conf anpassen:
LoadPlugin exec

<Plugin exec>
     Exec asterisk /etc/collectd/sippeerd
</Plugin>
Sicherstellen, dass "LoadPlugin exec" nicht auskommentiert ist.
Kann Spuren von Unvollständigkeit enthalten, Installation und fremde Skripte vor dem ausführen bitte prüfen! Dann Collectd neustarten:
service collectd restart


Daten abrufen:
Die obigen Graphen wurden mit rrdtool erstellt
RRD=/var/cache/rrd/saenet.de/ping/ping-t-online.de_sip.rrd

/usr/bin/rrdtool graph monitoring_t-online.de_1d.png -aPNG \
-cARROW#000000 -t "Verzögerung (t-online.de:sip)" \
-v "Reaktionszeit (ms)" -s -1d -T64 -u 100 -h200 -w400 \
DEF:value=$RRD:value:AVERAGE \
CDEF:null=value,UN,0,0,IF \
CDEF:unkn=value,UN,UNKN,UNKN,IF \
DEF:value_min=$RRD:value:AVERAGE \
DEF:value_max=$RRD:value:AVERAGE \
CDEF:value_null=value,UN,UNKN,0,IF \
CDEF:lat=value,1,* \
CDEF:lat_min=value_min,1,* \
CDEF:lat_max=value_max,1,* \
CDEF:lat_null=value_null,1,* \
COMMENT:"      	\g" \
COMMENT:"   Min	\g" \
COMMENT:"   Avg	\g" \
COMMENT:"   Max	\g" \
COMMENT:"  Curr	\g" \
COMMENT:"\l" \
AREA:lat#FF3434:"Latenz	\g":  \
GPRINT:lat_min:MIN:"%6.2lf	\g" \
GPRINT:lat:AVERAGE:"%6.2lf	\g" \
GPRINT:lat_max:MAX:"%6.2lf	\g" \
GPRINT:lat:LAST:"%6.2lf	\g" \
COMMENT:"\l" \
CDEF:rrdgraph_unkn=value,UN,INF,UNKN,IF \
CDEF:rrdgraph_nunkn=0,rrdgraph_unkn,- \
AREA:rrdgraph_unkn#FF343477::  \
AREA:rrdgraph_nunkn#FF343477::  

--- JavaScript not activated ---