« Mise en place de statistiques avec Cacti » : différence entre les versions
Aucun résumé des modifications |
|||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:serveur]] | [[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 37 : | 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. | <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. | ||
Ligne 59 : | Ligne 64 : | ||
sysLocation Epsilon Eridani System | sysLocation Epsilon Eridani System | ||
sysContact root <root@ | sysContact root <root@domain.tld> | ||
</pre> | </pre> | ||
Ligne 71 : | Ligne 76 : | ||
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. | <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 : | ||
Ligne 79 : | Ligne 84 : | ||
AuthDigestProvider file | AuthDigestProvider file | ||
AuthDigestDomain / | AuthDigestDomain / | ||
AuthUserFile /srv/http/admin. | AuthUserFile /srv/http/admin.domain.tld/main/.htpasswd | ||
AuthGroupFile /srv/http/admin. | AuthGroupFile /srv/http/admin.domain.tld/main/.htgroup | ||
<Limit GET POST> | <Limit GET POST> | ||
Ligne 145 : | Ligne 150 : | ||
rocommunity internal 192.168.0.0/24 | rocommunity internal 192.168.0.0/24 | ||
sysLocation Epsilon Eridani System | sysLocation Epsilon Eridani System | ||
sysContact root@celestis. | sysContact root@celestis.domain.tld | ||
</pre> | </pre> | ||
Dernière version du 16 décembre 2015 à 20:10
Tuto plus vraiment à jour (écrit a l'origine pour debian lenny)
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.
Installation
Commencez par installer les deux paquets suivants :
aptitude install cacti snmpd php5-snmp php5-cli
Durant l'installation, on vous demandera de choisir le type de serveur web que vous utilisez. Dans mon cas j'ai choisi Apache 2.
Quand l'installateur vous demandera s'il faut configurer la base de données de cacti avec dbconfig-common
, répondez oui. On vous demandera alors d'entrer le mot-de-passe de l'administrateur MySQL, puis celui qu'il faudra utiliser pour la base de donnée de Cacti.
Si vous utilisez un noyau avec patch grsecurity, ajouter l'utilisateur snmp
au groupe de restriction de <cpde>/proc ne règle pas le problème de lecture sur /proc/net/dev
ce qui empêche de récupérer les informations sur le trafic des interfaces réseaux.
Pour régler le problème, il faut modifier la ligne SNMPDOPTS
de snmpd dans /etc/default/snmpd
en ajoutant l'option -g GID
où GID est le groupe défini par la directive CONFIG_GRKERNSEC_PROC_GID
de la configuration de votre kernel.
Configuration de Apache et SNMP (lenny)
Nous allons autoriser l'accès en lecture à SNMP. Éditez /etc/snmp/snmpd.conf
comme suit :
#### # First, map the community name (COMMUNITY) into a security name # (local and mynetwork, depending on where the request is coming # from): # sec.name source community #com2sec paranoid default public com2sec readonly default public #com2sec readwrite default private
Redémarrez le service SNMP :
/etc/init.d/snmpd restart
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 /usr/share/doc/cacti/cacti.sql.gz
.
Éditez le fichier de configuration de la vhost apache sur laquelle vous souhaitez pouvoir consulter cacti et ajoutez y la ligne suivante :
Include /etc/cacti/apache.conf
Si vous utilisez open_basedir pour sécurisez le php de vos vhosts, il va falloir ajouter les répertoires /usr/share/cacti/
, /etc/cacti/
, /usr/share/php/adodb/
, /usr/bin/
, /bin/
, /sbin/
et /var/log/cacti/:/usr/share/rrdtool/fonts/
au open_basedir de votre vhost. Dans mon cas :
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/
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 à /etc/apache2/mods-enabled/php5.conf
pour y activer php :
<Directory /usr/share/cacti> php_flag engine on </Directory>
Pour que les modifications soient prises en compte, redémarrez apache :
/etc/init.d/apache2 restart
Configuration de Apache et SNMP (squeeze)
Depuis debian squeeze, il n'est plus nécessaire d'utiliser les directives com2sec
. Modifiez les lignes suivantes dans /etc/snmp/snmpd.conf
:
#accès complet à partir de localhost : rocommunity public localhost sysLocation Epsilon Eridani System sysContact root <root@domain.tld>
Redémarrez le service SNMP :
/etc/init.d/snmpd restart
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 /usr/share/doc/cacti/cacti.sql.gz
.
Éditez le fichier de configuration de la vhost apache sur laquelle vous souhaitez pouvoir consulter cacti et ajoutez y la ligne suivante :
Include /etc/cacti/apache.conf
Si vous utilisez open_basedir pour sécurisez le php de vos vhosts, il va falloir ajouter les répertoires /usr/share/cacti/
, /etc/cacti/
, /usr/share/php/adodb/
, /usr/bin/
, /bin/
, /sbin/
et /var/log/cacti/:/usr/share/rrdtool/fonts/
au open_basedir de votre vhost. Dans mon cas :
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/
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 :
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>
Assurez vous que le fichier est lisible par apache :
chgrp www-data /usr/share/cacti/site/.htaccess
Si vous utilisez les modules apache php5 et suphp, ajoutez les lignes suivantes à /etc/apache2/mods-enabled/php5.conf
pour y activer php :
<Directory /usr/share/cacti> php_flag engine on </Directory>
Pour que les modifications soient prises en compte, redémarrez apache :
/etc/init.d/apache2 restart
Configuration de Cacti
Connectez vous à l'adresse de votre vhost. Vous vous retrouvez devant le guide d'installation de Cacti. Cliquez sur Next
. A la page suivante, on vous demande de sélectionner le type d'installation. Selectionnez New install
. Normalement, cacti devrait vous indiquer la configuartion suivante :
Database User: cacti Database Hostname: Database: cacti Server Operating System Type: unix
Cliquez sur Next
. 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 Finish
. Vous êtes alors redirigé sur la page de login de cacti. Loguez vous avec l'utilisateur admin
et le mot-de-passe admin
. 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 :
Dans le menu de gauche, partie Configuration
, cliquez sur Settings
puis sur Paths
. Vérifiez qu'un fichier de font est présent à la ligne RRDTool Default Font Path
. Si aucun fichier de font n'est présent, ajoutez /usr/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
et sauvegardez.
Nous allons maintenant configurer les graphiques. Cliquez sur Devices
. Vous verrez qu'un device existe déjà. Sélectionnez le et supprimez le avec le menu déroulant.
Cliquez sur Add
pour ajouter un nouveau device. A la ligne Hostname
entrez localhost
, à la ligne Host Template
sélectionnez None
et à la ligne SNMP Version
sélectionnez Version 1
. Sauvegardez la configuration.
Nous allons maintenant configurer les graphiques. Cliquez sur le device que nous venez de créer :
- A la partie
Associated Graph Templates
vous pouvez ajouter les graphiques suivants :Linux - Memory Usage
Unix - Load Average
Unix - Logged in Users
Unix - Processes
.
- A la partie
Associated Data Queries
vous pouvez ajouter les graphiques suivants :SNMP - Get Processor Information
SNMP - Interface Statistics
Unix - Get Mounted Partitions
.
Remontez en haut de la page et cliquez sur Create Graphs for this Host
. Cochez les différents graphiques que vous souhaitez utiliser puis cliquez sur Create
.
Les graphiques sont maintenant créés. Dans quelques dizaines de minutes vous pourrez voir les premiers résultats dans l'onglet Graphs
.
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 :
aptitude install snmp snmpd
Éditez le fichier /etc/snmp/snmpd.conf
:
#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
Avec cette configuration, l'accès sera autorisé à toutes les machines sur le réseau 192.168.0.
Relancez snmpd :
/etc/init.d/snmpd restart
En ce qui concerne la configuration snmp de cacti il suffit de sélectionner les champs suivants lors de la configuration du device :
SNMP Version : Version 1 SNMP Community : internal
A la section Associated Data Queries
les graphiques :
SNMP - Get Mounted Partitions
permet d'obtenir l'état de toutes les partitions (y compris le taux d'utilisation de la mémoire et du swap)SNMP - Interface Statistics
permet d'obtenir les statistiques réseaux.SNMP - Get Processor Information
A la section Associated Graph Templates
, vous pouvez utiliser les graphiques :
ucd/net - CPU Usage
Host MIB - Logged in Users
ucd/net - Load Average
ucd/net - Memory Usage
Configuration de SNMP et Cacti pour récupérer les statistiques d'un serveur distant
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 :
aptitude install snmp snmpd
Éditez le fichier /etc/snmp/snmpd.conf
:
#permet d'écouter sur l'ip 87.98.136.217 et sur toutes les ipv6 agentaddress 87.98.136.217,udp6:161
Éditez le fichier /var/lib/snmp/snmpd.conf
:
createUser system SHA "abcdefgh" DES
N'oubliez pas de remplacer le abcdefgh
par un mot-de-passe de votre choix !
Éditez le fichier /etc/snmp/snmpd.conf
:
rouser system
Relancez snmpd :
/etc/init.d/snmpd restart
Vous pouvez tester si tout fonctionne bien avec la commande suivante sur votre serveur principal :
snmpget -v 3 -l AuthNoPriv -u system -A abcdefgh 87.98.136.217 sysName.0
En ce qui concerne la configuration snmp de cacti il suffit de sélectionner les champs suivants lors de la configuration du device :
SNMP Version : Version 3 SNMP Username (v3) : system SNMP Password (v3) : abcdefgh SNMP Privacy Passphrase (v3) : abcdefgh
A la section Associated Data Queries
le graphique SNMP - Get Mounted Partitions
permet d'obtenir l'état de toutes les partitions (y compris le taux d'utilisation de la mémoire et du swap) et le graphique SNMP - Interface Statistics
permet d'obtenir les statistiques réseaux.
A la section Associated Graph Templates
, vous pouvez utiliser les graphiques ucd/net - CPU Usage
, Host MIB - Logged in Users
, ucd/net - Load Average
et ucd/net - Memory Usage
.