Les plugins pour surveiller son serveur SIP Asterisk à partir de Nagios sont assez nombreux. Mais aucun d'eux ne me convenait parfaitement. J'ai donc écrit un petit script nommé Nagisk (quel humour...) a exécuter localement sur le serveur Asterisk. J'utilise NRPE pour récupérer la sortie de ce script et l'intégrer à Nagios.
Nagisk permet de:
- récupérer la version d'Asterisk (et donc au passage de savoir si le serveur est lancé...)
- récupérer le nombre de d'utilisateurs SIP (online et offline)
- récupérer le nombre de communications actives (appels en cours)
Récupération de Nagisk
J'ai créé un nouveau projet sous SourceForge ou vous pouvez télécharger la dernière version disponible de Nagisk.
Installation de Nagisk
Avant d'installer Nagisk sur votre serveur Asterisk, il faut d'abord y installer NRPE (par exemple en suivant ce tuto).
On commence par décompresser l'archive préalablement récupérée:
tar zxvf nagisk-1.1.tgz
Puis on copie le script Perl dans le répertoire des plugins Nagios:
cd nagisk
cp nagisk.pl /usr/local/nagios/libexec
On lui donne les bons droits:
chown nagios:nagios /usr/local/nagios/libexec/nagisk.pl
chmod 750 /usr/local/nagios/libexec/nagisk.pl
Certaines variables sont en durs dans le code (rien de méchant, juste le path pour accèder à Asterisk). J'utilise personnellement la commande sudo pour executé les commandes sur Asterisk afin que le script soit lancé par l'utilisateur nagios. Pour celà j'ai ajouté la ligne suivante dans le fichier /etc/sudoers:
...
nagios ALL= NOPASSWD: /usr/sbin/asterisk
Configuration de NRPE pour lancer Nagisk
Il suffit d'ajouter les lignes suivantes dans le fichier de configuration de NRPE (/usr/local/nagios/etc/nrpe.conf):
...
command[check_asterisk_version]=/usr/local/nagios/libexec/nagisk.pl -c version
command[check_asterisk_peers]=/usr/local/nagios/libexec/nagisk.pl -c peers
command[check_asterisk_channels]=/usr/local/nagios/libexec/nagisk.pl -c channels
command[check_asterisk_zaptel]=/usr/local/nagios/libexec/nagisk.pl -c zaptel
command[check_asterisk_span]=/usr/local/nagios/libexec/nagisk.pl -c span -s 1
ps: il est possible de faire plus propre en utilisant les arguments NRPE mais je trouve cette solution plus lisible...
Une fois le fichier mofifié, il faut relancer NRPE:
/etc/init.d/nrpe restart
Configuration de Nagios pour surveiller son serveur Asterisk
Si vous souhaitez superviser un serveur SIP Asterisk dont le host_name est sip, il suffit d'ajouter les lignes suivantes dans un de vos fichiers de configurations:
define service{
use generic-service
host_name sip
service_description Check SIP
servicegroups sip
check_command check_nrpe!check_asterisk_version
}define service{
use generic-service
host_name sip
service_description Check SIP peers
servicegroups sip
check_command check_nrpe!check_asterisk_peers
}define service{
use generic-service
host_name sip
service_description Check SIP channels
servicegroups sip
check_command check_nrpe!check_asterisk_channels
}define service{
use generic-service
host_name sip
service_description Check Zaptel card
servicegroups sip
check_command check_nrpe!check_asterisk_zaptel
}define service{
use generic-service
host_name sip
service_description Check Zaptel Span 1
servicegroups sip
check_command check_nrpe!check_asterisk_span
}
Et voilà le résultat:

Conclusion
Nagisk semble remplir sa fonction, le script tourne depuis quelques temps chez moi sans problème. Il est distribué sous licence libre GPL v3 et il est bien sûr possible de le modifier pour l'adapter à vos besoins.







Open-source

Abonnez-vous
17 commentaires au billet “Supervision d'Asterisk avec Nagios”
[...] Podeis ver más información en la web del creador (en francés): http://blog.nicolargo.com/2008/10/superviser-asterisk-dans-nagios-grace-a-nagisk.html [...]
[...] Podeis ver más información en la web del creador (en francés): http://blog.nicolargo.com/2008/10/superviser-asterisk-dans-nagios-grace-a-nagisk.html [...]
L'archive V 1.1est toute cassée :'(
Exact... bizarre... je viens de mettre la version 1.1 en ligne (sous le nom 1.1.1)...
A+
Merci pour la réponse rapide
est-ce qu'il y a possibilite de setup -w 20 -c 22 au monitoring du zap ?
ou -w 50 -c 55 au channels
Ce qui resemblerait aux autres plugins.
(-w warning -c critical)
J'ai effectué la démarche décrite ci-dessus, mais il me montre le résultat suivant:
NRPE: Unable to read output
Comment pourrait-il?
Je vous remercie à l'avance.
bjr, je reviens vers vous parce que j'ai un souci. j'ai suivi le tuto mais j'ai comme retour l'interface web nagios:
CHECK_NRPE: Error receiving data from daemon.
je galère depuis un moment.
Merci
un "make distclean" et une bonne réinstallation et tout fonctionne.
Un autre souci, je n'arrive pas à obtenir les graphes du plugin nagisk (tout comme Total_process) avec PNP??
Quelqu'un aurait une idée. Merci
Why if I try to execute the pluggin I get that in an asterisk machine.
/usr/local/nagios/libexec/nagisk.pl -c channels
-su: /usr/local/nagios/libexec/nagisk.pl: cannot execute binary file
And that on the Nagios Machine (using nrpe), I get:
NRPE: Unable to read output
The perms are ok:
-rwxr-x--- 1 nagios nagios 468 2009-02-25 13:51 /usr/local/nagios/libexec/nagisk.pl
In /etc/sudoers I have;
nagios ALL=NOPASSWD: /usr/sbin/asterisk
Nagios service is running under nagios user.
Why I am getting this error?
How could I solve that?
Any clue will be wellcomed
j'ai mis le 1.1 est-ce qu'il fonctionne bien ou dois-je mettre le 1.1.1 ?
là je viens de l'installer et il me met les services en UNKNOW
dans Status Information j'ai : Invalid host name '-c'
-c c'est pas pour critical ?
Apres avoir fait l'installation tel que decrite ci-dessus, j'obtien moi aussi un "unable to read output" lorsque j'execute le nrpe local, mais j'ai un output correcte lorsque j'execute le nagisk.pl directement.
Quelle est le probleme ?
Bonjour,
j'ai du réinstaller la sonde NRPE, et les services nagisk et bizarre le check sip fonctionne mais le check channels et le check peers ne fonctionne pas ils me mettent :
NRPE: Unable to read output
et pourtant j'ai bien suivi le tuto ????
What am I doing wrong?
office-4-3 is the computer running nagios
checking plugins via check_nrpe
office-4-3:/usr/local/nagios/etc/objects# /usr/local/nagios/libexec/check_nrpe -H 192.168.14.254
NRPE v2.12
office-4-3:/usr/local/nagios/etc/objects# /usr/local/nagios/libexec/check_nrpe -H 192.168.14.254 -c check_users
USERS OK - 1 users currently logged in |users=1;5;10;0
checking nagisk via check_nrpe
office-4-3:/usr/local/nagios/etc/objects# /usr/local/nagios/libexec/check_nrpe -H 192.168.14.254 -c check_asterisk_version
NRPE: Unable to read output
astdia is the remote computer running nrpe via xinetd
checking nagisk bypassing nrpe:
astdia:/usr/local/nagios/etc# /usr/local/nagios/libexec/nagisk.pl -c version
Asterisk 1.4.21 built by root @ astdia on a x86_64 running Linux on 2009-02-04 23:04:27 UTC
astdia:/usr/local/nagios/etc# /usr/local/nagios/libexec/nagisk.pl -c channels
609 active SIP channels
checking plugin via check_nrpe
astdia:~# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
USERS OK - 1 users currently logged in |users=1;5;10;0
checking nagisk via check_nrpe
astdia:~# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_asterisk_version
NRPE: Unable to read output
Is nagisk compatible with NRPE v2.12?
Pourquoi lorsque j'essaie d'exécuter le plug-in que je reçois un astérisque dans la machine.
/ usr / local / nagios / libexec / nagisk.pl-c canaux
-su: / usr / local / nagios / libexec / nagisk.pl: ne peut pas exécuter de fichier binaire
Et que, sur la machine Nagios (en utilisant nrpe), j'obtiens:
NRPE: Impossible de lire la sortie
Les permanentes sont ok:
-rwxr-x --- 1 nagios nagios 468 2009-02-25 13:51
/ usr / local / nagios / libexec / nagisk.pl
Dans le fichier / etc / sudoers J'ai;
nagios ALL = NOPASSWD: / usr / sbin / asterisk
Nagios service est en cours d'exécution en vertu de l'utilisateur nagios.
Pourquoi je reçois ce message d'erreur?
Comment pourrais-je résoudre cela?
Toute idée sera wellcomed
J'aile même problème que celui cité ci-dessus :
nagios-cedric:/usr/local/nagios/libexec# ./check_nrpe -H 10.10.10.42 -c check_asterisk_version
NRPE: Unable to read output
This works great on the remote asterisk box when running the command from terminal. When it is plugged in to the main Nagios box i get the following error
NRPE: Unable to read output
Any ideas why this would be.
Great work by the way
Publier un commentaire
Utiliser
pour lier des documents à vos commentaires.
Pour des discutions techniques, merci d'utiliser le forum.