Aller au contenu

[Tuto] Installation de Cacti


hpsmartyz

Messages recommandés

Dernières vérifications:

Tester Cacti

En lançant le poller:

shell> /usr/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 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] |");
Reessayer shell> /usr/bin/php /var/services/web/cacti/poller.php Normalement tout se passe bien. Sinon, réessayez plusieurs fois, l'erreur peut disparaitre au bout de quelques essais. 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 /var/services/web/cacti/install/index.php Changez la ligne (98):
$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 les binaires (rrdtool et ceux associés à Net-SNMP) Mise en route de Cacti Dans votre navigateur, tapez l'adresse suivante http://ip-du-syno/cacti/index.php Suivez les étapes. Cacti devrait trouver tout seul les chemins si vous avez modifié le fichier /var/services/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	/usr/bin/php /var/services/web/cacti/poller.php > /dev/null 2>&1

Utilisez des tabulations entres les champs et non des espaces et ce pour les 6 premiers "blancs" seulement, le reste (/usr/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: ce 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. 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 (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.

Relancer crond

shell> ./S04crond.sh start

Lancer Cacti

Dans votre navigateur, tapez l'adresse suivante

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érationnel vous pouvez vous amuser avec mais avant de le faire je vous conseille d'installer la PIA (voir ci-dessous) surtout si vous avez l'envie d'installer par la suite des plugins.

En note de fin, j'aimerais remercier tous ceux qui ont rendu possible cette installation et tous ceux qui font vivre l'aventure Cacti sur Synology.

Merci

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

Installation de l'architecture de plugins (Plugin Architecture, PIA):

Téléchargement de la PIA

La PIA se télécharge ici.

Copier cette archive sur votre Synology.

Installation de la PIA

Dans le répertoire dans lequel vous avez copié l'archive

shell> tar -zxvf nom-du-fichier-téléchargé.tar.gz

Le résultat de l'archive décompressée est un dossier cacti-plugin-arch.

Il y a deux méthodes pour installer la PIA.

La première consiste à patcher les fichiers mais le binaire patch n'est pas disponible. De façon similaire à l'installation de Cacti il faut utiliser un ordinateur équipé d'un Linux plus complet. Il faudra alors copier le fichier dont l'extension est .diff depuis le répertoire cacti-plugin-arch vers le répertoire de Cacti et là, d'abord tester l'application du patch:

shell> patch -p1 -N --dry-run < nom-du-fichier.diff

Il ne devrait pas y avoir de problème ... et appliquer ensuite effectivement le patch:

shell> patch -p1 -N < nom-du-fichier.diff

La seconde méthode consiste à copier les fichiers de la PIA dans les répertoires de Cacti appropriés écrasant, si besoin, les existants.

Il n'y a pas de risque à cela, vous ne devriez pas avoir modifié les fichiers en question.

shell> cd cacti-plugin-arch/files-0.8.7g

shell> cp -R * /var/services/web/cacti/

Attention
: Si la PIA est postérieure à tous les patchs alors il y a de fortes chances qu'elle intègre ces patchs (cela a toujours été le cas jusque maintenant, à ma connaissance). A ce titre il serait même possible de ne pas appliquer les patchs et directement installer la PIA. En revanche si un ou plusieurs patchs sont postérieurs à la PIA il faudra (ré-)appliquer le patch après avoir installé la PIA. De plus il faudra impérativement utiliser le binaire
patch
ou bien faire les modifications manuellement. En effet, avoir mis de coté le fichier Cacti patché et le recopier dans l'arborescence après installation de la PIA écraserait alors le fichier modifié par la PIA ...

Import de la base de données de la PIA

En supposant que vous êtes dans le répertoire dans lequel vous avez tapé la commande de décompression de l'archive de la PIA:

shell> /usr/syno/mysql/bin/mysql -u root -p nom-de-la-base < cacti-plugin-arch/pa.sql

nom-de-la-base fait référence à la base de données de Cacti, créée dans la première partie de ce tutoriel.

Pour la forme vous pouvez ensuite copier pa.sql dans le répertoire Cacti.

Application des droits

shell> /usr/syno/mysql/bin/mysql -u root -p

mysql> FLUSH PRIVILEGES;

mysql> exit

Configuration de la PIA

Il reste une dernière et simple étape, la modification de config.php

shell> vi /var/services/web/cacti/include/config.php

Il faut paramétrer la variable url_path de telle sorte qu'elle donne le chemin de Cacti par rapport à l'url racine de votre serveur web.

Il est considéré ici que Cacti a été installé dans /var/services/web/cacti/ et est donc accessible à l'adresse: http://ip-du-synology/cacti/

Soit:

$config['url_path'] = '/cacti/';

Si ce n'est pas le cas, adaptez en fonction de votre installation propre.

Si vous installez la PIA indépendamment de l'installation de Cacti, vérifiez dans
config.php
que les modifications que vous y aviez apporté lors de l'installation de Cacti y sont toujours. Si non, ré-appliquez les. Si vous installez la PIA en même temps que Cacti (suite au conseil donné deux messages plus haut) ne passez pas à l'étape suivante, retournez au point de redirection et venez finir ici après tout le reste.

Gestion des permissions

Connectez vous à Cacti, allez à:

Utilities > User Management

Sélectionnez un utilisateur (normalement admin, mais ça dépend à qui vous voulez donner les droits)

Cliquez sur l'onglet Realm Permissions, cochez la case Plugin Management, sauvegardez.

Voilà, Cacti est maintenant prêt à intégrer des plugins: http://docs.cacti.net/plugins

Installation du plugin 'settings': voir ici

Installation du plugin 'syslog': voir ici

Références:

http://docs.cacti.ne...rchitecture_pia

http://cactiusers.or...opic.php?t=1432

Lien vers le commentaire
Partager sur d’autres sites

Installation de l'architecture de plugins (Plugin Architecture, PIA):

en cours ...

Bonjour hpsmartyz,

Merci pour ton super tuto, pour les patchs, une autre solution est de les passer sur un linux (autre que le syno) qui lui comporte bien la commande patch et cela fonctionnera également (avec moins de risque à mon sens et surtout plus rapide ;)) bien sur il faut un PC avec linux pour le faire et tout le monde n'en a pas, mais il y en a quand même pas mal sur le forum qui en ont et ensuite de "réimporter" la version patchée sur le syno

Autrement pour pia, je conseille plutôt de le mettre dés le départ, avant même la première configuration de cacti, le "patch" se passe beaucoup mieux et il y a moins de chance d'avoir quelques erreurs lors du patchage.

Il est vrai que pour ma part ayant un linux, cela est beaucoup plus facile.

Ton tuto au moins est beaucoup plus généraliste et permet à ceux qui n'ont pas de linux de pouvoir en bénéficier sur leur syno :D

Une autre chose que je suis entrain de regarder, mais pour le moment je n'ai pas encore la solution concernant le paramétrage de l'accés à la base de données avec les variables :

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";

car elles sont à la fois dans le global.php, le config.php et dans d'autres fichiers de configuration de certain plugins où d'addon.

La solution "cool" serait de "centraliser" ces données dans un fichier et de faire référence à ce fichier pour les autres fichiers de conf pour la connexion à la base, comme cela en cas de changement de mot de passe par exemple il n'y aurait qu'un fichier à modifier.

Encore bravo pour ton tuto :rolleyes:

@+

Lien vers le commentaire
Partager sur d’autres sites

Sauf erreur je n'ai pas préconisé de modifier global.php mais c'est vrai que je l'ai vu mentionné quelques pages en arrière et je n'ai pas réagi :unsure:

-hps

Oops oui désolé :(, mais comme dans global.php ce code n'est pas commenté ... il y a aussi le fichier spine.conf, mais qui n'est pas abordé dans ce tuto, pour les deux méthodes, désolé j'ai dû lire trop en diagonale

Lien vers le commentaire
Partager sur d’autres sites

tu as installé spine?

Sur mon serveur oui, pour le syno je vais le faire aussi, mais il faut que je finisse avant l'install de cacti et des différents plugins, il faudra que je le compile, c'est d'ailleurs également ce que j'avais fait sur mon serveur.

il faut que je vérifie que tout fonctionne bien, l'absence du -q dans le php me gêne un peu

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Par sécurité je viens de réappliquer les droits, et j'ai bien des fichiers dans le dossier rra:

BusyBox v1.16.1 (2010-10-23 01:00:23 CST) built-in shell (ash)

Enter 'help' for a list of built-in commands.

DiskStation> chown -R cactiuser:cacti-users /var/services/web/cacti/rra /var/ser

vices/web/cacti/log

DiskStation> /var/services/web/cacti/rra

-ash: /var/services/web/cacti/rra: Permission denied

DiskStation> cd /var/services/web/cacti/rra

DiskStation> dir

total 348

drwxr-xr-x 2 cactiuser cacti-users 4096 Jan 9 19:50 .

drwxr-xr-x 13 1000 users 4096 Jan 9 19:58 ..

-rw-r--r-- 1 cactiuser cacti-users 33 Jan 9 19:58 .htaccess

-rw-r--r-- 1 cactiuser cacti-users 141528 Jan 9 19:50 localhost_load_1min_5.rrd

-rw-r--r-- 1 cactiuser cacti-users 47880 Jan 9 19:50 localhost_mem_buffers_3.rrd

-rw-r--r-- 1 cactiuser cacti-users 47880 Jan 9 19:50 localhost_mem_swap_4.rrd

-rw-r--r-- 1 cactiuser cacti-users 47880 Jan 9 19:50 localhost_proc_7.rrd

-rw-r--r-- 1 cactiuser cacti-users 47880 Jan 9 19:50 localhost_users_6.rrd

DiskStation>

j'ai ensuite rebooter mon syno mais j'ai toujours le meme souci :(

par contre le poller me sort ca :

DiskStation> /usr/bin/php /var/services/web/cacti/poller.php

PHP Warning: Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0

est ce que cela pourrait avoir un lien ?

Lien vers le commentaire
Partager sur d’autres sites

salut Hpsmartyz

l'option register_globals et bien active,

voici ce que donne la commande "more /usr/syno/etc/php/user-setting.ini"



open_basedir = /usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes:/opt/bon/opt/share/rrdtool/fonts

register_globals = On

apc.enabled = 1

display_errors= Off

Le fichier crontab utilise le compte root, j'ai updaté en mettant le compte créé "nom-user-cacti" mais cela n'a rien changé edit: je viens de relancer le poller... il est un peu plus causant :

PHP Warning:  Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0

01/11/2011 06:50:45 PM - POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval!  The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 343 seconds have passed since the last poll!

PHP Warning:  Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0

sh: /opt/bin/rrdtool/: not found

PHP Warning:  Directive 'register_globals' is deprecated in PHP 5.3 and greater in Unknown on line 0

sh: /opt/bin/rrdtool/: not found

sh: /opt/bin/rrdtool/: not found

sh: /opt/bin/rrdtool/: not found

uptime: couldn't get boot time: No such file or directory

sh: /opt/bin/rrdtool/: not found

sh: /opt/bin/rrdtool/: not found

PHP Warning:  file_exists(): open_basedir restriction in effect. File(/opt/bin/snmpget/) is not within the allowed path(s): (/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes:/opt/bon/opt/share/rrdtool/fonts) in /volume1/web/cacti/lib/snmp.php on line 574

sh: /opt/bin/snmpget/: not found

sh: /opt/bin/rrdtool/: not found

sh: /opt/bin/rrdtool/: not found

01/11/2011 06:50:48 PM - SYSTEM STATS: Time:3.1651 Method:cmd.php Processes:1 Threads:N/A Hosts:4 HostsPerProcess:4 DataSources:6 RRDsProcessed:6

merci de ton aide :)

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

bah, si c'est pour cacti, elle ne devrait pas être active (l'option register_globals)

les erreurs semblent indiquer que tu n'as pas suivi toutes les étapes du tuto ...

typiquement tu as mal recopié

:/opt/bin:/opt/share/rrdtool/fonts
dans open_basedir tu as écrit:
:/opt/bon/opt/share/rrdtool/fonts

il y a 2 erreurs ....

Lien vers le commentaire
Partager sur d’autres sites

je n'ai toujours rien en graph

le poller lui me donne cela

 /usr/bin/php /var/services/web/cacti/poller.php

01/11/2011 11:19:02 PM - POLLER: Poller[0] NOTE: Poller Int: '300', Cron Int: '300', Time Since Last: '240', Max Runtime '298', Poller Runs: '1'

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

sh: /opt/share/rrdtool/: Permission denied

Waiting on 2 of 2 pollers.

Waiting on 2 of 2 pollers.

...

Waiting on 2 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

...

Waiting on 1 of 2 pollers.

sh: /opt/share/rrdtool/: Permission denied

Waiting on 1 of 2 pollers.

uptime: couldn't get boot time: No such file or directory

sh: /opt/share/rrdtool/: Permission denied

Waiting on 1 of 2 pollers.

sh: /opt/share/rrdtool/: Permission denied

Waiting on 1 of 2 pollers.

sh: /opt/share/rrdtool/: Permission denied

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

sh: /opt/share/rrdtool/: Permission denied

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

sh: /opt/share/rrdtool/: Permission denied

Waiting on 1 of 2 pollers.

uptime: couldn't get boot time: No such file or directory

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

sh: -O: not found

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

sh: /opt/share/rrdtool/: Permission denied

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

Waiting on 1 of 2 pollers.

01/11/2011 11:19:06 PM - SYSTEM STATS: Time:4.4454 Method:cmd.php Processes:1 Threads:N/A Hosts:4 HostsPerProcess:4 DataSources:7 RRDsProcessed:7

sh: /opt/share/rrdtool/: Permission denied

Lien vers le commentaire
Partager sur d’autres sites

sous cacti,

dans Console>Settings>Paths,

peux tu me dire quels sont les chemins listés?

les champs relatifs à snmp sont tous vides.

RRDTool Binary Path : /opt/share/rrdtool/

RRDTool Default Font : /opt/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf

PHP Binary Path : /usr/bin/php

Cacti Log File Path : /volume1/web/cacti/log/cacti.log

Spine Poller File Path : vide

Lien vers le commentaire
Partager sur d’autres sites

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.