====== 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 : * MacTrack : [[http://docs.cacti.net/plugin:mactrack#mactrack]] * Intropage : [[http://docs.cacti.net/userplugin:intropage#intropage]] * Ipsubnet : [[http://docs.cacti.net/userplugin:ipsubnet#ipsubnet]] * Weathermap : [[http://docs.cacti.net/userplugin:weathermap#weathermap]] * Thold : [[http://docs.cacti.net/plugin:thold#thold]] ===== Template Linux ===== Un template complet de graph pour les serveurs linux est disponible ici : http://docs.cacti.net/usertemplate:host:linux:generic {{ :supervision_et_metrologie:capture_graph_linux.png |}} ====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