Aller au contenu

[Tuto] Installation de Cacti


hpsmartyz

Messages recommandés

A DATER DU 06/02/2022 CE MESSAGE AINSI QUE LES DEUX QUI SUIVENT ET CEUX VERS LESQUELS ILS POINTENT SONT "HISTORIQUES"; UN NOUVEAU TUTORIEL EST DISPONIBLE PLUS LOIN DANS CE FIL DE DISCUSSION (ICI). LES MESSAGES "HISTORIQUES" SONT CONSERVÉS A TITRE D'INFORMATION.

-----

Tutoriel complet et opérationnel

 

des tutoriels complémentaires sont disponibles plus loin dans le fil de discussion:

installation de l'architecture de plugins (ici), installation du plugin Settings (ici), installation du plugin Syslog (ici), récupération des logs d'Apache (ici), visualisation des informations SMART (ici), templates pour le monitoring des bases MySQL (ici), procédures relatives avec la mise à jour du firmware du Synology (ici), mise à jour de Cacti (ici), mise à jour de l'architecture de plugins et mise à jour des plugins suite à la mise à jour de Cacti (ici), géolocalisation des adresses IP sous le plugin Syslog (ici)

-----

NOTE IMPORTANTE: Ce tutoriel a été originellement réalisé avec le firmware 728 et Cacti 0.8.7b. Depuis le firmware a évolué, Cacti aussi, ainsi que les paquets IPKG requis. Cependant, l'installation de Cacti est très largement indépendante de la version de Cacti ou même du firmware de vos Synology. A cet égard, vous trouverez dans ce tutoriel des informations complémentaires ou alternatives (en violet) pour réaliser les différentes installations avec les dernières versions du firmware et/ou de Cacti.

-----

Bonjour à toutes et à tous.

Cacti est LA plateforme de monitoring de votre Synology et plus largement de votre réseau.

C'est donc avec un plaisir certain (mais aussi une certaine fierté, j'ai vaincu la bête!) que je vous fais part de ce "petit" tutoriel. Il est certes un peu long mais il est tout public, pas besoin d'être expert sauf du ctrl+c/clic-droit (il n'y a, à peu de choses près, qu'à copier les commandes listées et les "coller" dans une fenêtre Telnet). Si vous avez des doutes et/ou questions, ce fil de discussion est là pour les accueillir. Seuls les trois premiers messages de ce fil de discussion sont utiles pour installer Cacti; ils intègrent les échanges présents dans ce fil de discussion et ayant engendré des mises à jour. Vous n'avez donc pas à lire en détail l'ensemble du fil de discussion. Des tutoriels supplémentaires, référencés ci-dessus, sont proposés en vue d'augmenter les fonctionalités de Cacti.

-----

Tutoriel d'installation de Cacti (0.8.7*) (http://cacti.net/index.php) sur un Synology DS107

Version du noyau Linux : 2.4.22-uc0

Firmware : DSM 2.0-0728

Tutoriel applicable à n'importe quelle version de firmware.

-----

Pré-requis:

Cette installation requiert l'utilisation d'IPKG et que vous soyez connectés sous Telnet en root.

Installation des composants de base:

Cacti nécessite MySQL, PHP, RRDTool, Net-SNMP, Perl, et un serveur web supportant PHP comme Apache

Perl est déjà installé.

Apache est déjà installé mais pas forcément actif. Pour cela:

Dans l'interface d'administration aller à Services Réseau > Services Web, et activer Web Station.
Cocher aussi la case "Activer l'option de configuration PHP register_globals".
 

Pour ce qui est de MySQL, on préfèrera une nouvelle installation à celle du Synology, de même pour PHP (justifications données plus bas).

Pour ce qui est de RRDTool, et Net-SNMP, ils n'existent tout simplement pas sur le Synology. Il faudra donc les installer.

Note: les dernières versions du firmware incluent SNMP. Je conseille cependant d'installer Net-SNMP. Si vous décidez d'utiliser le SNMP de Synology merci de nous faire un retour.

Mise à jour de la liste des paquets IKPG

shell> ipkg update

Installation de rrdtool

shell> ipkg info rrdtool

 
Package: rrdtool

Version: 1.2.27-1

Depends: zlib, libpng, freetype, libart

Status: unknown ok not-installed

Section: misc

Architecture: powerpc

maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com>

MD5Sum: 701446a9b03bc18e365ec98ff9216e8a

Size: 681277

Filename: rrdtool_1.2.27-1_powerpc.ipk

Source: http://oss.oetiker.ch/rrdtool/pub//rrdtool-1.2.27.tar.gz

Description: Round-Robin Database tool. Database collator and plotter


Successfully terminated.

La dernière version en date est 1.2.30-1. Cela n'a aucune incidence. shell> ipkg install rrdtool

 
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/rrdtool_1.2.27-1_powerpc.ipk

Installing zlib (1.2.3-3) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/zlib_1.2.3-3_powerpc.ipk

Installing libpng (1.2.34-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libpng_1.2.34-1_powerpc.ipk

Installing freetype (2.3.6-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/freetype_2.3.6-1_powerpc.ipk

Installing libart (2.3.17-2) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libart_2.3.17-2_powerpc.ipk

Configuring freetype

Configuring libart

Configuring libpng

Configuring rrdtool

Configuring zlib

Successfully terminated.

Installation de net-snmp shell> ipkg info net-snmp

 
Package: net-snmp

Version: 5.4.2.1-1

Depends: openssl

Status: unknown ok not-installed

Section: net

Architecture: powerpc

maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com>

MD5Sum: b42247073b38a426722d1a317e158e2b

Size: 1550114

Filename: net-snmp_5.4.2.1-1_powerpc.ipk

Source: http://easynews.dl.sf.net/sourceforge/net-snmp/net-snmp-5.4.2.1.tar.gz

Description: net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6


Successfully terminated.

shell> ipkg install net-snmp

 
Installing net-snmp (5.4.2.1-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/net-snmp_5.4.2.1-1_powerpc.ipk

Configuring net-snmp

Successfully terminated.

Installation de php, mysql et php-mysql L'installation de PHP est nécessaire car Cacti requiert un binaire PHP pour exécuter des scripts alors que PHP, sur vos Synology, n'est installé que sous la forme d'un objet partagé (.so) chargé par Apache. Il semble par ailleurs qu'il faille installer PHP-MySQL car l'objet partagé mysql.so n'est pas présent dans le répertoire des extensions de PHP (une fois ce dernier installé), répertoire défini dans /opt/etc/php.ini:

 
extension_dir = /opt/lib/php/extensions

L'installation de PHP-MySQL mettra à disposition mysql.so. Malheureusement n'installer que PHP et PHP-MySQL ne suffira pas car il manquera d'autres objets partagés (.so). Pour remédier à cela il faudra installer MySQL. Par contre, il semble qu'il y ait des conflits entre le MySQL IPKG le MySQL du Synology. Il faut donc veiller à ce que MySQL ne soit pas activé dans l'interface d'administration du Synology. Je n'ai malheureusement pas de solution à ce point potentiellement bloquant pour certains, point qui est discuté plus bas dans la suite du fil de discussion. Dans le contexte d'IPKG, PHP et MySQL sont des dépendances de PHP-MySQL, on installera donc directement ce dernier: shell> ipkg info php-mysql

 
Package: php-mysql

Version: 5.2.8-1

Depends: php, mysql

Status: unknown ok not-installed

Section: net

Architecture: powerpc

maintainer: Josh Parsons <jbparsons@ucdavis.edu>

MD5Sum: 2cbff357195ad2ea88638ffb79740caa

Size: 69382

Filename: php-mysql_5.2.8-1_powerpc.ipk

Source: http://static.php.net/www.php.net/distributions//php-5.2.8.tar.bz2

Description: mysql extension for php


Successfully terminated.

La dernière version en date est 5.2.12-1. Cela n'a aucune incidence. shell> ipkg install php-mysql

 
Installing php-mysql (5.2.8-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/php-mysql_5.2.8-1_powerpc.ipk

Installing php (5.2.8-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/php_5.2.8-1_powerpc.ipk

Installing bzip2 (1.0.5-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/bzip2_1.0.5-1_powerpc.ipk

Installing libxml2 (2.7.2-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libxml2_2.7.2-1_powerpc.ipk

Installing libxslt (1.1.24-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libxslt_1.1.24-1_powerpc.ipk

Installing gdbm (1.8.3-2) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/gdbm_1.8.3-2_powerpc.ipk

Installing libdb (4.2.52-3) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libdb_4.2.52-3_powerpc.ipk

Installing pcre (7.8-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/pcre_7.8-1_powerpc.ipk

Installing libstdc++ (5.0.6-6) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/libstdc++_5.0.6-6_powerpc.ipk

Installing cyrus-sasl-libs (2.1.22-2) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/cyrus-sasl-libs_2.1.22-2_powerpc.ipk

Installing openldap-libs (2.3.43-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/openldap-libs_2.3.43-1_powerpc.ipk

Installing mysql (4.1.22-2) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/mysql_4.1.22-2_powerpc.ipk

Installing ncurses (5.7-1) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/ncurses_5.7-1_powerpc.ipk

Installing readline (5.2-2) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ds101g/cross/stable/readline_5.2-2_powerpc.ipk

Configuring bzip2

update-alternatives: Linking //opt/bin/bzip2 to /opt/bin/bzip2-bzip2

Configuring cyrus-sasl-libs

Configuring gdbm

Configuring libdb

Configuring libstdc++

Configuring libxml2

Configuring libxslt

Configuring mysql

Installing all prepared tables

090107 0:11:42 [Warning] Setting lower_case_table_names=2 because file system for /opt/var/lib/mysql/ is case insensitive

Fill help tables

090107 0:11:43 [Warning] Setting lower_case_table_names=2 because file system for /opt/var/lib/mysql/ is case insensitive


To start mysqld at boot time you have to copy support-files/mysql.server

to the right place for your system


PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/opt/bin/mysqladmin -u root password 'new-password'

/opt/bin/mysqladmin -u root -h syno password 'new-password'

See the manual for more instructions.


You can start the MySQL daemon with:

cd /opt; /opt/bin/mysqld_safe &amp;


You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:

cd sql-bench; perl run-all-tests


Please report any problems with the /opt/bin/mysqlbug script!


The latest information about MySQL is available on the web at http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

Starting MySQL SUCCESS!

Configuring ncurses

update-alternatives: Linking //opt/bin/clear to /opt/bin/ncurses-clear

Configuring openldap-libs

Configuring pcre

Configuring php

Configuring php-mysql

Configuring readline

Successfully terminated.

Pour mémoire: shell> ipkg info mysql

 
Package: mysql

Version: 4.1.22-2

Depends: zlib, ncurses, openssl, readline, libstdc++

Status: install ok installed

Section: misc

Architecture: powerpc

maintainer: NSLU2 Linux <nslu2-linux@yahoogroups.com>

MD5Sum: 1c9b8738180b65830618b95b16e911b4

Size: 5242072

Filename: mysql_4.1.22-2_powerpc.ipk

Source: http://downloads.mysql.com/archives/mysql-4.1/mysql-4.1.22.tar.gz

Description: Popular free SQL database system


Successfully terminated.

shell> ipkg info php

 
Package: php

Version: 5.2.8-1

Depends: bzip2, openssl, zlib, libxml2, libxslt, gdbm, libdb, pcre, cyrus-sasl-libs, openldap-libs

Status: install ok installed

Section: net

Architecture: powerpc

maintainer: Josh Parsons <jbparsons@ucdavis.edu>

MD5Sum: d85e30893257b22d9150864d45f83063

Size: 1847224

Filename: php_5.2.8-1_powerpc.ipk

Source: http://static.php.net/www.php.net/distributions//php-5.2.8.tar.bz2

Description: The php scripting language


Successfully terminated.

Définition du mot de passe de root pour la base MySQL (IPKG)

MySQL intègre par défaut deux utilisateurs 'root' et '' (anonyme) qui n'ont pas de mot de passe associé: http://dev.mysql.com...privileges.html

Il est recommandé de définir un mot de passe pour l'utilisateur root (http://www.nas-forum...oot-et-anonyme/, voir aussi les messages affichés à l'écran lors de l'installation de MySQL via IPKG)

Dans les commandes qui vont suivre, remplacez password par le mot de passe que vous avez choisi et nom-hote par le nom d'hôte de votre Synology.

Pour savoir quel est votre nom d'hôte:

shell> cd /opt/bin

shell> ./mysql -u root

mysql> SELECT Host, User FROM mysql.user;

mysql> exit

Recherchez une ligne qui contient root dans la colonne User et quelque chose d'autre que localhost dans la colonne Host.

Pour mémoire, le MySQL du Synology se trouve là: /usr/syno/mysql/bin

shell> cd /opt/bin

shell> ./mysql -u root

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');

mysql> SET PASSWORD FOR 'root'@'nom-hote' = PASSWORD('password');

mysql> FLUSH PRIVILEGES;

mysql> exit

 

A partir de ce point, il est considéré qu'un mot de passe a été défini pour le compte root de MySQL et donc l'option -p est utilisée dans les lignes de commande.

Note: Pour des questions de "sécurité", je vous engage à supprimer l'historique des commandes passées sous mysql, historique qui se trouve dans votre home (et donc /root)

shell> cd /root

shell> cat /dev/null > ~/.mysql_history

ou bien:

shell> cd /root

shell> $ > ~/.mysql_history

Modifié par hpsmartyz
Lien vers le commentaire
Partager sur d’autres sites

Installation et Configuration de Cacti:

Téléchargement de Cacti

Télécharger Cacti ici: http://cacti.net/download_cacti.php (prendre la version pour Linux/Unix)

et copier l'archive dans un répertoire sur votre Synology, par exemple /tmp

La dernière version en date est 0.8.7e. C'est celle à utiliser même si ce tutoriel est basé sur la 0.8.7b (disponible ici: http://www.cacti.net...i-0.8.7b.tar.gz)

Extraction de Cacti

Changez, dans ces commandes, cacti-0.8.7b par ce qui correspond à la version que vous êtes en train d'installer.

Dans le répertoire où l'archive a été copiée:

shell> tar -zxvf cacti-0.8.7b.tar.gz

Puis, déplacer Cacti vers le dossier web

shell> mv cacti-0.8.7b cacti/

shell> mv cacti /var/services/web/

Notons que /var/services/web pointe sur /volume1/web

Installation des patchs

Les patchs sont des corrections du code source de Cacti qui font suite à l'identification et la confirmation de l'existence de bugs.

Les patchs se téléchargent ici: http://www.cacti.net...oad_patches.php

Pour les installer de façon automatique il faudrait le binaire patch mais qui n'est pas disponible sur le Synology.

La méthode alternative consiste à modifier les fichiers concernés un a un.

Les fichiers .patch sont en fait de simples fichiers texte, il suffit donc de les ouvrir et de regarder les opérations à faire.

Le chemin et nom du fichier à modifier sont indiqués en en-tête du fichier
.patch

Les lignes commençant par un moins (-) sont à supprimer du fichier à modifier.

Les lignes commençant par un plus (+) sont à ajouter au fichier à modifier.

Cela est assez simple quand le patch n'impacte qu'un seul fichier source et que les modifications sont mineures, mais ce n'est pas toujours le cas. Si vous désirez réaliser l'opération par vous même et de façon automatique alors il faut utiliser une autre machine Linux sur laquelle il vous faut extraire l'archive Cacti, appliquer les patchs puis récupérer les fichiers source modifiés pour les recopier finalement sur votre Synology.

Pour vous simplifier la tâche, vous pouvez trouver en zone téléchargements les fichiers déjà patchés (voir ici pour v0.8.7b et ici pour pour v0.8.7e).

Pour la v0.8.7b:

L'archive disponible en section téléchargement contient 4 fichiers. A ce stade seuls 3 sont utiles.

Au sein de l'archive,

- récupérer le fichier cacti/install/index.php puis recopier ce fichier dans cacti/install/ sur votre Synology, écrasant le fichier existant.

- récupérer le fichier cacti/lib/snmp.php puis recopier ce fichier dans cacti/lib/ sur votre Synology, écrasant le fichier existant.

- récupérer le fichier cacti/lib/prePIA_functions.php, puis renommer ce fichier en functions.php et recopier ce fichier dans cacti/lib/ sur votre Synology, écrasant le fichier existant.

Pour la v0.8.7e:

Les fichiers impactés (ci dessous) par le patching sont tous à la racine de l'archive. Recopiez les dans les bons répertoires, écrasant les fichiers existants.

cli/add_graps.php

include/global_arrays.php

lib/snmp.php

cli/repair_templates.php

docs/README

lib/export.hp

lib/import.php

lib/utility.php
lib/ping.php

graph.php

include/top_graph_header.php

lib/html_form.php

lib/timespan_settings.php

Création d'un utilisateur et d'un groupe associés à Cacti

En ligne de commande cela se ferait comme ça:

- Création d'un groupe associé à Cacti:

shell> addgroup nom-du-groupe-cacti

- Création d'un utilisateur associé à Cacti:

shell> adduser nom-du-user-cacti -d /var/services/web/cacti -s /sbin/nologin -g nom-du-groupe-cacti

avec:

comme home, le répertoire: /var/services/web/cacti

comme shell: /sbin/nologin

comme groupe: nom-du-groupe-cacti

On préfèrera créer l'utilisateur et le groupe par l'interface. Se rapporter pour cela au manuel du Synology.

Il faut ensuite affiner la création de ce nouveau compte.

- Pour cela il faut tout d'abord récupérer le numéro de groupe de nom-du-groupe-cacti

shell> more /etc/group | grep nom-du-groupe-cacti

On obtient une ligne ayant le format suivant:

nom-du-groupe-cacti:x:numero-du-groupe:nobody,nom-du-user-cacti
- Ensuite, on va, d'un seul coup * modifier le groupe par défaut de l'utilisateur nom-du-user-cacti le groupe par défaut de nom-du-user-cacti est 100 (users), on va le changer en numero-du-groupe * modifier le home de l'utilisateur nom-du-user-cacti le home par défaut est /, on va le changer en /var/services/web/cacti Pour ces deux points, il faut modifier le fichier /etc/passwd shell> vi /etc/passwd et changer la ligne suivante:
nom-du-user-cacti:x:numero-utilisateur:100::/nonexist:/sbin/nologin
en
nom-du-user-cacti:x:numero-utilisateur:numero-du-groupe::/var/services/web/cacti:/sbin/nologin
Notez que l'on pourrait peut-être aussi définir /bin/false comme shell pour nom-du-user-cacti. En effet /bin/false était utilisé par le Synology dans des firmware antérieurs. Aujourd'hui le Synology utilise /sbin/nologin et en effet /etc/shells liste bien /sbin/nologin (mais pas /bin/false) mais nologin n'apparait pas dans /sbin. Informations sur le shell /bin/false: http://www.cure.nom....l-binfalse.html mais certains disent que les utilisateurs peuvent encore se connecter en ssh http://www.dedibox-n...88-probleme-ssh Création de la base de données de Cacti Choisir un nom pour la base de données, ci-dessous référencée par: nom-de-la-base shell> cd /opt/bin shell> ./mysqladmin --user=root -p create nom-de-la-base référence pour mysqladmin : http://dev.mysql.com...mysqladmin.html Import de la base de données par défaut shell> cd /opt/bin shell> ./mysql -u root -p nom-de-la-base < /var/services/web/cacti/cacti.sql Création, dans mysql, d'un utilisateur de la base nom-de-la-base et définition des droits Cela se fait en donnant directement des droits à un utilisateur donné. références: http://dev.mysql.com...0/fr/mysql.html http://dev.mysql.com...ding-users.html http://dev.mysql.com...0/fr/grant.html http://dev.mysql.com...t-password.html J'ai donné à l'utilisateur de la base le même nom que celui Linux (nom-du-user-cacti) et ne change pas le mot de passe pour root: shell> cd /opt/bin shell> ./mysql -u root -p mysql> GRANT ALL PRIVILEGES ON nom-de-la-base.* TO 'nom-du-user-cacti'@'localhost' IDENTIFIED BY 'mot-de-passe'; mysql> GRANT ALL PRIVILEGES ON nom-de-la-base.* TO 'nom-du-user-cacti'@'nom-hote' IDENTIFIED BY 'mot-de-passe'; mysql> GRANT ALL PRIVILEGES ON nom-de-la-base.* TO 'root'@'localhost'; mysql> GRANT ALL PRIVILEGES ON nom-de-la-base.* TO 'root'@'nom-hote'; mysql> FLUSH PRIVILEGES; mysql> exit
peut aussi se faire comme suit :
shell> ./mysql -u root -p mysql> GRANT ALL PRIVILEGES ON
nom-de-la-base
.* TO '
nom-du-user-cacti
'@'localhost'; mysql> SET PASSWORD FOR '
nom-du-user-cacti
'@'localhost' = PASSWORD('
mot-de-passe
'); mysql> GRANT ALL PRIVILEGES ON
nom-de-la-base
.* TO '
nom-du-user-cacti
'@'
nom-hote
'; mysql> SET PASSWORD FOR '
nom-du-user-cacti
'@'
nom-hote
' = PASSWORD('
mot-de-passe
'); mysql> GRANT ALL PRIVILEGES ON
nom-de-la-base
.* TO 'root'@'localhost'; mysql> GRANT ALL PRIVILEGES ON
nom-de-la-base
.* TO 'root'@'
nom-hote
';
mysql> FLUSH PRIVILEGES;
mysql> exit
Note: Pour des questions de "sécurité", je vous engage à supprimer l'historique des commandes passées sous mysql, historique qui se trouve dans votre home (et donc /root) shell> cd /root shell> cat /dev/null > ~/.mysql_history ou bien shell> cd /root shell> $ > ~/.mysql_history Changement des droits sur les répertoires de Cacti shell> chown -R nom-du-user-cacti:nom-du-groupe-cacti /var/services/web/cacti/rra /var/services/web/cacti/log Édition du fichier de configuration de Cacti shell> vi /var/services/web/cacti/include/config.php Il contient par défaut ces lignes:
$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";
Remplacer le texte entre guillemets par les informations spécifiques à votre installation. Je ne sais pas pourquoi mais
$database_hostname = "nom-hote";
ne semble pas fonctionner. J'ai donc laissé la ligne
$database_hostname = "localhost";
telle qu'elle. MS_Totor propose pour régler ce point de modifier le fichier /etc/hosts de sorte à ce qu'il contienne au moins:
127.0.0.1 localhost nom-hote

XXX.XXX.XXX.XXX nom-hote
où XXX.XXX.XXX.XXX est l'adresse IP de votre Synology sur votre réseau interne (exemple 192.168.1.050) et nom-hote le nom de votre Synology mentionné plus haut. MS_Totor suggère aussi de rebooter le Synology après une telle modification. Configuration de Net-SNMP: Je n'ai rien eu à faire concernant la configuration de Net-SNMP. Le manuel de Cacti indique certaines choses à modifier dans le fichier de configuration mais dans celui mis à disposition via IPKG il n'y avait aucune des entrées indiquées (par le manuel de Cacti) comme devant être modifiée. Je n'ai donc rien fait. Notez que j'utilise SNMP_v1 (ou v2?). Si vous voulez utiliser des versions ultérieures il vous sera peut-être nécessaire de modifier le fichier de configuration de Net-SNMP en plus d'avoir à configurer certaines choses sous Cacti. Configuration d'Apache: Dans /usr/syno/apache/conf/httpd.conf-user vérifiez que vous avez ces lignes définies :
AddType application/x-tar .tgz

AddType application/x-httpd-php .php

AddType image/x-icon .ico

DirectoryIndex index.php index.html index.html.var
Par défaut httpd.conf-user du Synology contient les lignes suivantes donc ce devrait être bon.
AddType application/x-gzip .gz .tgz

AddType image/x-icon .ico

AddType application/x-httpd-php .php

DirectoryIndex index.html index.htm index.cgi index.php index.php3
Configuration de PHP (IPKG): Les paramètres suivants sont à définir selon l'état indiqué. shell> vi /opt/etc/php.ini à la ligne 246, passer la variable à 16M au moins (notez que je ne suis pas au fait de l'effet de la valeur de ce paramètre ni quelle serait la meilleure valeur en fonction de votre système et de sa configuration)
memory_limit = 16M;
à la ligne 380 :
register_globals = On
à la ligne 385 :
register_argc_argv = On
A la ligne 562 on trouve:
;;;;

; Note: packaged extension modules are now loaded via the .ini files

; found in the directory /etc/php.d; these are loaded by default.

;;;;
Dans /opt/etc/php.d/, on trouve mysql.ini qui contient :
extension=mysql.so

extension=mysqli.so
Bien que le texte indique /etc/php.d/ au lieu de /opt/etc/php.d/ le fichier mysql.ini semble chargé car si l'on spécifie dans /opt/etc/php.ini les extensions pour le support de MySQL on obtient le message d'erreur suivant lors du test (plus bas) :
PHP Warning: Module 'mysql' already loaded in Unknown on line 0
Donc pas besoin d'écrire explicitement ces extensions dans le fichier /opt/etc/php.ini Configuration de PHP (Synology): L'affichage des pages PHP de Cacti est fonction de la configuration du PHP du Synology (Apache charge le module PHP (/lib/libphp5.so) livré avec le Synology. Il faut donc apporter certaines modifications au fichier /usr/syno/etc/php.ini shell> vi /usr/syno/etc/php.ini Suite à la suggestion de looping49, il faut passer la variable safe_mode_exec_dir, à vide. A la ligne 17 (ligne 184 pour le firmware 959), commenter donc
safe_mode_exec_dir = /usr/syno/bin
en ajoutant un '#' au début de la ligne et créer une nouvelle ligne
safe_mode_exec_dir =
A la ligne 21 (ligne 206 pour le firmware 959), rajouter à la variable open_basedir,
:/opt/bin:/opt/share/rrdtool/fonts
en fin de ligne. Ce sont les chemins des utilitaires sur lesquels repose Cacti. ATTENTION: Il semble que sur le tout dernier firmware (DSM 2.3) /usr/syno/etc/php.ini soit réinitialisé à chaque redémarrage. Cela pourrait donc annuler les modifications appliquées ci-dessus. Voir ici pour plus d'information sur le sujet et des éléments de solution. Je ne sais pas si c'est nécessaire mais j'ai aussi changé la valeur de la variable relative à la mémoire affectée à un script, la mettant à la même valeur que dans /opt/etc/php.ini A la ligne 27 (ligne 259 pour le firmware 959) vous pouvez donc faire le changement approprié:
memory_limit = 16M;
A la ligne 38 (ligne 420 pour le firmware 959):
register_globals = On
Notez que la variable register_globals se met à On par l'interface d'administration du Synology. A la ligne 40 (ligne 430 pour le firmware 959):
register_argc_argv = On

A ce stade il est nécessaire de redémarrer Apache. Un bon reboot du Synology, ne peut pas faire de mal. Sinon, utilisez les scripts de lancement.

Lien vers le commentaire
Partager sur d’autres sites

Dernières vérifications:

En lançant le poller:

shell> /opt/bin/php /var/services/web/cacti/poller.php

il se peut qu'il génère une erreur du type:

sh: -q: not found

sh: -: not found
Il semblerait que ce soit lié à un appel php –q qui ne semble pas supporté sur BusyBox (BusyBox, ne supporte en fait pas cp -q) ou bien encore que cette option ne soit plus supportée pour la version de php installée (voir ici pour information) La solution consiste à aller chercher les scripts qui ne vont pas et les modifier: shell> cd /var/services/web/cacti/resource/script_queries shell> cp host_cpu.xml host_cpu.xml.bck shell> vi host_cpu.xml modifier la ligne:
<script_path>|path_php_binary| -q |path_cacti|/scripts/query_host_cpu.php</script_path>
en :
<script_path>|path_php_binary| |path_cacti|/scripts/query_host_cpu.php</script_path>
shell> cp host_disk.xml host_disk.xml.bck shell> vi host_disk.xml modifier la ligne:
<script_path>|path_php_binary| -q |path_cacti|/scripts/query_host_partitions.php</script_path>
en :
<script_path>|path_php_binary| |path_cacti|/scripts/query_host_partitions.php</script_path>
Il semble aussi que la version BusyBox (1.1.0) soit vraiment obsolète et donc grep ne supporte pas l'option –w. Il faut donc porter une modification aux scripts intégrés de Cacti. shell> cd /var/services/web/cacti/scripts shell> cp linux_memory.pl linux_memory.pl.bck shell> vi linux_memory.pl modifier la ligne:
open(PROCESS, "cat /proc/meminfo | grep -w $ARGV[0] |");
en:
open(PROCESS, "cat /proc/meminfo | grep $ARGV[0] |");
Test: shell> /opt/bin/php /var/services/web/cacti/poller.php normalement tout se passe bien. Sinon ... :( Si vous lancez cette commande plusieurs fois il se peut que vous ayez des retours vous informant que le poller est désynchronisé. C'est normal. Il se resynchronisera une fois géré par cron. Modification du fichier install.php: shell> vi /volume1/web/cacti/install/index.php Changez la ligne:
$search_paths = array("/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin")
en
$search_paths = array("/opt/bin", "/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin", "/usr/local/sbin")
Cela permet de dire à Cacti où aller chercher le binaire php et évitera, lors de la phase de configuration finale de Cacti, d'avoir des pleines pages d'erreurs du genre:
open_basedir restriction in effect ...
Mise en route de Cacti: http://ip-du-syno/cacti/index.php Suivez les étapes. Cacti devrait trouver tout seul les binaires si vous avez modifié le fichier /volume1/web/cacti/install/index.php. Edition du fichier crontab: Arrêter crond shell> cd /usr/syno/etc.defaults/rc.d shell> ./S04crond.sh stop Editez le fichier: shell> vi /etc/crontab
*/5	*	*	*	*	root	/opt/bin/php /var/services/web/cacti/poller.php > /dev/null 2>&1

/opt/bin/php est le chemin de PHP installé par ipkg

Utilisez des tabulations entres les champs et non des espaces et ce pour les 6 premiers "blancs" seulement, le reste (/opt/bin ...) est une commande donc les "blancs" sont des espaces. Cela semble être une solution au problème du fichier crontab qui s'efface au reboot (même si j'ai chez moi encore ce problème. Note: le problème disparait en éditant de la même manière le fichier /etc.defaults/crontab).

L'utilisation du compte 'root' pour le lancement du poller n'est préconisée que si vos scripts (ou les commandes qu'ils intègrent) nécessitent les privilèges associés à ce compte (c'est le cas d'un script décrit plus loin qui récupère les données SMART). En fait le tutoriel de référence de Cacti dit d'utiliser l'utilisateur nom-du-user-cacti défini plus haut. Cependant, même si vous choisissez cet utilisateur c'est 'root' qui lancera la commande. Cela est dû à une "limitation" de la version de crond qui vient avec BusyBox 1.1.0 qu'embarque l'OS de nos syno (voir ici). La conséquence de cela est que les fichiers (.rrd) contenant les données mesurées seront en la possession de root:root plutôt que nom-du-user-cacti:nom-du-groupe-cacti comme cela devrait être sur la base des droits donnés sur rra/. Mais cela ne pose pas de problème en fait.

Relancez crontab:

shell> ./S04crond.sh start

Lancer Cacti:

http://ip-du-syno/cacti/index.php

L'invite Cacti devrait être là, utilisez admin/admin qu'il faudra changer juste après.

Pour finir, allez faire un petit tour dans Configuration>Settings pour vous assurer que tout est paramétré correctement,

il y a un changement à faire normalement et qui consiste à définir le chemin complet de la police de RRDTool:

/opt/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf

Cacti est maintenant opérationel vous pouvez vous amuser avec. Vous pouvez ensuite installer la Plugin Architecture (PIA) pour permettre l'installation de plugins. Le tutoriel d'installation de la PIA est ici.

En note de fin, j'aimerais remercier fredlime pour ses conseils relatifs à Busybox, ikeke pour son support lors de ma venue ici, rony du forum Cacti pour sa précieuse aide, Jérémy Couture ( http://couture.jeremy.free.fr/ ) rencontré via le forum Cacti qui m'a tout récemment redonné espoir quant à la faisabilité d'une pareille installation et looping49 qui a trouvé la solution à un problème de compatibilité de Cacti et PhotoStation. Merci à tous ceux et celles qui contribuent à ce tutoriel, l'améliorant grâce à vos retours d'expérience. N'hésitez pas à poster un message.

Références générales:

http://www.cacti.net...stall_unix.html

http://docs.cacti.net/?q=node/438

http://docs.cacti.net/?q=Howto087

http://cactiusers.org/index.php

http://www.ozmonitor...ent/view/83/70/

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.