Aller au contenu

[Tuto] Installation de Cacti


hpsmartyz

Messages recommandés

Installation du plugin Syslog (v0.5.2 - 24/12/2007)

Ce tutoriel suppose que vous avez installé Cacti dans le répertoire /var/services/web/, comme préconisé dans les premiers posts.

Ce tutoriel nécessite que vous choisissiez un nom (nom-de-la-base) pour la base syslog et nécessite aussi que vous utilisiez, pour vous y connecter, les mêmes identifiants que ceux définis pour Cacti (nom-du-user-cacti et son mot de passe: mot-de-passe).

Adaptez les instructions ci-dessous en fonction de votre installation de Cacti.

Tutoriel de référence : [HOWTO] Install Syslog 0.5.2 plugin on Linux/Unix Cacti

Pré-requis

il faut avoir installé la PIA (voir ici)

il faut avoir installé le plugin 'settings' (voir ici)

il faut avoir installé syslog-ng (voir ici, en fait ce lien ne fonctionne plus (le fil de discussion n'est plus accessible. Cependant PatrickH a recréé un tutoriel voir ici)

il faut aussi le binaire mkfifo (dans le pack coreutils en zone téléchargements (ici) et à copier dans /bin)

Installation du plugin

Téléchargez le ici

Copiez l'archive dans un répertoire du Synology (/tmp par exemple), puis dans ce répertoire:

shell> tar -zxvf syslog.tar.gz

shell> mv syslog /var/services/web/cacti/plugins/

Création de la base de données associée

shell> cd /opt/bin

shell> ./mysqladmin --user=root -p create nom-de-la-base

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/plugins/syslog/syslog.sql

Définition des privilèges

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> exit

Application des droits

shell> cd /opt/bin

shell> ./mysql -u root -p

mysql> FLUSH PRIVILEGES;

mysql> exit

Edition du fichier de configuration

shell> vi /var/services/web/cacti/plugins/syslog/config.php

Il contient par défaut ces lignes:

$database_default = "syslog";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";
Modifiez le premier et les deux derniers paramètres avec les valeurs nom-de-la-base, nom-du-user-cacti et mot-de-passe respectivement. 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 Modification du script de lancement de syslog-ng Assurez vous que syslog-ng soit arrêté, autrement tuez le process, puis modifiez le fichier de lancement: shell> vi /opt/etc/init.d/S01syslog-ng de telle sorte à avoir ce qui suit:
#!/bin/ash

#

# (re)start script for syslog-ng

#

# stopping all running processes whether they exist or not

kill -9 $(pidof syslog-ng) 2>/dev/null

kill -9 $(pidof sh /opt/sbin/syslogtomysql.sh) 2>/dev/null

rm -f /opt/etc/mysqlsl.pipe


# restarting processes

sh /opt/sbin/syslogtomysql.sh &

/opt/sbin/syslog-ng -f /opt/etc/syslog-ng/syslog-ng.conf
Création du script syslogtomysql.sh shell> cd /opt/sbin shell> touch syslogtomysql.sh shell> vi syslogtomysql.sh Recopiez le texte ci dessous.
#!/bin/ash

rm -f /opt/etc/mysqlsl.pipe

/bin/mkfifo /opt/etc/mysqlsl.pipe


while [ -e /opt/etc/mysqlsl.pipe ]

do

	/opt/bin/mysql -u nom-du-user-cacti --password=mot-de-passe nom-de-la-base < /opt/etc/mysqlsl.pipe

done
Attention: assurez vous bien de remplacer nom-du-user-cacti, mot-de-passe et nom-de-la-base par vos informations spécifiques. De même, vous n'êtes pas obligés de créer le pipe à l'endroit indiqué par ce script, ni même de lui donner le nom indiqué. Si vous changez le chemin ou le nom de ce pipe il faudra répercuter ces modifications dans le fichier de configuration de syslog-ng (voir plus bas). Finalement, assurez vous de bien mettre le chemin absolu pour les commandes mkfifo et mysql. Le risque autrement est que le script s'execute mal au (re)boot du Synology, empèchant la création du lien entre syslog-ng et la base de données. Cela serait à priori dû au fait que certaines variables d'environment ne sont pas encore chargées au moment du lancement du script rendant l'appel à mysql ineffectif. Changement des permissions sur le script syslogtomysql.sh shell> chmod 755 /opt/sbin/syslogtomysql.sh shell> chown root:root /opt/sbin/syslogtomysql.sh Modification du fichier de configuration de syslog-ng shell> vi /opt/etc/syslog-ng/syslog-ng.conf Pour les besoins de Cacti le fichier de configuration complet peut être comme suit:
# syslog-ng configuration file


options {

		#prevents syslog-ng from trying to re-write hostnames

		keep_hostname(yes);


		#if keep_hostname(no), let's use dns

		use_dns(no);

#		use_dns(persist_only);

#		dns_cache_hosts("/etc/hosts");

		#and let's use syslog-ng internal caching, avoiding /etc/hosts to be read each time

		#but then it is not clear if a change to /etc/hosts will be instantaneous or at end

		#of expiry time

		dns_cache(no);

#		dns_cache(yes);

#		dns_cache_size(10);

#		dns_cache_expire(86400);


		#markers

		mark_freq(3600);

		stats_freq(3600);

};


source local {

		pipe("/proc/kmsg");

		unix-stream("/dev/log");

		unix-stream("/var/run/log");

		internal();

};


source net {

		udp(ip(XXX.XXX.XXX.XXX) port(514));

};


destination mysql {

		pipe("/opt/etc/mysqlsl.pipe"

		template("INSERT INTO syslog_incoming (host, facility, priority, date, time, message) VALUES ( '$HOST_FROM', '$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG' );\n")

		template-escape(yes));

};


log {

		source(net);

		destination(mysql);

};


log {

		source(local);

		destination(mysql);

};
Attention: assurez vous que la longue ligne commençant par template( et se terminant par $MSG' );\n") ne soit pas scindée en deux lignes. Adaptez le chemin du pipe si vous l'avez modifié dans le script syslogtomysql.sh. Les lignes relatives à la capture d'évènements externes à votre Synology (mais provenant de votre réseau local):
source net {

		udp(ip(XXX.XXX.XXX.XXX) port(514));

};

log {

		source(net);

		destination(mysql);

};
ne vous sont utiles que si vous avez des éléments de réseau qui envoient des notifications syslog vers votre Synology. Si elles le sont, changez l'adresse XXX.XXX.XXX.XXX en celle de votre Synology sur votre réseau local. Le manuel de référence de syslog-ng se trouve . Activation du plugin shell> vi /var/services/web/cacti/include/global.php Rajoutez, à la ligne 46, sous la ligne:
$plugins[] = 'settings';
la ligne
$plugins[] = 'syslog';

Modifications des droits d'accès au répertoire syslog

shell> cd /var/services/web/cacti/plugins/

shell> chown -R root:root syslog/

shell> chmod -R 655 syslog/

Le tutoriel de référence propose ici quelque chose de légèrement différent (644) mais qui ne semble pas fonctionner sur le Synology.

Autorisation des utilisateurs Cacti à utiliser ce nouveau plugin

Connectez vous à Cacti

Utilities > User Management

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

Puis dans l'onglet Realm Permissions, cochez les cases View Syslog et Configure Syslog Alerts / Reports

Sauvegardez

Vous devriez avoir un onglet supplémentaire sous Cacti permettant la visualisation des logs.

Modification de l'ordre de démarrage de syslog-ng et redémarrage

Au regard du besoin de syslog-ng de se reposer sur MySQL, il est recommandé de faire démarrer MySQL avant syslog-ng.

Pour cela il suffit de modifier le numéro du script de démarrage. Celui de MySQL est '70' (S70mysql). Passez celui de syslog-ng de '01' à '80' par exemple et redémarrez syslog-ng

shell> cd /opt/etc/init.d

shell> mv S01syslog-ng S80syslog-ng

shell> ./S80syslog-ng

Il vous reste à peaufiner le fichier de configuration de syslog-ng en fonction de vos besoins et éventuellement adapter le temps de stockage des logs dans la base de donnée.

MISE A JOUR: ICI

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
  • 3 semaines après...

salut je viens de lire tout le thread, exellent boulot !!

je devrais recevoir mon syno aujourd'hui, et je souhaiterais m'en servir en plus des autres utilisations classiques de server syslog, pour plusieurs routeur, ipcop, lynksys, cisco...

d'ou ma question, le paquage syslog que tu as install

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

En fait, ca serait de mettre les temperatures sur des routeurs cisco par exempe.

j'ai un autre probleme c'est lorsque je veux installer le plugin 'architecte' il me mets cette erreur apres quand je me connecte a l'interface web:

Fatal error: Call to undefined function api_plugin_hook() in /usr/share/cacti/site/include/global_arrays.php on line 620

merci

Bonjour ambre,

quelle temp

Lien vers le commentaire
Partager sur d’autres sites

En fait, ca serait de mettre les temperatures sur des routeurs cisco par exempe.

j'ai un autre probleme c'est lorsque je veux installer le plugin 'architecte' il me mets cette erreur apres quand je me connecte a l'interface web:

Fatal error: Call to undefined function api_plugin_hook() in /usr/share/cacti/site/include/global_arrays.php on line 620

merci

ok..

as-tu d'abord le moyen de r

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.