Tutoriel EON

Intro

EON eyes on networks (http://www.eyesofnetwork.com/) est une distribution centos spécialisé sur le monitoring

Elle regroupes plusieurs outils est chapeautes notamment Nagios via l'interface Lillac

Nagios

Etape pour l'ajout d'une sonde d'une sonde SNMP

/srv/eyesofnetwork/nagios-3.4.1/share/images/logos
/srv/eyesofnetwork/nagios-3.4.1/plugins

Ajout d'une sonde Snmp

Repérer le noeud qu'il faut dans snmp par snmpb

snmpwalk

Véifier au snmpwalk (prendre les chiffe sauf le 1er)
snmpwalk -v1 -c public ensiprint03 | grep "3.6.1.2.1.43.8.2.1.10"
Qui me renvoie
iso.3.6.1.2.1.43.8.2.1.10.1.1 = INTEGER: 0
iso.3.6.1.2.1.43.8.2.1.10.1.2 = INTEGER: 0
iso.3.6.1.2.1.43.8.2.1.10.1.5 = INTEGER: 100
iso.3.6.1.2.1.43.8.2.1.10.1.6 = INTEGER: 0
iso.3.6.1.2.1.43.8.2.1.10.1.8 = INTEGER: 100
Ici les niveaux de mets back papier

snmpget

Cela me permet d'écrire la commande snmpget suivante
snmpget -v1 -c public ensiprint03 1.3.6.1.2.1.43.8.2.1.10.1.8
renvoie:
iso.3.6.1.2.1.43.8.2.1.10.1.8 = INTEGER: 100

Sois une commande final
snmpget -v1 -c public ensiprint03 1.3.6.1.2.1.43.8.2.1.10.1.8 | cut -d: -f4
qui renvoie 100

Mib

copier la mib des imprimante dans /usr/share/snmp/mibs

Bash

Créer un fichier bash
Le placer dans le rep /srv/eyesofnetwork/nagios-3.4.1/plugins

Hosts

Pour ajouter un Hosts aller sur nagios->configuration -menu gauche) puis network (menue haut))
Clicker sur "Add A New Child Host"

Rajouter une commande

cmd

variable

$USER1$ correspond au chemin absolu du répertoire nagios contenant les scripts.
$USER2$ représente la communauté snmp utilisée pour les tests.
$Arg1$ seuil warning (80) $Arg2$ seuil alerte (90) par exemple: pour vmstat

Command exemple

$USER1$/papier.sh $HOSTADDRESS$
on retrouve notre script bash

Exporter la conf pour nagios

Puis cliquer sur le Restart
Attendre 10s le export complet ... en vert

Erreur possible: des parenthésés dans les champs configuré précédemment

Cacti

Cacti Intro

reference cacti Le soft est basée sur rdtools qui est un systéme de base de données rotatif et générateur de png
L'onglet console sert à configurer l'outils
Les grandes étapes pour créer un graph a partir d'un script personnalisée sont

Étape création script personnalisé

Data Input Methods

Input Type

Script/Command (permet de personaliser les paramétre des scripts)

Input String:

Ici on place le script qui sera appelé (wget,toto.pl,tata.sh)
entre <> les param d'entrée

Input Fields:

Permet de décrire le paramètre

output Fields:

Permet de décrire les paramétre de retour du script

Data Templates

Data Source

name
Champ de description dans le qu'elle on peut concacténé des infos du hosts
exemple: |host_Description| - javaCpu
Data input Method
on selectionne le script que l'on veut appellé (configuration precedente)
ne pas toucher au restte

Data Source Item

Itnernal data source name
Titre description
Min ,max value:
Amplitude du graphe
Output Field
Champ a utiliser pour tracer le graph en relation avec l'etape 1

Custom Data

Placer ici la valeur si elle st la même pour tous les hosts
Sinon laisser vide et cocher la case
Cela permet d'avoir la value à remplir dans Dtat Sources

Data Sources

Permet de remplir les paramètre du template (input) en relation avec le hosts)

Data Templates Selection

Choisir le template créer précédement
Choisir sont host

Supplemental Data Template Data

Data Source Path
Fichier contenant les données
Custom Data
Les input data que l'on n'a pas remplie dans Data template

Configuration de arborescences des Graphes

Cliquez a gauche sur Graph Trees ensuite sur le root pour le renommés
On peut ensuite par le add définir une arborescence pour ranger nos graphes

Device Snmp

1
Pour un hot avec snmp (exemple routeur cisco)
Cliquez a gauche sur Device puis add
Choisir votre template (moi cisco router)
Attention a bien placer les bonnes communauté
(voir le point deux pour ma conf)
2
Si la conf est correct vous devez voir en haut à gauche les info snmp de base s'afficher
Ne pas s'inquiété du not being graphed
Cliquer sur save
Sélectionner page par page toutes les interface et cliquer sur create (en bas)
Puis "edit this host" et faire save
attendre .... 1minute

Sur l'onglet graphs previews vue ensigate va apparaitre
Les graphs prenne 5 min a ce tracer

Pendant ce temps on peut arranger l'arbre sur Graph tree
Rajouter un nœud de type host et sélectionner ensigate

Maintenant sur graph vue tree on voit ensigate

Device (sans snmp)

Passer le template sur None
Changer le mode de détection de disponibillité (downed device detection) à ping + icmp ping)

LoadAvg par perl script uptime

Sonde

Récupérer le script et le copier vers le hosts à surveiller
/srv/eyesofnetwork/cacti-0.8.8a/scripts/loadavg_multi.pl
Placer une clef ssh sans passphrase entre le serveur de monitoring et le hosts a monitorer
Attention la clef ssh doit etre fais pour le user cacti
Les script doivent revoyé sois une seul valeur
10
soit plusieur formaté comme ceci
cpu1:10 cpu2:20 cpu3:10
Le nom cpu1 sera utiliser pour extraire la value par cacti

Script connecteur

Rajouter un script bash dans /srv/eyesofnetwork/cacti-0.8.8a/scripts/dist-loadavg.bash
#!/bin/bash
set -e  # exit a la premiére erreur (code retour diff de zero)
function help(){
        echo "Passer en argument le nom du serveur Ade à tester"
        echo "Une clef ssh doit etre créer et le script loadavg_multi.pl copier sur le serveur"
        echo "exemple: ./dist-loadavg.sh hostname"
        exit 3
}
if [ -z "$1" ] #test que $1 est non vide
	then help
fi
if [ $# -ne 1 ];then #test si il y 'a bien que 1 arg
	help	
fi
ssh sinfo@$1 "perl ~/monitoring/loadavg_multi.pl"
exit 0
placer les bons droits sur le script
chown cacti:eyesofnetwork et chmod +x

Configuration Data Input

DOC CACTI
Choisir Script/Command pour interroger un script
Placer sont script avec le path complé
<hostname> permet de dir qu'il y'a un parametre nomé hostname

Faire une premier save et revenir sur le menue
Les champs d'entrée sont déduit de ce que l'on a mits entre <>
Des exempel de valeur prédéfini sont donnée en exemple comme hostname
Pour les sorties on place les noms de sortie du script (avant les :)

Counter pour un compteur qui s'incrementte sans fin comme un time stamp (ou le tps cpu utilisé depuis le debuts) il est diviser par la période d'echantillonage
Gauge pour un truc en par arpport a zero comme la taille de la ram

Configuration Data Template

Remplir la premières partie
Choisir dans Data input Method sans script dans la listes deroullante
Faire un save
Cela libere la deuxiéme partie faire ensuite un new et rajouté les trois element de sortie

Configuration mangement Data Soruce

Faire un add
Choisir notre source Dist-LoadAvg
La partie création est sauvegarde des données et terminé restes à les grapher

Templates Graphe

remplir la premiere partie
|host_description| permet de copier la description du hosts
faire un save pour debloqué la suite de la conf
clicquer sur add (en haut droite) pour ajoutter un tempalte item

Graph Management

Selectionner le host Cliquer sur add en haut a droit
Selectionner sont load avg template
puis les graphs template
save le tous

Graph tree

Passer par graph tree pour ajouter le graph

pour java

wget -q -O - http://localhost:9000/Monitoring/

Dir/bug log

localisation de cacti
/srv/eyesofnetwork/cacti-0.8.8a

Conf database
include/config.php

Passer en debug
http://docs.cacti.net/manual:087:4_help.2_debugging
http://forums.cacti.net/viewforum.php?f=2

Step1
cat /srv/eyesofnetwork/cacti-0.8.8a/log/cacti.log 02/26/2013 01:45:02 PM - SPINE: Poller[0] Host[9] ERROR: Empty result [ensicom]: '/srv/eyesofnetwork/cacti-0.8.8a/scripts/dist-loadavg.bash ensicom'
Ici la commande ne fonctionne pas en la passant je constate une coquille le script est en .sh pas bash
En deuxièmes erreur j'ai fais la clef pour le user root et non cacti
A partir de la j'ai un graph sur 3 qui marche lorsque je demande l'export csv j'ai des nand dans calc

Step2
/srv/eyesofnetwork/cacti-0.8.8a/poller.php

Tester l'appel au host id=9 (voir dans device)
) /usr/bin/spine --verbosity=5 -H 9
SCRIPT: /srv/eyesofnetwork/cacti-0.8.8a/scripts/dist-loadavg.sh ensicom, output: 1min:0.49 5min:0.31 10min:0.28 02/26/2013 04:03:53 PM - SPINE: Poller[0] DEVDBG: SQL:'INSERT INTO poller_output (local_data_id, rrd_name, time, output) VALUES (319,'','2013-02-26 16:03:53','1min:0.49 5min:0.31 10min:0.28') ON DUPLICATE KEY UPDATE output=VALUES(output)' 02/26/2013 04:03:53 PM - SPINE: Poller[0] DEVDBG: SQL:'UPDATE poller_item SET rrd_next_step=IF((rrd_next_step-300)>=0, (rrd_next_step-300), (rrd_step-300)) WHERE host_id=9' on voit bien les 3 valeur dans le insert O.o
Le fichier de la base se trouve dans /srv/eyesofnetwork/cacti-0.8.8a/rra
pour voir le contenue utiliser rdtools fetch
rrdtool fetch ensicom_applis_web_1min_319.rrd AVERAGE
La derniere mesure est toujours a nand

EN regardant de plus pret j'avais placée output field du graphe 1min avec la valeur du graph 10 min ce qui a pourris les deux graph
aprés correction bien faire un save sur els 2 et attendre

Code erreur

cacti ERROR: the RRD does not contain an RRA matching the chosen CF
ne pas mettre last dans les graph mais average

Backup

Info

Les backups ce font avec backup manager
http://doc.ubuntu-fr.org/backup-manager

Vue des databases
mysqlshow -uroot -proot66
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| cacti              |
| eonweb             |
| ged                |
| glpi               |
| lilac              |
| mysql              |
| ndoutils           |
| ocsweb             |
| test               |
+--------------------+

Les rep backupper sont
/etc , /home , /srv

backupper

Lancer un backup
sudo backup-manager
conf
/etc/backup-manager.conf
on trouvera nomtament la conf de la bd mysql

default rep
/var/archives

Restauration

Prérequi

Avant toute restauration sur une autre machine

Relever le nom de la comunauté snmp (nagios->conbfiguration->nagiosressources-> user2)
EyesOfNetwork , Ensimag , depend de l'install

mysql

cd /var/archives
bunzip2 *.bz2
Exemple de restauration
date=20130205
export date
host=xxxxx
export host
mysql -uroot -proot66 -hlocalhost -P3306 cacti < $host.imag.fr-cacti.$date.sql
mysql -uroot -proot66 -hlocalhost -P3306 eonweb < $host.imag.fr-eonweb.$date.sql
mysql -uroot -proot66 -hlocalhost -P3306 ged < $host.imag.fr-ged.$date.sql
mysql -uroot -proot66 -hlocalhost -P3306 lilac < $host.imag.fr-lilac.$date.sql
mysql -uroot -proot66 -hlocalhost -P3306 mysql < $host.imag.fr-mysql.$date.sql
mysql -uroot -proot66 -hlocalhost -P3306 ndoutils < $host.imag.fr-ndoutils.$date.sql

N'est pas couvert pas la sauvegarde
mysql -uroot -proot66 -hlocalhost -P3306 glpi < $host.imag.fr-glpi.$date.sql
mysql -uroot -proot66 -hlocalhost -P3306 ocsweb < $host.imag.fr-ocsweb.$date.sql

Répertoire

cd /var/archives
unzip *.gz
date=20130205
export date
host=xxxxx
export host
tar -xvf xxxxx.20130205.master.tar srv/eyesofnetwork/nagios-3.4.1/plugins -C /srv/eyesofnetwork/nagios-3.4.1/plugins
cp -u srv/eyesofnetwork/nagios-3.4.1/plugins/* /srv/eyesofnetwork/nagios-3.4.1/plugins/
Puis exporter vers nagios les conf lilac
et bien replacer la bonne communauté snmp