Reporting journalier pour Nagios

nagios daily report
nagios daily report

Nagios n’inclus pas de modules par défaut permettant d’exporter des rapports journalier.

Ce tutorial va nous permettre d’exporter des rapports journalier au format pdf, puis de nous les envoyer automatiquement par mail grâce à un script shell ainsi qu’un Cron Job.

Avant de passer à la partie scripting, nous allons installer wkhtmltopdf, outils qui va nous permettre de convertir une page HTML au format PDF, tout en gardant le CSS ainsi que les images.

# cd /root
# wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2
# tar -jxvf wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2

Nous allons également installer sharutils, requis pour envoyer des pièces jointes par mail (avec la commande uuencode)

# yum install sharutils

Passons maintenant au scripting,

Le but premier est d’exporter notre page reporting nagios au format html (avec le css ainsi que les images):

# wget -p -r –user nagiosadmin –password ‘nagiosadmin’  –convert-links   “http://127.0.0.1/nagios/cgi-bin/avail.cgi?show_log_entries=&host=Host1&service=all&timeperiod=yesterday&timeperiod=24×7”

Cette commande va exporter notre page tout en gardant l’arborescence, nous allons ensuite modifier le nom de notre page (qui se nomme : avail.cgi?show_log_entries=&host=Host1&service=all&timeperiod=yesterday&timeperiod=24×7) :

# cd 127.0.0.1/nagios/cgi-bin/
# mv “avail.cgi?show_log_entries=&host=Host1&service=all&timeperiod=yesterday&timeperiod=24×7” report.html

Puis, nous allons convertir cette page au format PDF :

# /root/wkhtmltopdf-amd64 /root/127.0.0.1/nagios/cgi-bin/report.html report-`date +%Y%m%d`.pdf
# mv /root/127.0.0.1/nagios/cgi-bin/report-`date +%Y%m%d`.pdf /root/report-`date +%Y%m%d`.pdf

Puis supprimer notre HTML ainsi que son arborescence :

# rm -rf 127.0.0.1/

Nous allons maintenant envoyer notre rapport par mail :

# echo “Daily report Attached” > body.txt
# cat body.txt | uuencode report-`date +%Y%m%d`.pdf | mail -s “Daily Report” alexandre.nogard@live.cn

Voici le script complet (script *.sh):

# /bin/sh
cd /root
wget -p -r –user nagiosadmin –password ‘nagiosadmin’  –convert-links   “http://127.0.0.1/nagios/cgi-bin/avail.cgi?show_log_entries=&host=Host1&service=all&timeperiod=yesterday&timeperiod=24×7”
cd /root/127.0.0.1/nagios/cgi-bin/
mv “avail.cgi?show_log_entries=&host=Host1&service=all&timeperiod=yesterday&timeperiod=24×7” report.html
/root/wkhtmltopdf-amd64 /root/127.0.0.1/nagios/cgi-bin/report.html report-`date +%Y%m%d`.pdf
mv /root/127.0.0.1/nagios/cgi-bin/report-`date +%Y%m%d`.pdf /root/report-`date +%Y%m%d`.pdf
cd /root
rm -rf 127.0.0.1/
cat body.txt | uuencode report-`date +%Y%m%d`.pdf | mail -s “Daily Report” votre_adresse@mail.com

Puis nous créons un cron job, pour que tout soit fait de manière automatique :

# crontab -e
> 15 00 * * * /home/user/scrip.sh

Vous allez donc pouvoir recevoir des rapports journalier de ce style :

 

 

 

About Alexandre Nogard

Check Also

Bash Scripting : Creation de vhosts automatisés avec Certificat Lets Encrypt

Bonjour à tous, Il y a quelques temps, j’avais posté un script bash permettant de …

CentOs / RHEL : Rollback de mise à jour avec Yum history

Une mise à jour de php ou d’apache qui tourne mal, ça nous est déjà …

Twitter en CLI sur Centos 6.X

Vous avez toujours eu envie de Twitter en CLI sur CentOs ? Nous allons le …

6 comments

  1. Merci pour cet article,
    Je cherchais justement une solution pour créer des rapports journalier ! ça tombe bien, vraiment génial !

  2. Merci beaucoup, je vais immédiatement tester ce script.

  3. J’ai testé le script sur ma distribution Fedora17 et rencontré quelques erreurs. Je me suis permis de faire quelques légères modifications, notamment pour l’utilisation de mail pour joindre les fichiers, évitant d’utiliser uuencode qui ne semblait pas fonctionner sur ma machine.

    Pour ceux que ça pourrait intéresser voici le script que j’utilise :

    Dernière remarque, mes rapports PDF apparaissent sans la colorisation, seul les hôtes et services sont en bleu, mais il n’y a pas de couleur pour les différents états. Peut-être est-ce dû à la version 3.4.1 de Nagios ?

    En tout cas un grand merci pour ce script !

  4. # /bin/sh
    cd /root
    wget “http://192.168.1.251/nagios/cgi-bin/avail.cgi?show_log_entries=&host=Host1&service=all&timeperiod=yesterday&timeperiod=24×7” –http-user=nagiosadmin –http-password=nagiosweb -p -r -k
    cd /root/192.168.1.251/nagios/cgi-bin/
    mv “avail.cgi?show_log_entries=&host=Host1&service=all&timeperiod=yesterday&timeperiod=24×7” report.html
    /root/wkhtmltopdf-i386 /root/192.168.1.251/nagios/cgi-bin//report.html report-`date +%d%m%Y`.pdf
    mv /root/192.168.1.251/nagios/cgi-bin/report-`date +%d%m%Y`.pdf /root/report-`date +%d%m%Y`.pdf
    cd /root
    rm -rf 192.168.1.251/
    echo “Rapport quotidien de disponibilites des hotes et services Nagios du `date -d yesterday +%d-%m-%Y`” | mail -a report-`date +%d%m%Y`.pdf -s “Rapport quotidien : `date -d yesterday +%d-%m-%Y`” xxxx.xxxx@xxxx.com

  5. Bonjour Mercii pour le tutoriel ca serait interessant de me dire comment je fasse la meme chose pour le duo Centreon/nagios //localhost/centreon afin de generer des beaux rapport

  6. Comme Mounir j’essaye d’appliquer ton tutoriel à l’interface Centreon.
    Globalement ça marche pas mal (j’envoie le PDF en pièce jointe avec “mutt”), mais je n’arrive pas à m’identifier. La page HTML que je télécharge est donc toujours celle d’identification.
    Voici mon script : http://www.hostingpics.net/viewer.php?id=780298ReportSender.png

Leave a Reply

Your email address will not be published. Required fields are marked *