cacti asterisk

Upload: oussamahammami

Post on 30-May-2018

263 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 Cacti Asterisk

    1/19

    Installation du serveur de monitoring Cacti pour

    AsteriskOussama Hammami, 2010-05-10

    Switzernet

    Installation du serveur de monitoring Cacti pour Asterisk...............................................11- Installation de base .....................................................................................................2

    1.1- Prparer son serveur............................................................................................21.2- Installer apache 2 .................................................................................................21.3- Installer php 5.......................................................................................................31.4- Installer La base de donne (Mysql).....................................................................3

    2- Installation de Cacti.....................................................................................................4

    2.1- Installation des packages .....................................................................................4L'agent SNMP..........................................................................................................4Firewall ....................................................................................................................5

    2.2- Lancement de Cacti..............................................................................................5Gestion du polling via notre crontab .........................................................................7

    2.3- Cration d'un device (hte)...................................................................................8Cration supplmentaire des graphiques .................................................................9Classement des donnes.........................................................................................9Regarder ses graphiques.........................................................................................9

    3- Intgration de scripts personnaliss dans Cacti ..........................................................93.1- Le script................................................................................................................93.2- Collecte des donnes dans Cacti..........................................................................9

    3.3- Cration du modle de source de donnes ........................................................113.4- Gnration des sources pour les graphs ............................................................123.5- Crer le modle pour le graphique :....................................................................12

    Le graph.................................................................................................................12Courbes et lgendes..............................................................................................13

    3.6- Gnration du graphique partir du template.....................................................143.7- Ca tourne !..........................................................................................................14

    Conclusion Gnrale.....................................................................................................15Rfrence .....................................................................................................................16Annexe..........................................................................................................................17

    AMI2.pl ......................................................................................................................17Manager.conf.............................................................................................................19

  • 8/9/2019 Cacti Asterisk

    2/19

  • 8/9/2019 Cacti Asterisk

    3/19

    1.3- Installer php 5Actuellement, notre serveur peut nous afficher des pages statiques au format HTML. La

    plupart des sites que vous voudrez installer disposeront d'une partie dynamique. C'estpourquoi nous poursuivons par l'installation de PHP 5 sur le serveur.

    # apt-get install php5

    S'il annonce que le package n'a pas t trouv, ditez le fichier source d'Apt et ajoutez :

    # nano /etc/apt/sources.list

    deb http://packages.dotdeb.org stable all

    On met jour la liste des packages :

    # apt-get update

    Et on installe php5.

    1.4- Installer La base de donne (Mysql)PHP est trs trs souvent coupl un systme de base de donnes : Mysql. Nousinstallons ici Mysql-server version 5. Vous verrez plus bas que nous allons galementinstaller phpmyadmin. Il s'agit d'un script php qui permet de grer ses bases de donnesMysql de facon trs simple.

    # apt-get install mysql-server

    Dfinir le mot de passe root de Mysql ( mysql par exemple). Dans l'cran suivant, ildemande s'il faut grer les connexions d'htes qui utilisent Debian Sarge. On rpondOUI (rpondre non empchera la configuration de Postfix par la suite !).On vrifie que Mysql fonctionne bien :

    # mysql -p

    entrer le mot de passe

    >Exit;

    Installer les librairies php5-mysql :

    # apt-get install php5-mysql

    Installer PhpMyAdmin :

    # apt-get install phpmyadmin

    Choix du serveur a paramtrer : Apache2On redmarre Apache quand proposOn se connecte par l'adresse http://xxx.xxx.xxx.xxx/phpmyadmin.

  • 8/9/2019 Cacti Asterisk

    4/19

    2- Installation de CactiCacti est un outil de cration de graphiques reposant sur une interface web base sur

    PHP et MySQL et qui utilise le moteur RRDTool pour collecter les statistiques.Classiquement, Cacti peut crer des graphiques de bandes passantes rseaux avecSNMP, mais en fait, un nombre impressionnant de graphiques peuvent tre conu avecSNMP, des scripts perl ou des scripts shell.

    2.1- Installation des packagesLes programmes suivants sont requis pour faire tourner Cacti:

    - apache2 pour le serveur web- mysql-server pour la base de donnes- php5 pour le language de script cot serveur- php5-common- php5-cgi

    - php5-cli- php5-mysql- snmp - pour collecter les statistiques SNMP des agents distants.- rrdtool - un script pour formater les donnes collcts en fichier rrd.

    # apt-get install php5-cli php5-mysql php5-snmp snmp snmpd

    rrdtool cacti

    L'agent SNMP

    Il y a un fichier de configuration :/etc/snmp/snmpd.conf : fichier de configuration de l'agent SNMP.

    Il faut modifier la partie Access Control :

    . . .

    #com2sec paranoid default public

    com2sec readonly default astrad

    #com2sec readwrite default private

    ####

    # Second, map the security names into group names:

    # sec.model sec.name

    group MyROSystem v1 paranoid

    group MyROSystem v2c paranoid

    group MyROSystem usm paranoid

    group MyROGroup v1 readonly

    group MyROGroup v2c readonly

    group MyROGroup usm readonly

    group MyRWGroup v1 readwrite

    group MyRWGroup v2c readwrite

    group MyRWGroup usm readwrite

    . . .

    Enfin pour que l'agent accepte les requtes du rseau, il faut modifier la ligne suivante :

  • 8/9/2019 Cacti Asterisk

    5/19

    SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p

    /var/run/snmpd.pid 127.0.0.1'

    en :SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p

    /var/run/snmpd.pid'

    Ceci permet d'accepter les requtes venant du rseau.

    Maintenant que la configuration est finie, redmarrons l'agent pour prendre en compteles modifications :# /etc/init.d/snmpd restart

    Firewall

    En cas de prsence dun firewall sur le rseau, pour que l'agent SNMP soit accessible, ilfaut autoriser le port 161/UDP.

    2.2- Lancement de CactiVous devez configurer les paramtres MySQL travers un petit assistant.A la suite de l'assistant, une base de donnes et un utilisateur MySQL appel cacti vonttre automatiquement crs.

    Mot de passe de l'utilisateur MySQL root

    Mot de passe del'utilisateur MySQL cacti

  • 8/9/2019 Cacti Asterisk

    6/19

    Confirmation du mot depasse de l'utilisateur cacti

    Serveur web utilis parCacti

    Maintenant, Cacti est prt tre utilis avec: http://your_ip_adress/cactiL'utilisateur et mot de passe par dfaut sont "admin".Cacti va alors vrifier que tous les composants requis son bon fonctionnement sontbien installs correctement.

    Licence de Cacti

    Sectionner "new install"(nouvelle installation)

  • 8/9/2019 Cacti Asterisk

    7/19

    Vrification des outilsprrequis l'installation.

    Noter que le script poller.php qui envoie les requte vers les quipements distants estlanc par l'utilisateur d'apache, c'est--dire www-data.

    Pour reconfigurer cacti, utiliser la commande suivante:

    #dpkg-reconfigure cacti

    Pour activer le poller manuellement:

    # php5 /usr/share/cacti/site/poller.php

    Il peut arriver qu'il soit ncessaire de lancer le script la premire, ensuite il est lancautomatiquement toutes les cinq minutes par dfaut.

    Gestion du polling via notre crontab

    Afin de rcuprer des donnes (charge CPU, espace disques....etc), lors de l'installation,un fichier de crontab a t mis en place par Cacti dans /etc/cron.d/cacti. Il contient :

    MAILTO=root*/5 * * * * www-data php /usr/share/cacti/site/poller.php

    >/dev/null 2>/var/log/cacti/poller-error.log

    Remarque : Il existe un paquet connu sous le nom de cacti-cactid qui a le mme rleque le fichier poller.php, mais, qui est plus rapide. Il est utiliser pour les serveurs surlesquels transitent beaucoup de trafic. Cependant, si poller.php fonctionne correctement(pas d'erreur lie un dlai de rponse trop important), il est vivement dconseill del'installer.Pour installer ce paquet :# apt-get install cacti-cactid

  • 8/9/2019 Cacti Asterisk

    8/19

    2.3- Cration d'un device (hte)On accde Cacti via l'url : [http://] adresse de notre serveur /cacti.

    Par dfaut, le login et le mot de passe ont les valeurs suivantes :Login : adminPassword : admin

    Lors du premier lancement, renseignez les champs avec ces deux valeurs. Ensuite, ilvous sera demand un nouveau mot de passe pour l'utilisateur admin.

    Je vais ici, indiquer toutes les tapes de la cration de graphiques pour la supervision dutrafic rseau. Beaucoup dautres possibilits sont bien sur disponibles.Slectionnez Devices dans le menu de gauche. La page de tous les devices existantss'affiche. Choisissez ensuite Add : une liste de champs apparat vous permettant derenseigner les premires informations ncessaires la cration du device.

    Description : Serveur Voip Hostname : Adresse IP de lhte Host Template : Generic SNMP-enabled Host

    Cliquez sur Create afin de mettre jour votre configuration.

    Deux nouvelles rubriques sont maintenant disponibles. Dans celle intitule 'Associated

  • 8/9/2019 Cacti Asterisk

    9/19

    Graph Templates' slectionnez via la liste droulant le type de graphique que voussouhaitez. Pressez Add pour l'ajouter la liste des graphs du device.

    Cration supplmentaire des graphiquesIl est maintenant possible de crer dautres graphiques. Choisissez 'New Graphs' dansle menu de gauche puis slectionnez la configuration que l'on vient de crer. Lesgraphiques pouvant tre gnrs apparaissent.

    Classement des donnes

    Les graphiques de Cacti peuvent tre classs suivant diffrents niveaux l'aide d'unarbre pour une meilleure gestion et visibilit des htes sur notre rseau. On va donccrer un nouveau niveau dans l'arbre par dfaut pour y stocker nos graphiques.Choisissez Default Tree en haut gauche.Des champs concernant la configuration de la nouvelle branche de notre arbre

    apparaissent.

    Regarder ses graphiques

    Il y a deux modes disponibles sous Cacti :

    le mode console : permet de configurer tous les graphiques et devices. le mode graphs : permet de visionner les diffrents graphiques tous ensembles,

    sparment ou par catgories.

    Remarque :Il faut attendre un peu avant de voir s'afficher les courbes qui viennentd'tre cres. Le systme rcupre les nouvelles donnes en fonction du temps attribudans notre crontab configure prcdemment.

    3- Intgration de scripts personnaliss dans CactiCacti propose bon nombre de fonction par dfaut, ainsi que de scripts dans le rpertoirepar dfaut (/usr/share/cacti/site/scripts). Mais il peut tre intressant de vouloir monitorerd'autre fonctionnalit de sa machine. Nous prendrons l'exemple d'criture d'un script quipermettra de compter le nombre de channel sip simultane sur un serveur Asterisk.

    3.1- Le scriptEditer ce script [AMI2.pl] en ajoutant le nom dutilisateur et le mot de passe crer dansmanager.conf dAsterisk.

    Notre script [AMI2.pl] tant prt nous le dposons dans le rpertoire d'installation decacti, plus prcisment dans le rpertoire scripts/.

    3.2- Collecte des donnes dans Cacti- Dans l'interface web, cliquez sur 'Data Input Methods' dans le sous menu 'CollectionMethods'.- Puis cliquez sur 'Add' en haut droite. La fentre ci-dessous apparat :

  • 8/9/2019 Cacti Asterisk

    10/19

    - Remplissez-la de la manire suivante :Nom : Asterisk - Sip Channels

    Input Type : Script/CommandInput String : perl /scripts/AMI2.pl - Cliquez sur 'Create'- Maintenant cliquez sur 'add' droite tu tableau 'Output Field', la fentre ci-dessousapparat :

    - Remplissez de la manire suivante :Field : SIP channelsFriendly Name : Active SIP channels

    - Cliquez sur 'Create'- Maintenant cliquez sur 'add' droite tu tableau 'Input Field', la fentre ci-dessousapparat :

  • 8/9/2019 Cacti Asterisk

    11/19

    - Remplissez de la manire suivante :Friendly Name : IP AddressSpecial Type Code : hostname- Cliquez sur 'Create'

    - Cliquez sur 'Save'

    3.3- Cration du modle de source de donnes- Cliquez sur 'Data Template' du sous menu 'Template', puis cliquez sur 'Add'- La fentre ci-dessous apparat :

    - Remplissez-la avec les informations suivantes :

  • 8/9/2019 Cacti Asterisk

    12/19

    Name : Active SIP channelsName : |host_description| - Active SIP channelsData Input Method : choisir celle correspondante ' Asterisk - Sip Channels '

    Internal Data Source Name : SIP_channelsLes autres champs restent par dfaut.

    3.4- Gnration des sources pour les graphs- Cliquez sur 'Data Source' dans le sous menu 'Management'.- Choisir l'hte concern dans la liste droulante, puis cliquez sur 'Add'- Dans la liste droulante qui apparait, choisir le modle que l'on vient de crer l'tapesuivante, puis cliquez sur 'Create'

    3.5- Crer le modle pour le graphique :

    Le graph- Cliquez sur 'Graph Template' du sous menu 'Template'.- Cliquez sur 'Add' en haut droite- Le formulaire ci-dessous apparat :

  • 8/9/2019 Cacti Asterisk

    13/19

    - Remplissez-le avec les informations ci-dessous :Name : Active Sip ChannelsName : |host_description| - Active Sip Channles

    Courbes et lgendes

    - Cliquez sur 'Add' dans le tableau 'Graph Template Item'

  • 8/9/2019 Cacti Asterisk

    14/19

    - Le formulaire ci-dessous apparat :

    - Remplissez-le comme suit :Data Source : Choisir la source de donnes Active Sip Channels dans la listeColor : couleur de la courbeGraph Item Type : type de courbe (Area)- Cliquez sur 'Create'Pour ajouter une lgende, il faut reproduire exactement la mme opration mais choisir'Legend' dans le champs 'Graph Item Type'

    3.6- Gnration du graphique partir du template- Cliquez sur 'Graph Mangement' du, vous l'aurez devinez sous menu 'Management',puis cliquez sur 'Add'- Dans le champ 'Graph Template Selection' choisir son template (cr juste avant), puisgalement les champs dans 'Data Source'.

    3.7- Ca tourne !- Voil normalement a devrait tracer, il faut attendre tout de mme quelques tours decrontab avant que a trace d'aprs ce que j'ai pu observer. Quand on parle de crontab ilfaut penser au fameux 'php /poller.php

  • 8/9/2019 Cacti Asterisk

    15/19

    Conclusion GnraleCacti est un outil de surveillance bas sur le clbre RRDTool, permettant de connatretoutes les donnes systmes des autres ordinateurs du rseau. Il les prsenteautomatiquement sous forme de graphiques consultables depuis une page web. Parailleurs, il dispose d'un systme de plugins qui le rend simple d'utilisation et trsmodulaire. Il est ainsi possible de le coupler GLPI afin de disposer dun outil de gestionpour le parc. La lecture des graphique et lexploitation des donnes est cependantbeaucoup moins agrable.La surveillance d'un systme permet de connatre sa disponibilit un instant t, maisaussi de mesurer dans le temps l'volution d'un certain nombre de paramtres telsl'occupation de l'espace disque ou la charge mmoire. Il devient alors possible par

    extrapolation de prvenir le moment de rupture du systme en prenant des mesuresprventives.

  • 8/9/2019 Cacti Asterisk

    16/19

    RfrenceExemple de connexion Asterisk-Manager via un simple client telnet

    http://condorcet.iris.free.fr/spip.php?article54Asterisk::AMIhttp://search.cpan.org/~greenbean/perl-Asterisk-AMI-0.1.10/lib/Asterisk/AMI.pm Enable Asterisk-SMP and monitor with Nagioshttp://www.danielaliaman.com/blog/files/AsteriskSNMPtutorial.pdf[Fedora 8] Installation et utilisation de cactihttp://bodman.wordpress.com/2008/01/18/fedora-8-installation-et-utilisation-de-cacti/ Cacti : monitorer votre serveurhttp://www.lanforums.com/tutorial-26_cacti_:_monitorer_votre_serveur.htmlIntgration de scripts personnaliss dans Cactihttp://www.serveur-monty.net/cours/howto/howto_script_cacti.pdf Data Input Method avec un script shell

    http://www.nuxora.com/tutorials/tutorial-cacti-data-input-method-script-shell/SNMP Server (snmpd) and Client (snmp) Installation and Configuration in Debianhttp://www.debianhelp.co.uk/snmp.htm Configurer SNMP sur un serveur pour le rendre accessible distance par Cactihttp://doc.ubuntu-fr.org/tutoriel/configurer_snmp_pour_utiliser_cacti_depuis_une_machine_distante Cacti : un serveur de supervisionhttp://doc.ubuntu-fr.org/cacti Monitoring Asterisk 1.4 with SNMP and CACTIhttp://www.voipphreak.ca/2007/04/16/monitoring-asterisk-14-with-snmp-and-cacti-for-pretty-graphs/Asterisk - Channels In Use (via res_snmp.so)

    http://forums.cacti.net/viewtopic.php?t=31296 Asterisk::Monitoringhttp://bodman.wordpress.com/category/asterisk/Asterik IP-PBX Statistics (SIP/IAX2 protocols)http://forums.cacti.net/viewtopic.php?p=111317

  • 8/9/2019 Cacti Asterisk

    17/19

    Annexe

    AMI2.pl#!/usr/bin/perl

    #############################

    # my modules

    use strict;

    use warnings;

    use POSIX;

    use Switch;

    use Asterisk::AMI;

    #############################

    # Globals

    my $astman;

    my $ast_username = 'username';my $ast_password = "password";

    my $ast_hostname=$ARGV[0];

    my $ast_port="5038";

    #############################

    # connect Acterisk Menager

    Get_Info ();

    #################################################################

    #############################

    # AMI connect

    #################################################################

    #############################

    sub AMI_connect {

    $astman = Asterisk::AMI->new(PeerAddr =>

    $ast_hostname,

    PeerPort => $ast_port,

    Username =>

    $ast_username,

    Secret =>

    $ast_password,

    Events => 'off'

    );

    unless ($astman)

    {

    print "0";

    return 0;

    }

    return 1;

    }

    #################################################################

    #############################

    # Get Sip Active Channels From Asterisk

    #################################################################

    #############################

    sub Get_Info {

    my $IDN=$_[0];

  • 8/9/2019 Cacti Asterisk

    18/19

    AMI_connect();

    unless ($astman){

    print "0";

    return 0;

    }

    my $actionid = $astman->send_action({ Action => 'Command',

    Command => "sip show

    channels"

    });

    my $response = $astman->get_response($actionid);

    my $rr2=$response->{'CMD'};

    my @aa = @$rr2;my $nbch=0;

    foreach my $i (@aa)

    {

    if (($nbch) = $i =~ /^(\d+) active SIP channels$/)

    {

    print "$nbch";

    return 1;

    }

    }

    print "0";

    return 0;

    }

  • 8/9/2019 Cacti Asterisk

    19/19

    Manager.conf;

    ; Asterisk Call Management support;

    [general]

    enabled = yes

    port = 5038

    bindaddr = 127.0.0.1,asterisk_ip_adress

    secret=test

    [test]

    secret=test

    permit=127.0.0.1

    read=system,call,log,verbose,agent,command,user

    write=system,call,log,verbose,agent,command,user

    [username]

    secret=password

    permit=cacti_ip_adress

    read=system,call,log,verbose,agent,command,user

    write=system,call,log,verbose,agent,command,user