Cacti

Cacti est une solution complète de création de graphiques de systèmes et réseaux.

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

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 :

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 :
  1. ucd/net - CPU Usage (enhanced)
  2. ucd/net - Load Average (enhanced) 
  3. ucd/net - Memory Usage (enhanced)
  4. ucd/net - Processes
  5. ucd/net - TCP Counters
  6. ucd/net - TCP Current Established
  7. ucd/net - Uptime
  8. ucd/net - Users Logged On
  9. SNMP - Get Mounted Partitions
  10. SNMP - Interface Statistics
  • Cliquez sur Save
  • Désormais en haut cliquez sur “Create Graphs for this Host”
  • Sélectionner tout et cliquez sur “Create”

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

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
Vous pourriez laisser un commentaire si vous étiez connecté.