Cacti 0.8.8b Installation Over Active Directory Ubuntu 14.04

Pré-requis

  • Un LAMP
  • Un domaine fonctionnel sous Active Directory

Installation

  • L'installation depuis les paquets permet un paramétrage assez complet (crontab, permissions, binaires…) :

apt-get install php5-ldap libphp-adodb librrd4 php5-cli php5-snmp rrdtool dbconfig-common cacti cacti-spine snmp-mibs-downloader snmp snmpd

  • Répondre aux questions posées :
Mise à jour du php.ini Ok
Server web apache2
Faut-il configurer la base de données de cacti avec dbconfig-common Oui
Mot de passe de l'administrateur de la base de données MySQL_Password
Mot de passe de connexion MySQL pour cacti Cacti_Password
Confirmation du mot de passe Cacti_Password
Configurer la base avec dbconfig-common Oui
  • Pas la peine de se connecter au serveur pour procéder à sa mise à jour.

Mise à jour

Site

cd /usr/src
wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
tar -xzf cacti-0.8.8b.tar.gz
mv /usr/share/cacti/site/ /usr/share/cacti/_site/
mv cacti-0.8.8b /usr/share/cacti/site/
chown www-data:www-data -R /usr/share/cacti/site/{rra,log}

VHost

  • Création du VirtualHost :

cat > /etc/apache2/sites-available/cacti.conf << EOF

<VirtualHost 192.168.1.10:80>

        ServerName              chronos
        ServerAlias             chronos
        Redirect                / https://chronos

        ErrorLog                /var/log/apache2/chronos.log
        CustomLog               /var/log/apache2/chronos.log combined

</VirtualHost>

Alias /cacti /usr/share/cacti/site

<DirectoryMatch /usr/share/cacti/site>
        Options +FollowSymLinks
        AllowOverride None
        order allow,deny
        allow from all

        AddType application/x-httpd-php .php

        php_flag magic_quotes_gpc Off
        php_flag short_open_tag On
        php_flag register_globals Off
        php_flag register_argc_argv On
        php_flag track_vars On
        # this setting is necessary for some locales
        php_value mbstring.func_overload 0
        php_value include_path .

        DirectoryIndex index.php
</DirectoryMatch>

<VirtualHost 192.168.1.10:443>

        ServerName              chronos
        DocumentRoot            /usr/share/cacti/site

        ErrorLog                /var/log/apache2/chronos.log
        CustomLog               /var/log/apache2/chronos.log combined

        Options                 +Indexes +SymlinksIfOwnerMatch
        IndexOptions            NameWidth=* +SuppressDescription

        SSLEngine               on
        SSLCertificateFile      /etc/apache2/ssl/chronos.crt
        SSLCertificateKeyFile   /etc/apache2/ssl/chronos.key

</VirtualHost>
EOF

  • Supprimer les fichiers de configurations (obsolètes) :

a2ensite cacti.conf
rm /etc/apache2/conf-{enabled,available}/cacti.conf
service apache2 restart

Crontab

  • On vérifie que la tâche planifiée est créée pour lancer le script poller.php :

cat /etc/cron.d/cacti

  • On peut vérifier les détails dans le fichier de log :

tailf /var/log/cacti/poller-error.log

Base de données

  • Lancer les commandes pour la configuration de la base de données, saisie des mdp et comptes utilisés par MySQL :

read -e -p "Mot de passe du compte root pour MySQL : " mysqlpass
read -e -p "Nom de la base utilsee pour cacti : " -i "cacti" cactidb
read -e -p "Utilisateur de connexion a la base cacti : " cactiuser
read -e -p "Mot de passe du compte pour la base cacti : " cactipass

  • Sauvegarde, suppression et création de la BDD :

mysql -u root -e "create database _cacti" --password=$mysqlpass
mysqldump -u root --password=$mysqlpass cacti | mysql -u root --password=$mysqlpass -h localhost _cacti
mysql -u root -e "drop database cacti" --password=$mysqlpass
mysql -u root -e "create database cacti" --password=$mysqlpass
mysql cacti < /usr/share/cacti/site/cacti.sql --password=$mysqlpass
mysql -u root -e "GRANT ALL ON $cactidb.* TO $cactiuser@localhost IDENTIFIED BY '$cactipass'" --password=$mysqlpass

  • Modification du fichier de configuration :

sed -i "s,database_default = "cacti",database_default = "${cactidb}" /usr/share/cacti/site/include/config.php
sed -i "s,username = "cactiuser",username = "${cactiuser}",g' /usr/share/cacti/site/include/config.php
sed -i "s,cactiuser,${cactipass},g" /usr/share/cacti/site/include/config.php

PHP

  • Vérifier que les modules nécessaires sont activés :

for i in cgi cli apache2; do cat /etc/php5/$i/php.ini | more; done

SNMP

  • Pour rendre accessible les MIB au travers de SNMP :

cp  /etc/snmp/snmpd.conf{,.ori}
sed -i "s,agentAddress  udp:127.0.0.1:161,agentAddress  udp:0.0.0.0:161,g" /etc/snmp/snmpd.conf
sed -i 's,-V systemonly,,g' /etc/snmp/snmpd.conf
sed -i 's,export MIBS=,export MIBS=ALL,g' /etc/default/snmpd
/etc/init.d/snmpd restart

Connexion à l'interface Web

  • Se connecter à l'adresse http://chronos et répondre au questions :
Cacti Installation Guide Next
New Install Next
Check – OK Finish
Utilisateur admin
Mot de passe admin
  • A la première connexion, l'application force le changement du mot de passe, changer le. Si on attend un peu on peu voir 4 jolis graphes afficher les infos de notre serveur :o)

Settings

General


Path

  • Vérifier que tout est renseigné, en installation manuelle il manque le chemin de la police pour RRDTool Default Font
RRDTool Default Font /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf

Poller


Graph Export


Visual


Authentification

Authentification LDAP

  • Configuration / Settings / Authentication :
Active Directory
General
Authentication Method LDAP Authentification
Special Users
Guest User No User
User Template Admin
LDAP General Settings
Server ldap.domain.tld
Port Standard 389
Port SSL 636
Protocol Version Version3
Encryption None
Referrals Enable
Mode Specific Searching
Distinguished Name (DN) <username>@test.lan
Require Group Membership coché
LDAP Group Settings
Group Distingished Name (DN) cn=cacti-group,ou=Users,dc=test,dc=lan
Group Member Attribute member
Group Member Type Distingished Name
LDAP Specific Search Settings
Search Base ou=Users,dc=test,dc=lan
Search Filter (&(objectclass=user)(objectcategory=user)(userPrincipalName=<username>*))
Search Distingished Name (DN) bind-cacti@test.lan
Search Password Password
LDAP Error: Group DN could not be found to compare
LDAP Search Error: Unable to find users DN

Plugins

Installer et activer un plugin

  • Trois actions sont requises pour installer un plugin, le télécharger, le décompresser et l'activer.
  • Les deux premières se font en ligne de commande :

cd /usr/share/cacti/site/plugins
wget http://docs.cacti.net/_media/mon_plugin.2.0.3.tgz
tar -xzf mon_plugin.2.0.3.tgz

  • La dernière à partir de l'interface d'administration (Console) :
    • Se rendre sur l'onglet Console / Plugin Management
    1. Actions : Install plugin (flèche bleue)
    2. Actions : Enable plugin (flèche verte)

Discovery

  • En ligne de commande :

cd /usr/share/cacti/site/plugins
wget http://docs.cacti.net/_media/plugin:discovery-v1.5-1.tgz
mv plugin:discovery-v1.5-1.tgz discovery-v1.5-1.tgz
tar -xzf discovery-v1.5-1.tgz

  • Activer le plugin et le paramétrer :
    • Console / Settings / Misc
Subnet(s) to scan 192.168.1.0/24
DNS Server 192.168.1.1
Ping Method ICMP
SNMP Communities public
Poller Frequency Every 1 Hour
Start Time for Polling 10
Rerun Data Queries coché
Create Graphs coché
  • Vérifier les droits liés à l'utilisateur :
    • Console / User Management / compteLDAP :
    • Dans Realm Permissions, cocher View Host Auto-Discovery
  • L'onglet discover doit normalement apparaitre :o)

SSO

  • piste : auth_login.php cacti ldap sso

Sources

Debug

  • En cas de problème de connexion avec la base de données :

dpkg-reconfigure cacti

  • Pour info, le répertoire des logs se trouve dans :

/var/log/cacti/