Vous êtes ici:

Menu


Stacks Image 43690
Avertissement
Ce module a été testé avec Centreon-Web version 2.5.4, il n’est pas compatible dans l’état avec les version 2.7.x. Un autre article a été réalisé pour la compatibilité.
Stacks Image 43684
Ce module permet d’envoyer des messages avec un rapport d’état de disponibilité des groupe d’hôtes et de services. Les reportings sont au format PDF et sont envoyés aux destinataires en fonction de la période choisie. Attention ce module n’a pas été réactualisé depuis quatre ans, pour qu’il fonctionne correctement, nous allons réaliser de nombreuses modifications.

1 Installation du module

Récupérez les sources avec la commande git
git clone https://github.com/Centreon-Community/centreon-pdf-reports.git
Lancez l'installation.
./install.sh -i
Vous obtiendrez le résultat suivant.
###############################################################################
# #
# Module : PDFReports version 1.0 #
# #
###############################################################################
------------------------------------------------------------------------
Checking all needed binaries
------------------------------------------------------------------------
rm OK
cp OK
mv OK
/bin/chmod OK
/bin/chown OK
echo OK
more OK
mkdir OK
find OK
/bin/grep OK
/bin/cat OK
/bin/sed OK

------------------------------------------------------------------------
Load parameters
------------------------------------------------------------------------
Please specify the directory that contains "instCentWeb.conf"
Saisissez le chemin des fichiers de configuration de Centreon généralement situé dans le dossier /etc/centreon.
> /etc/centreon

------------------------------------------------------------------------
PDFReports Module Installation
------------------------------------------------------------------------
Replacing macros OK
Setting right OK
Setting owner/group OK
Create module directory OK
Copying module OK
Copying cron file OK
Delete temp install directory OK

The pdfreports.1.0 installation is finished OK
See README and the log file for more details.
###############################################################################
# #
# Please go to the URL : http://your-server/centreon/ #
# to finish the setup #
# #
# #
###############################################################################

2 Configuration du module

Sélectionnez Administration (1) / Extensions (2) et éventuellement Setup (3) de modules.
Stacks Image 43704
Cliquez sur l’icône action pour l’installation du module
Stacks Image 43707
Cliquez sur install Module
Stacks Image 43710
Le module est installé.

3 Adaptation du module

Le fichier /etc/cron.d/pdfreports est au format MS-DOS. Nous allons enlever les ^M sur les fins de ligne. Utilisez les commandes suivantes :
apt-get install dos2unix
dos2unix /etc/crond.d/pdfreports
Il faut modifier le fichier car une syntaxe n’est par accepté par le service cron comme le montre le fichier /var/log/syslog
Oct  4 09:59:01 deb260nagios /usr/sbin/cron[1981]: (*system*pdfreports) RELOAD (/etc/cron.d/pdfreports)
Oct 4 09:59:01 deb260nagios cron[1981]: Error: bad username; while reading /etc/cron.d/pdfreports
Oct 4 09:59:01 deb260nagios /usr/sbin/cron[1981]: (*system*pdfreports) ERROR (Syntax error, this crontab file will be ignored)
Il va falloir supprimer la variable $CRONTAB_EXEC_USER dans le fichier /etc/crond.d/pdfreports car elle n’est pas accepté par le service cron. De plus l’utilisateur apache ne donne pas satisfaction pour la construction des PDF comme le montre la copie d’écran ci-dessous.
Stacks Image 43778
Erreur avec l’utilisateur apache
Nous allons utiliser l’utilisateur centreon. Nous allons préparer le dossier du module avec les commandes suivantes. adaptez les chemins en fonction de votre installation.
chown -R centreon: /usr/share/centreon/www/modules/pdfreports/
chmod 775 /usr/share/centreon/www/modules/pdfreports
Modifions, maintenant le fichier /etc/cron.d/pdfreports. Ajoutons l’utilisateur centreon et ajoutons un paramètre pour la commande de purge des fichiers.
############################
# daily at 4 am
0 4 * * * centreon /usr/bin/php -q $PDFREPORTSPURGE yesterday >> $LOGFILE_PURGE 2>&1
5 4 * * * centreon /usr/bin/php -q $PDFREPORTS yesterday >> $LOGFILE 2>&1

# weekely at 3 am
0 3 * * 0 centreon /usr/bin/php -q $PDFREPORTSPURGE thisweek >> $LOGFILE_PURGE 2>&1
5 3 * * 0 centreon /usr/bin/php -q $PDFREPORTS thisweek >> $LOGFILE 2>&1

#0 4 * * * $CRONTAB_EXEC_USER /usr/bin/php -q $PDFREPORTS last7days >> $LOGFILE 2>&1

# last day of month at 6 am
0 6 28-31 * * centreon [ `/bin/date +\%d` -gt `/bin/date +\%d -d "1 day"` ] && /usr/bin/php -q $PDFREPORTSPURGE thismonth >> $LOGFILE_PURGE 2>&1
5 6 28-31 * * centreon [ `/bin/date +\%d` -gt `/bin/date +\%d -d "1 day"` ] && /usr/bin/php -q $PDFREPORTS thismonth >> $LOGFILE 2>&1

#0 4 * * * $CRONTAB_EXEC_USER /usr/bin/php -q $PDFREPORTS last30days >> $LOGFILE 2>&1

# Every first day of the month at 4 am
0 4 1 * * centreon /usr/bin/php -q $PDFREPORTSPURGE lastmonth >> $LOGFILE_PURGE 2>&1
5 4 1 * * centreon /usr/bin/php -q $PDFREPORTS lastmonth >> $LOGFILE 2>&1

#0 4 * * * $CRONTAB_EXEC_USER /usr/bin/php -q $PDFREPORTS thisyear >> $LOGFILE 2>&1
Ce fichier servira à l’envoi automatique des reportings. Vous constaterez que seul les rapports correspondants aux périodes yesterday, thisweek, thismonth et lastmonth seront traités. Nous devons modifier le fichier /usr/share/centreon/www/modules/pdfreports/PDF-Func.php afin de rediriger la copie des fichiers PDF dans le bon répertoire.
A la ligne 123, modifiez
$pdfDirName = getGeneralOptInfo("pdfreports_path_gen") . $endYear.$endMonth.$endDay . "/";

par
$pdfDirName = getGeneralOptInfo("pdfreports_path_gen") . $path_www . "/";

A la ligne 127, modifiez
mkdir($pdfDirName);

par
mkdir($pdfDirName,0775,true);
Nous continuerons avec le fichier /usr/share/centreon/www/modules/pdfreports/cron_pdfreports.php
A la ligne 149, modifiez
$Allfiles[] = pdfGen( getMyHostGroupName($hgs_id), 'hgs', $start_date, $end_date, $stats, $l , $reportinfo["report_title"] , "" );

par
$Allfiles[] = pdfGen( getMyHostGroupName($hgs_id), 'hgs', $start_date, $end_date, $stats, $l , $reportinfo["report_title"] , $reportinfo['report_id'] );

A la ligne 165, modifiez
$Allfiles[] = pdfGen( getMyServiceGroupName($sg_id), 'sgs', $start_date, $end_date, $sg_stats, $l,  $reportinfo["report_title"] , «  »);

par
$Allfiles[] = pdfGen( getMyServiceGroupName($sg_id), 'sgs', $start_date, $end_date, $sg_stats, $l,  $reportinfo["report_title"] , $reportinfo['report_id'] );
Modifier le fichier /usr/share/centreon/www/modules/pdfreports/cron_pdfreports_purge.php
Rajoutez ceci vers la ligne 107
$period_arg = NULL;

if (count($argv) > 1)
$period_arg = $argv[1];

4 Customisation du module

Vous avez la possibilité de modifier certains paramètres généraux comme l’adresse du serveur de mail, le logo, l’adresse d’origine du mail, le chemin des reportings et l’auteur du Rapport. Sélectionnez le menu Administration / Option / Option / PDF reports
Stacks Image 43764
Customisation du module
Si vous essayez de sauvegarder tel quel, vous obtiendrez un message d’erreur car le programme ne peux créer le dossier des fichiers de reporting (/usr/share/centreon/www/modules/pdfreports/generatedFiles/).
Stacks Image 43795
Erreur d’écriture sur le dossier des reportings
créez le dossier generatedFiles avec les bons droits.
su - centreon -c 'mkdir /usr/local/centreon/www/modules/pdfreports/generatedFiles'
su - centreon -c 'chmod 775 /usr/local/centreon/www/modules/pdfreports/generatedFiles’

5 Paramétrage d’un reporting PDF

Maintenant, nous pouvons attaquez le paramétrage de notre module. PDF reports nous permet d’envoyer des reporting Hosts group et Services group. Sélectionnez le menu Configuration / PDF Reports. Cliquez sur Add
Stacks Image 43717
La page des reportings
Ajouter un reporting, saisir le nom et la description. Cliquez sur Enabled.
Stacks Image 43722
Description d’un reporting
Saisir un Titre, l’objet du message qui vous sera envoyé et le texte du corps de message. Ensuite indiqué la période souhaitée et le ou les groupes d’hôtes et services.
Stacks Image 43742
Paramétrage du reporting
Ensuite ajoutez un contact et le groupe associé (obligatoire). Paramétrez la rétention des reportings. Cliquez sur Save.
Stacks Image 43739
Notification du reporting

6 Test du module

Si vous avez bien configuré votre module, vous devriez recevoir le lendemain, votre premier reporting comme ceci
Stacks Image 43753
Exemple de message
Vous pouvez aussi forcer l’envoi d’email comme ci-dessous. Attention, le chemin doit correspondre à votre installation.
/usr/bin/php -q /usr/share/centreon/www/modules/pdfreports/cron_pdfreports.php yesterday
comments powered by Disqus
 Vous êtes ici: