Cacti
Introduction
Cacti est une solution complète de création de graphiques de systèmes et réseaux.
Installation
Sur une VM dédiée à Cacti:
apt-get install cacti > passwdMysql > passwd Cacti > confirmation passwd cacti
Avec un navigateur web : http://ip.du.serveur/cacti/install/
Next > New install > Si tout est vert : Finish
- Login : admin
- Password : admin
Une fois connecté, il vous est demandé de changer le mot de passe
Installation d'un plugin
Il existe une multitude de plugin disponible ici : http://docs.cacti.net/plugins
Il suffit de télécharger le plugin, le décompresser et le placer dans le répertoire “plugins” Chaque plugin doit correspondre à un dossier.
Ils apparaissent ensuite dans l'interface graphique de Cacti dans Configuration > Plugin Management
- Pour l'installer : on doit cliquer sur la flèche bleue
- Pour l'activer : on doit cliquer sur la flèche verte
Les 2 flèches passent au rouge quand le plugin est installé et activé.
Voici une liste de plugin très utile pour un Admin Réseau :
Template Linux
Un template complet de graph pour les serveurs linux est disponible ici : http://docs.cacti.net/usertemplate:host:linux:generic
Ajout du template
- Unzip l'archive
- Via la console cacti, cliquez sur “Import Templates” et importez “cacti_host_template_*.xml”
Mise en place du template sur un "device"
- Créer un nouveau “device”
- Appliquez le “Host Template” ( 3eme ligne ) sur Linux-Generic
- les “Associated Graph Templates” suivants s'ajoutent automatiquement :
- ucd/net - CPU Usage (enhanced)
- ucd/net - Load Average (enhanced) 
- ucd/net - Memory Usage (enhanced)
- ucd/net - Processes
- ucd/net - TCP Counters
- ucd/net - TCP Current Established
- ucd/net - Uptime
- ucd/net - Users Logged On
- SNMP - Get Mounted Partitions
- SNMP - Interface Statistics
- Cliquez sur Save
- Désormais en haut cliquez sur “Create Graphs for this Host”
- Sélectionner tout et cliquez sur “Create”
Template Mysql
Il est primordial de grapher ces bases de données ( détection de problèmes, anticipation de dimensionnement de serveur, … )
+ d'infos : https://www.percona.com/doc/percona-monitoring-plugins/1.1/cacti/mysql-templates.html
Base de données
GRANT SUPER, PROCESS ON *.* TO 'userCacti'@'IPH.OST.CAC.TI' IDENTIFIED BY "PassWd";
- Ne pas oublier d'autoriser l'écoute distante de mariadb ( /etc/my.cnf : bind)
Ajout du template
wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.5/percona-cacti-templates-1.1.5-1.noarch.rpm rpm -ivh percona-cacti-templates-1.1.5-1.noarch.rpm cd /usr/share/cacti/resource/percona/templates/ php /usr/share/cacti/cli/import_template.php --filename=cacti_host_template_percona_nginx_server_ht_0.8.6i-sver1.1.5.xml --with-user-rras='1:2:3:4' cd /usr/share/cacti/scripts/ php ss_get_mysql_stats.php --host IP.HO.ST.DB --user userCacti --items ns,nt,nu,nv,nw --pass PassWd
Check un nombre de process ( imap, apache... )
Configuration sur le serveur
vim /usr/local/bin/check_nb_process_apache.sh
#!/bin/sh # Get nombre de process apache pour cacti NBPROCESSAPACHE=`/usr/bin/pgrep httpd | wc -l` exit $NBPROCESSAPACHE
vim /etc/snmp/snmpd.conf
... extend check_nb_process_apache /bin/bash /usr/local/bin/check_nb_process_apache.sh
Obtenir l'OID
Ce qui nous intéresse : NET-SNMP-EXTEND-MIB::nsExtendResult.“check_nb_process_apache” = INTEGER: 25
snmptranslate -On NET-SNMP-EXTEND-MIB::nsExtendResult.\"check_nb_process_apache\" .1.3.6.1.4.1.8072.1.3.2.3.1.4.23.99.104.101.99.107.95.110.98.95.112.114.111.99.101.115.115.95.97.112.97.99.104.101
Problème sur Centos7
Sur Centos 7 meme avec selinux disabled
[root@proxy1 ~]# snmpwalk -v 2c -c public localhost nsExtendOutput1 NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."check_nb_process_apache" = STRING: /bin/bash: /usr/local/bin/check_nb_process_apache.sh: Permission denied NET-SNMP-EXTEND-MIB::nsExtendOutputFull."check_nb_process_apache" = STRING: /bin/bash: /usr/local/bin/check_nb_process_apache.sh: Permission denied NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."check_nb_process_apache" = INTEGER: 1 NET-SNMP-EXTEND-MIB::nsExtendResult."check_nb_process_apache" = INTEGER: 126
chmod a+x /usr/local/bin/check_nb_process_apache.sh tail -f /var/log/audit/audit.log | grep snmp type=AVC msg=audit(1455529906.808:34701): avc: denied { read } for pid=6512 comm="bash" name="check_nb_process_apache.sh" dev="dm-3" ino=8388742 scontext=system_u:system_r:snmpd_t:s0 tcontext=unconfined_u:object_r:default_t:s0 tclass=file
Solution :
chcon -t snmpd_exec_t /usr/local/bin/check_nb_process_apache.sh
[root@proxy1 ~]# snmpwalk -v 2c -c public localhost nsExtendOutput1 NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."check_nb_process_apache" = STRING: NET-SNMP-EXTEND-MIB::nsExtendOutputFull."check_nb_process_apache" = STRING: NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."check_nb_process_apache" = INTEGER: 1 NET-SNMP-EXTEND-MIB::nsExtendResult."check_nb_process_apache" = INTEGER: 33
Configuration Cacti
- Data Sources > ADD
- Selected Data Template > SNMP OID GENERIC
- OID = .1.3.6.1.4.1.8072.1.3.2.3.1.4.23.99.104.101.99.107.95.110.98.95.112.114.111.99.101.115.115.95.97.112.97.99.104.101
- Valeur max, cela dépend, pour des workers Apache 250 est généralement suffisant
- Type de graph : Gauge