vracbazar.free.fr v2

VracBazar

Application de supervision temps-réel aTinyMON pour Asterisk

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 :
- Les limitations :

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 :

Installation

Suivez les 5 étapes d'installation ci-dessous :
  1. 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.
  2. (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.
  3. 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.
  4. 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.
  5. 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 :

boîte d'erreur

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 :

Les couleurs des LEDs reflètent les états des éléments :

Détails techniques

Quelques détails techniques sur le duo atinyman/aTinyMON :

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 at free.fr