« Mise en place de statistiques avec Cacti » : différence entre les versions

Aller à la navigation Aller à la recherche
aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
 
(22 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:serveur]]
[[Category:debian]]
[[Category:debian]]
[[Category:monitoring]]
'''<span style="color: red;">Tuto plus vraiment à jour (écrit a l'origine pour debian lenny)</span>'''
[[Category:toupdate]]
Le logiciel de statistiques mrtg est de plus en plus souvent délaissé au profit de rddtool. Plus complet mais aussi plus difficile à configurer, des outils comme Cacti permettent de faciliter son utilisation.
Le logiciel de statistiques mrtg est de plus en plus souvent délaissé au profit de rddtool. Plus complet mais aussi plus difficile à configurer, des outils comme Cacti permettent de faciliter son utilisation.


Ligne 13 : Ligne 19 :
Pour régler le problème, il faut modifier la ligne <code>SNMPDOPTS</code> de snmpd dans <code>/etc/default/snmpd</code> en ajoutant l'option <code>-g GID</code> où GID est le groupe défini par la directive <code>CONFIG_GRKERNSEC_PROC_GID</code> de la configuration de votre kernel.
Pour régler le problème, il faut modifier la ligne <code>SNMPDOPTS</code> de snmpd dans <code>/etc/default/snmpd</code> en ajoutant l'option <code>-g GID</code> où GID est le groupe défini par la directive <code>CONFIG_GRKERNSEC_PROC_GID</code> de la configuration de votre kernel.


=Configuration de Apache et SNMP=
=Configuration de Apache et SNMP (lenny)=


Nous allons autoriser l'accès en lecture à SNMP. Éditez <code>/etc/snmp/snmpd.conf</code> comme suit :
Nous allons autoriser l'accès en lecture à SNMP. Éditez <code>/etc/snmp/snmpd.conf</code> comme suit :
Ligne 36 : Ligne 42 :


Si vous utilisez open_basedir pour sécurisez le php de vos vhosts, il va falloir ajouter les répertoires <code>/usr/share/cacti/</code>, <code>/etc/cacti/</code>, <code>/usr/share/php/adodb/</code>, <code>/usr/bin/</code>, <code>/bin/</code>, <code>/sbin/</code> et <code>/var/log/cacti/:/usr/share/rrdtool/fonts/</code> au open_basedir de votre vhost. Dans mon cas :
Si vous utilisez open_basedir pour sécurisez le php de vos vhosts, il va falloir ajouter les répertoires <code>/usr/share/cacti/</code>, <code>/etc/cacti/</code>, <code>/usr/share/php/adodb/</code>, <code>/usr/bin/</code>, <code>/bin/</code>, <code>/sbin/</code> et <code>/var/log/cacti/:/usr/share/rrdtool/fonts/</code> au open_basedir de votre vhost. Dans mon cas :
<pre>php_admin_value open_basedir /srv/http/admin.csnu.org/:/usr/share/cacti/:/etc/cacti/:/usr/share/php/adodb/:/usr/bin/:/bin/:/sbin/:/var/log/cacti/:/usr/share/rrdtool/fonts/</pre>
<pre>php_admin_value open_basedir /srv/http/admin.domain.tld/:/usr/share/cacti/:/etc/cacti/:/usr/share/php/adodb/:/usr/bin/:/bin/:/sbin/:/var/log/cacti/:/usr/share/rrdtool/fonts/</pre>


Etant donné que vous donnez l'accès à beaucoup de répertoires, il serait peut-être bon de sécuriser le dossier /usr/share/cacti/site/ avec un .htaccess. De cette manière, en cas de faille sur cacti, vous vous assurez de que personne ne pourra l'exploiter sur votre serveur.
Etant donné que vous donnez l'accès à beaucoup de répertoires, il serait peut-être bon de sécuriser le dossier /usr/share/cacti/site/ avec un .htaccess. De cette manière, en cas de faille sur cacti, vous vous assurez de que personne ne pourra l'exploiter sur votre serveur.
Si vous utilisez les modules apache php5 et suphp, ajoutez les lignes suivantes à <code>/etc/apache2/mods-enabled/php5.conf</code> pour y activer php :
<pre>
  <Directory /usr/share/cacti>
    php_flag engine on
  </Directory>
</pre>
Pour que les modifications soient prises en compte, redémarrez apache :
<pre>/etc/init.d/apache2 restart</pre>
=Configuration de Apache et SNMP (squeeze)=
Depuis debian squeeze, il n'est plus nécessaire d'utiliser les directives <code>com2sec</code>. Modifiez les lignes suivantes dans <code>/etc/snmp/snmpd.conf</code> :
<pre>
#accès complet à partir de localhost :
rocommunity public  localhost
sysLocation    Epsilon Eridani System       
sysContact    root <root@domain.tld>
</pre>
Redémarrez le service SNMP :
<pre>/etc/init.d/snmpd restart</pre>
La base de donnée et l'utilisateur ont déjà été créés automatiquement lors de l'installation. A titre d'information, le schéma de la base de donnée de cacti se trouve dans <code>/usr/share/doc/cacti/cacti.sql.gz</code>.
Éditez le fichier de configuration de la vhost apache sur laquelle vous souhaitez pouvoir consulter cacti et ajoutez y la ligne suivante :
<pre>Include /etc/cacti/apache.conf</pre>
Si vous utilisez open_basedir pour sécurisez le php de vos vhosts, il va falloir ajouter les répertoires <code>/usr/share/cacti/</code>, <code>/etc/cacti/</code>, <code>/usr/share/php/adodb/</code>, <code>/usr/bin/</code>, <code>/bin/</code>, <code>/sbin/</code> et <code>/var/log/cacti/:/usr/share/rrdtool/fonts/</code> au open_basedir de votre vhost. Dans mon cas :
<pre>php_admin_value open_basedir /srv/http/admin.domain.tld/:/usr/share/cacti/:/etc/cacti/:/usr/share/php/adodb/:/usr/bin/:/bin/:/sbin/:/var/log/cacti/:/usr/share/rrdtool/fonts/</pre>
Etant donné que vous donnez l'accès à beaucoup de répertoires, il serait peut-être bon de sécuriser le dossier /usr/share/cacti/site/ avec un .htaccess. De cette manière, en cas de faille sur cacti, vous vous assurez de que personne ne pourra l'exploiter sur votre serveur :
<pre>
AuthType Digest
AuthName "administration interface"
AuthDigestProvider file
AuthDigestDomain /
AuthUserFile /srv/http/admin.domain.tld/main/.htpasswd
AuthGroupFile /srv/http/admin.domain.tld/main/.htgroup
<Limit GET POST>
  require group root
</Limit>
</pre>
Assurez vous que le fichier est lisible par apache :
<pre>chgrp www-data /usr/share/cacti/site/.htaccess</pre>
Si vous utilisez les modules apache php5 et suphp, ajoutez les lignes suivantes à <code>/etc/apache2/mods-enabled/php5.conf</code> pour y activer php :
<pre>
  <Directory /usr/share/cacti>
    php_flag engine on
  </Directory>
</pre>


Pour que les modifications soient prises en compte, redémarrez apache :
Pour que les modifications soient prises en compte, redémarrez apache :
Ligne 45 : Ligne 107 :
=Configuration de Cacti=
=Configuration de Cacti=


Connectez vous à l'adresse de votre vhost. Vous vous retrouvez devant le guide d'installation de Cacti. Cliquez sur <code>Next</code>. A la page suivante, on vous demande de sélectionner le type d'installation. Selectionnez <code>New install</code> et cliquez sur <code>Next</code>. La dernière page récapitule la présence des différents binaires nécessaires. Si vous n'avez aucune erreur, vous pouvez cliquer sur <code>Finish</code>. Vous êtes alors redirigé sur la page de login de cacti. Loguez vous avec l'utilisateur <code>admin</code> et le mot-de-passe <code>admin</code>. Cacti vous demandera immédiatement de choisir un nouveau mot-de-passe puis vous vous retrouverez sur la page principale de Cacti.
Connectez vous à l'adresse de votre vhost. Vous vous retrouvez devant le guide d'installation de Cacti. Cliquez sur <code>Next</code>. A la page suivante, on vous demande de sélectionner le type d'installation. Selectionnez <code>New install</code>. Normalement, cacti devrait vous indiquer la configuartion suivante :
<pre>
Database User: cacti
Database Hostname:
Database: cacti
Server Operating System Type: unix
</pre>
 
Cliquez sur <code>Next</code>. La dernière page récapitule la présence des différents binaires nécessaires. Si vous n'avez aucune erreur, vous pouvez cliquer sur <code>Finish</code>. Vous êtes alors redirigé sur la page de login de cacti. Loguez vous avec l'utilisateur <code>admin</code> et le mot-de-passe <code>admin</code>. Cacti vous demandera immédiatement de choisir un nouveau mot-de-passe puis vous vous retrouverez sur la page principale de Cacti.


''Pour debian lenny uniquement : sélection de la police :''<br />
Dans le menu de gauche, partie <code>Configuration</code>, cliquez sur <code>Settings</code> puis sur <code>Paths</code>. Vérifiez qu'un fichier de font est présent à la ligne <code>RRDTool Default Font Path</code>. Si aucun fichier de font n'est présent, ajoutez <code>/usr/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf</code> et sauvegardez.
Dans le menu de gauche, partie <code>Configuration</code>, cliquez sur <code>Settings</code> puis sur <code>Paths</code>. Vérifiez qu'un fichier de font est présent à la ligne <code>RRDTool Default Font Path</code>. Si aucun fichier de font n'est présent, ajoutez <code>/usr/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf</code> et sauvegardez.
Nous allons maintenant configurer les graphiques. Cliquez sur <code>Devices</code>. Vous verrez qu'un device existe déjà. Sélectionnez le et supprimez le avec le menu déroulant.
Nous allons maintenant configurer les graphiques. Cliquez sur <code>Devices</code>. Vous verrez qu'un device existe déjà. Sélectionnez le et supprimez le avec le menu déroulant.


Cliquez sur <code>Add</code> pour ajouter un nouveau device. A la ligne <code>Hostname</code> entrez <code>localhost</code>, à la ligne <code>Host Template</code> sélectionnez <code>None</code> et à la ligne <code>SNMP Version</code> sélectionnez <code>Version 1</code>. Sauvegardez la configuration.
Cliquez sur <code>Add</code> pour ajouter un nouveau device. A la ligne <code>Hostname</code> entrez <code>localhost</code>, à la ligne <code>Host Template</code> sélectionnez <code>None</code> et à la ligne <code>SNMP Version</code> sélectionnez <code>Version 1</code>. Sauvegardez la configuration.


Nous allons maintenant configurer les graphiques. Cliquez sur le device que nous venez de créer.<br></br>
Nous allons maintenant configurer les graphiques. Cliquez sur le device que nous venez de créer :
A la partie <code>Associated Graph Templates</code> vous pouvez ajouter les graphiques <code>Linux - Memory Usage</code>, <code>Unix - Load Average</code>, <code>Unix - Logged in Users</code> et <code>Unix - Processes</code>.<br></br>
* A la partie <code>Associated Graph Templates</code> vous pouvez ajouter les graphiques suivants :
A la partie <code>Associated Data Queries</code> vous pouvez ajouter les graphiques <code>SNMP - Get Processor Information</code>, <code>SNMP - Interface Statistics</code> et <code>Unix - Get Mounted Partitions</code>.
**<code>Linux - Memory Usage</code>
**<code>Unix - Load Average</code>
**<code>Unix - Logged in Users</code>
**<code>Unix - Processes</code>.
* A la partie <code>Associated Data Queries</code> vous pouvez ajouter les graphiques suivants :
**<code>SNMP - Get Processor Information</code>
**<code>SNMP - Interface Statistics</code>
**<code>Unix - Get Mounted Partitions</code>.


Remontez en haut de la page et cliquez sur <code>Create Graphs for this Host</code>. Cochez les différents graphiques que vous souhaitez utiliser puis cliquez sur <code>Create</code>.
Remontez en haut de la page et cliquez sur <code>Create Graphs for this Host</code>. Cochez les différents graphiques que vous souhaitez utiliser puis cliquez sur <code>Create</code>.
Les graphiques sont maintenant créés. Dans quelques dizaines de minutes vous pourrez voir les premiers résultats dans l'onglet <code>Graphs</code>.
Les graphiques sont maintenant créés. Dans quelques dizaines de minutes vous pourrez voir les premiers résultats dans l'onglet <code>Graphs</code>.
=Configuration de SNMP et Cacti pour récupérer les statistiques d'un serveur local=
Nous allons voir comment configurer snmp sur un serveur distant afin de récupérer ses statistiques sur notre cacti.
Installez snmp sur le serveur distant :
<pre>aptitude install snmp snmpd</pre>
Éditez le fichier <code>/etc/snmp/snmpd.conf</code> :
<pre>
#permet d'écouter sur l'ip 87.98.136.217 et sur toutes les ipv6
agentAddress  udp:127.0.0.1:161,udp:192.168.0.2:161
rocommunity internal  192.168.0.0/24
sysLocation    Epsilon Eridani System
sysContact    root@celestis.domain.tld
</pre>
Avec cette configuration, l'accès sera autorisé à toutes les machines sur le réseau 192.168.0.
Relancez snmpd :
<pre>/etc/init.d/snmpd restart</pre>
En ce qui concerne la configuration snmp de cacti il suffit de sélectionner les champs suivants lors de la configuration du device :
<pre>
SNMP Version : Version 1
SNMP Community : internal
</pre>
A la section <code>Associated Data Queries</code> les graphiques :
* <code>SNMP - Get Mounted Partitions</code> permet d'obtenir l'état de toutes les partitions (y compris le taux d'utilisation de la mémoire et du swap)
* <code>SNMP - Interface Statistics</code> permet d'obtenir les statistiques réseaux.
* <code>SNMP - Get Processor Information</code>
A la section <code>Associated Graph Templates</code>, vous pouvez utiliser les graphiques :
* <code>ucd/net - CPU Usage</code>
* <code>Host MIB - Logged in Users</code>
* <code>ucd/net - Load Average</code>
* <code>ucd/net - Memory Usage</code>


=Configuration de SNMP et Cacti pour récupérer les statistiques d'un serveur distant=
=Configuration de SNMP et Cacti pour récupérer les statistiques d'un serveur distant=
Ligne 63 : Ligne 180 :
Nous allons voir comment configurer snmp sur un serveur distant afin de récupérer ses statistiques sur notre cacti.
Nous allons voir comment configurer snmp sur un serveur distant afin de récupérer ses statistiques sur notre cacti.


Installez cacti sur le serveur distant :
Installez snmp sur le serveur distant :
<pre>aptitude install snmp snmpd</pre>
<pre>aptitude install snmp snmpd</pre>


Ligne 70 : Ligne 187 :
#permet d'écouter sur l'ip 87.98.136.217 et sur toutes les ipv6
#permet d'écouter sur l'ip 87.98.136.217 et sur toutes les ipv6
agentaddress 87.98.136.217,udp6:161
agentaddress 87.98.136.217,udp6:161
</pre>


#com2sec paranoid default        public
Éditez le fichier <code>/var/lib/snmp/snmpd.conf</code> :
#com2sec readonly  default        public
<pre>
#com2sec readwrite default        private
createUser system  SHA "abcdefgh" DES
</pre>
N'oubliez pas de remplacer le <code>abcdefgh</code> par un mot-de-passe de votre choix !


#Créé un utilisateur system avec le mot-de-passe abcdefgh
Éditez le fichier <code>/etc/snmp/snmpd.conf</code> :
createUser system MD5 abcdefgh DES
<pre>
group groupv3            usm      system
rouser  system
view    all included  .iso      80
access groupv3        ""        any      auth      exact    all        all        all
</pre>
</pre>
N'oubliez pas de remplacer le <code>abcdefgh</code> par un mot-de-passe de votre choix !


Relancez snmpd :
Relancez snmpd :
4 203

modifications

Menu de navigation