Cacti permet donc d'exporter les graphs générés sous forme d'image. Il y en a pour tous les goût. Des graphs sur 24 heures, sur une heure... Les fichiers images (au format PNG) sont accompagnées de fichiers HTML permettant sont intégration dans un site sans trop se fatiguer. En revanche, comme je souhaite conserver le theme de ce site, je ne les utiliserais pas. Je n'aborderais donc pas cet aspect.

On commence par paramétrer Cacti.

Il suffit d'aller dans le menu Settings et de choisir l'onglet Graph Export.

Là, il faudra faire un choix. Soit les images seront exploitées en local sur le Syno, soit vous voulez les uploader sur un serveur externe. J'ai opté pour la seconde possibilité mais elle a refusé de fonctionner, sans doute la faute au Syno et son Linux light. J'ai donc triché pour obtenir le résultat.

En fait, je réalise les exports en local puis je transfers les fichiers dont j'ai besoin sur le serveur de ce site via ftp avec un script bash. Comme les fichiers portent systématiquement le même nom, le script est conçu pour ne transmettre que certains PNG.

En détail :

  • Cacti exporte ses fichiers dans un dossier temporaire une fois par jour.
  • Un script se lance ensuite (via une tâche Cron) et va transférer les fichiers PNG que je souhaite utiliser (uniquement les graphs sur 24 heures) dans un autre dossier.
  • Le script va ensuite vider le dossier temporaire.
  • Pour finir, le script transfert les PNG sur le serveur distant pour l'intégration sur une page statique sur ce site.

Voici les paramètres que j'ai sélectionné :

Comme vous pouvez le voir, il n'y a rien de bien compliqué.

Il faut maintenant s'attaquer au Syno.

Le Syno étant limité, on va lui ajouter une fonction grace à IPKG, que vous aurez surement installé. Sinon, jetez un oeil sur ce billet. Tapez les commandes suivantes :

ssh root@ip-du-syno
ipkg update
ipkg upgrade
ipkg install lftp

lftp est un client ftp en ligne de commande, qui permet de transférer ou de télécharger des fichiers. Il reconnait les serveurs ftp classiques et ceux qui sont sécurisés.

Avec File Station, créez deux dossiers dans /volume1/web/cacti/ et nommez les "cactitemp" et "cactiupload". Toujours dans /volume1/web/cacti/, ajoutez le script upload_graphs.sh.
On règle les droits avec les deux commandes suivantes :

chown -R 1000:users /volume1/web/cacti/
chmod -R 777 /volume1/web/cacti/

Il faut créer la tâche cron qui lancera le script. Editez le fichier /opt/etc/crontab et ajoutez la ligne suivante.

2 12 * * * root /opt/bin/bash /volume1/web/cacti/upload_graphs.sh > /volume1/web/cacti/upload_graphs.log 2>&1

Attention, utilisez des tabulations entre les rubriques et non des espaces. Cela lancera le fichier à 12:02, soit 2 minutes après Cacti. Il faut redémarrer le cron en tapant ces deux commandes (cela évite de redémarrer le Syno) :

bash /usr/syno/etc.defaults/rc.d/S04crond.sh stop
bash /usr/syno/etc.defaults/rc.d/S04crond.sh start

Il vous reste à intégrer les fichiers générés selon votre convenance. Dans mon cas, il s'agit d'une simple page statique. Chaque image est affichée grace à un lien pointant directement sur le fichier concerné. A chaque upload, les fichiers sont écrasés puisqu'ils conservent le même nom. Du coup, pas besoin de mettre à jour les liens.

Bien sur, vous pouvez modifier le script pour retirer plus d'images ou en conserver plus. Il faudra également renseigner les paramètres de votre serveur ftp ainsi que le chemin de destination des fichiers sur votre serveur distant.