aTinyMON est une petite application de supervision temps-réel pour Asterisk (
www.asterisk.org).
Téléchargement :
ici.
aTinyMON en quelques mots
- Les qualités :
- Peu de prérequis pour l'installation.
- Presque aucune configuration.
- Découverte automatique du système Asterisk : auto-apprentissage à partir des événements Asterisk Manager.
- Les limitations :
- Informations de base seulement : poste connecté / non connecté, en sonnerie, actif.
- Pas de contrôle des accès utilisateurs.
Architecture
aTinyMON fonctionne dans l'architecture présentée ci-dessous. Les blocs représentent des entités logicielles et peuvent très bien
être localisés sur un même serveur (les considérations de performances ne seront pas discutées ici, mais il est toutefois souhaitable
qu'Asterisk dispose de son propre serveur pour assurer un traitement optimal des appels).
En bref :
aTinyMON est une application PHP. Elle utilise les sessions PHP pour stocker des informations entre les rafraichissements de pages HTML.
aTinyMON lance l'utilitaire Perl atinyman.pl qui se connecte sur l'interface Asterisk Manager and approvisionne une table dans une
base de données MySQL avec des 'tickets' qui représentent les événements Manager.
Donc, atinyman.pl fournit les 'tickets', aTinyMON les lit et élabore le tableau de supervision temps-réel.
La table des 'tickets' constitue le 'tampon' entre le flux continu des événements Manager et l'exécution périodique de aTinyMON.
Prérequis
Les prérequis pour aTinyMON :
- Un serveur Asterisk - ce serveur Asterisk doit avoir son interface Asterisk Manager activée et un compte créé pour aTinyMON.
- Une machine Linux avec Apache HTTPD server, PHP (avec php-mysql) et Perl (avec IO::Socket et DBI) pour installer aTinyMON et atinyman.
- Un serveur de base de données MySQL (il peut bien sûr être sur la même machine Linux) avec une table dédiée à atinyman/aTinyMON,
et un compte utilisateur ayant des privilèges de lecture/écriture sur cette table.
- Un navigateur web !
Installation
Suivez les 5 étapes d'installation ci-dessous :
- Décompressez l'archive aTinyMON quelque part sous votre répertoire racine Apache HTTPD : disons directement à la racine,
/var/www/html/ typiquement. Renommez la répertoire atinymon-x.xx en atinymon.
- (optionnel) Vérifiez que le serveur HTTPD supporte les pages PHP : ouvrez
http://<votre serveur>/atinymon/phpinfo.php avec un navigateur (voir note 1 ci-dessous).
Cette page contient une seule instruction PHP <?php phpinfo(); ?> qui devrait afficher des
informations sur vos paramètres PHP.
- Activez l'interface Manager d'Asterisk et créez un compte pour atinyman :
Editez manager.conf, localisé habituellement dans /etc/asterisk.
- Dans la section [general], définissez enabled=yes
- Créez une section [<votre compte>] (par ex. [atinymon]), et définissez les paramètres suivants :
secret=<votre mot de passe>, read=all et write=system,call (write est nécessaire pour les opérations de polling/interrogation
par atinyman).
- Faites un Reload de la configuration dans Asterisk.
- Créez une table pour les tickets atinyman/aTinyMON dans votre base de données MySQL, créez un utilisateur avec des
permissions SELECT/INSERT/DELETE sur cette table (naturellement, cela fonctionnera aussi avec l'utilisateur MySQL 'root', mais je recommande la création d'un utilisateur dédié).
L'utilisateur créé pour atinyman/aTinyMON n'a besoin d'aucune autre permission que read/write sur la table des tickets. Vous pouvez créer la table dans une base
de données dédiée ou utiliser la base de données 'test'.
- CREATE TABLE `tickets` (
`id` int(11) NOT NULL auto_increment,
`datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`ticket` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- Autre possibilité : donnez aussi une permission CREATE à l'utilisateur MySQL sur la Base de données choisie, et aTinyMON pourra créer la table pour vous.
- Entrez les paramètres dans le fichier config.php :
- Paramètres Asterisk : host, port, AMI username, AMI password.
- Paramètres MySQL : host, port, MySQL username, MySQL password, base de données, table.
- Préciser la localisation de atinyman.pl (define MON_APP). Vous pouvez soit le laisser dans le répertoire atinymon, soit le déplacer vers
un autre répertoire accessible à Apache HTTPD.
- C'est tout. Vous pourrez modifier les autres paramètres plus tard si vous le souhaitez.
Note 1 : nous supposons ici que vous avez décompressé l'archive aTinyMON à la racine du répertoire Apache HTTPD.
Sinon, adaptez et utilisez l'URL adéquate : http://<votre serveur>/un/chemin/complexe/atinymon/phpinfo.php
si vous avez décompressé dans <HTTPD root>/un/chemin/complexe).
Vous êtes maintenant prêt à passer à la section "Opération" !
Opération
Ouvrez maintenant http://<votre serveur>/atinymon/ dans un navigateur. index.html devrait vous rediriger vers atinymon.php
Ce n'est pas habituel, mais commençons avec les éventuels soucis : si aTinyMON rencontre un problème, il vous en informera dans une boîte d'erreur.
Par exemple s'il ne peut pas lancer atinyman.pl, il affichera quelque chose comme ceci :
Il vous informera aussi s'il a un problème de connexion à la base de données.
Si vous voulez vérifier l'activité de atinyman, vous pouvez faire un 'ps -e | grep atinyman' et vous devriez voir 3 processus.
Vous devriez aussi trouver des logs dans le répertoire /tmp, ainsi qu'un fichier atinyman-xxxx-loop.tmp
qui contient les instructions d'interrogation périodiques pour atinyman.
Si rien ne s'affiche, définissez la valeur DEBUG à 1 dans config.php et réessayez.
Et si (heureusement !) aTinyMON n'a aucun problème, il affichera l'activité courante autour de votre serveur Asterisk.
Les contrôles disponibles sont :
- Geler l'affichage avec l'icône "Pause" ; un chrono s'affiche alors à côté du logo aTinyMON.
- Relancer l'affichage temps-réel avec l'icône "Play" ; une roue dentée s'affiche alors à côté du logo aTinyMON.
- Fermer la session aTinyMON. Vous serez renvoyé vers l'adresse REFRESH définie dans config.php.
- Montrer ou masquer une catégorie de ressources/postes avec la coche verte / croix rouge associée.
- En mode "Gel" seulement, choisir le nombre d'items affichés par ligne dans le panneau droit.
- Choisir d'afficher ou masquer les éléments non connectés.
- Choisir d'afficher ou non les événements AMI.
- Zoomer sur l'état d'un élément de la configuration en cliquant sur le lien associé dans le panneau droit. L'état affiché est une compilation des paramètres de tous les événements.
Il inclut aussi les informations sur les appels courants associés à l'élément.
- Refermer un zoom avec le bouton Close et revenir à l'affichage par défaut, qui montre le dernier événement traité.

Les couleurs des LEDs reflètent les états des éléments :
Déconnecté
Connecté
Connecté en sonnerie
Connecté actif
Inconnu
Détails techniques
Quelques détails techniques sur le duo atinyman/aTinyMON :
- Quand vous démarrez une nouvelle session PHP aTinyMON, aTinyMON vérifie la disponibilité de atinyman
(atinyman a une super-fonctionnalité à cet effet et répond 'pong' quand quelqu'un l'appelle avec le paramètre 'ping').
- Si atinyman est disponible, alors aTinyMON lance un processus atinyman en tâche de fond avec les paramètres appropriés (paramètres Asterisk,
paramètres base de données, instructions de polling, instruction de fonctionner en un seul exemplaire, etc.).
- Si atinyman est appelé avec des paramètres 'sérieux' (je veux dire : pas 'ping'), et doit fonctionner en un seul exemplaire, il vérifie la présence
d'autre processus atinyman ; s'il en détecte, it se termine, considérant qu'un autre atinyman se charge déjà du travail.
Sinon, il fait ce qu'il a à faire.
- Vous pourrez noter que aTinyMON ne contient aucun contrôle pour arrêter atinyman.
En d'autres termes, si vous démarrez une session aTinyMON, il lancera atinyman, et atinyman continuera à fonctionnez en tâche de fond même quand
vous terminerez votre session aTinyMON.
Toutefois, si vous voulez / avez besoin d'arrêter atinyman : 'killall atinyman.pl' devrait faire l'affaire.
Crédits
Les icônes aTinyMON viennent pour partie de la bibliothèque d'icônes Nuvola (
Icon-King).
Contact

Pour toutes vos remarques, suggestions, vous pouvez envoyer un email à vracbazar