Difference between revisions of "LCG-FR / SA1-FR Monitoring WG CACTI"

Un article de lcgwiki.
Jump to: navigation, search
(spine)
Ligne 1: Ligne 1:
 +
= Installation de CACTI =
 +
 +
http://www.cacti.net/
 +
 +
== Installation ==
 +
Suivre le manuel très bien fait:
 +
http://www.cacti.net/downloads/docs/pdf/manual.pdf
 +
 +
=== Installation des RPMs ===
 +
 +
Un certian nombre de RPMs utiles se trouvent sur le repositary du LAL:
 +
 +
wget http://quattorsrv.lal.in2p3.fr/packages/cacti/cacti-0.8.7b-2.el4.rf.noarch.rpm
 +
wget http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/php-snmp-4.3.9-3.22.9.x86_64.rpm
 +
wget http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/\
 +
  mysql-server-4.1.20-3.RHEL4.1.el4_6.1.x86_64.rpm
 +
wget http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/perl-DBD-MySQL-2.9004-3.1.x86_64.rpm
 +
 +
rpm -ivh http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/perl-DBD-MySQL-2.9004-3.1.x86_64.rpm mysql-server-4.1.20-3.RHEL4.1.el4_6.1.x86_64.rpm
 +
 
 +
=== Config Mysql ===
 +
Se référer a la Doc: http://www.cacti.net/downloads/docs/pdf/manual.pdf
 +
 +
Ceci n'est qu'un copier/coller des actions faites sur un site:
 +
/etc/init.d/mysqld start
 +
mysqladmin --user=root password *yourpasswd*
 +
mysqladmin --user=root create cacti -p
 +
mysql cacti -p  < /var/www/cacti/cacti.sql
 +
 +
Modifier
 +
/var/www/cacti/include/config.php
 +
 +
=== Config http ===
 +
 +
Modifier le fichier:
 +
/etc/httpd/conf.d/cacti.conf
 +
 +
=== Config php ===
 +
Modifier le fichier /etc/php.ini:
 +
memory_limit = 128M
 +
 +
=== Vérifier que snmp V1 répond ===
 +
 +
snmpwalk -v 1 -c public 'your switch'
 +
 +
= Configuration =
 +
== Ajout des nouveaux devices en utilisant les commandes en ligne ==
 +
Cela permet  d'automatiser la configuration de plusieurs machines:
 +
 +
http://www.cacti.net/downloads/docs/html/scripts.html
 +
 +
Ajouter un device (attention utiliser template 1 pour pouvoir recuperer les stats des interfaces)
 +
for i in $(cat /root/CACTI/wnlistplat); do php -q add_device.php --avail=ping --ping_method=udp --ping_retries=1 \
 +
  --description=$i --ip=$i --template=1 --community="public" ; done
 +
 +
Ajouter les devices dans un tree:
 +
for i in $(seq  83 147); do php -q add_tree.php --type=node --node-type=host --tree-id=4 --host-id=$i; done
 +
 +
Ajouter les graphes (type 'ds') des interfaces pour tous les devices:
 +
for i in $(seq  83 147); do php -q add_graphs.php --host-id=$i --graph-type=ds --snmp-query-id=1 \
 +
--snmp-query- type-id=13 --snmp-field=ifOperStatus  --snmp-value=Up --graph-template-id=2 ; done
 +
 +
Ajouter les graphes cg linux
 +
for i in $(seq  83 147); do  for j in  7 8 9 10 12 ; do  php -q add_graphs.php --host-id=$i  \
 +
--snmp-query-id=6 --graph- template-id=$j --graph-type=cg; done; done
 +
 +
= Dépannage =
 +
 +
== /var/www/cacti/log/cacti.log ==
 +
 +
* Time < Poller Interval
 +
* Hosts
 +
* DataSources
 +
* RRDsProcessed
 +
 +
== rrdtool fetch ==
 +
 +
rrdtool fetch /var/www/cacti/rra/<rrdfile>.rrd AVERAGE
 +
 +
= Optimisation =
 +
 +
== Migrer vers InnoDB ==
 +
Pour pouvoir utiliser des locks par ligne
 +
 +
== Créer des indexes ==
 +
http://bugs.cacti.net/view.php?id=1333
 +
create index `data_template_data_id` ON `data_input_data` (`data_template_data_id`);
 +
create index `host_id_snmp_query_id_snmp_index` ON data_local (`host_id`,`snmp_query_id`,`snmp_index`);
 +
create index `local_data_id_data_source_name` ON data_template_rrd (`local_data_id`,`data_source_name`);
 +
create index `graph_template_id_local_graph_id` ON graph_templates_item (`graph_template_id`,`local_graph_id`);
 +
create index `local_graph_template_item_id` ON graph_templates_item (`local_graph_template_item_id`);
 +
create index `host_id_snmp_query_id_snmp_index` ON host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);
 +
create index `local_data_id_rrd_path` ON poller_item (`local_data_id`,`rrd_path`);
 +
create index `host_id_rrd_next_step` ON poller_item (`host_id`,`rrd_next_step`);
 +
create index order_key3 on graph_tree_items (order_key(3));
 +
create index order_key6 on graph_tree_items (order_key(6));
 +
create index order_key9 on graph_tree_items (order_key(9));
 +
create index host_id_snmp_query_id ON host_snmp_cache (host_id,snmp_query_id);
 +
create index host_id_snmp_port ON poller_item (host_id,snmp_port);
 +
 
== Spine ==
 
== Spine ==
 +
 
Poller alternatif optimisé.
 
Poller alternatif optimisé.
 
* Site: http://www.cacti.net/spine_info.php
 
* Site: http://www.cacti.net/spine_info.php
Ligne 24: Ligne 125:
 
* Cacti -> Console -> Settings -> Poller -> Poller Type
 
* Cacti -> Console -> Settings -> Poller -> Poller Type
 
  spine
 
  spine
 +
 +
= Extension =
 +
 +
= Grille =

Version du 10:29, 17 décembre 2008

Installation de CACTI

http://www.cacti.net/

Installation

Suivre le manuel très bien fait: http://www.cacti.net/downloads/docs/pdf/manual.pdf

Installation des RPMs

Un certian nombre de RPMs utiles se trouvent sur le repositary du LAL:

wget http://quattorsrv.lal.in2p3.fr/packages/cacti/cacti-0.8.7b-2.el4.rf.noarch.rpm
wget http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/php-snmp-4.3.9-3.22.9.x86_64.rpm
wget http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/\
 mysql-server-4.1.20-3.RHEL4.1.el4_6.1.x86_64.rpm
wget http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/perl-DBD-MySQL-2.9004-3.1.x86_64.rpm
rpm -ivh http://quattorsrv.lal.in2p3.fr/packages/os/sl460-x86_64/base/SL/RPMS/perl-DBD-MySQL-2.9004-3.1.x86_64.rpm mysql-server-4.1.20-3.RHEL4.1.el4_6.1.x86_64.rpm
 

Config Mysql

Se référer a la Doc: http://www.cacti.net/downloads/docs/pdf/manual.pdf

Ceci n'est qu'un copier/coller des actions faites sur un site:

/etc/init.d/mysqld start
mysqladmin --user=root password *yourpasswd*
mysqladmin --user=root create cacti -p
mysql cacti -p  < /var/www/cacti/cacti.sql
Modifier 
/var/www/cacti/include/config.php

Config http

Modifier le fichier:

/etc/httpd/conf.d/cacti.conf

Config php

Modifier le fichier /etc/php.ini:

memory_limit = 128M

Vérifier que snmp V1 répond

snmpwalk -v 1 -c public 'your switch'

Configuration

Ajout des nouveaux devices en utilisant les commandes en ligne

Cela permet d'automatiser la configuration de plusieurs machines:

http://www.cacti.net/downloads/docs/html/scripts.html

Ajouter un device (attention utiliser template 1 pour pouvoir recuperer les stats des interfaces)

for i in $(cat /root/CACTI/wnlistplat); do php -q add_device.php --avail=ping --ping_method=udp --ping_retries=1 \
 --description=$i --ip=$i --template=1 --community="public" ; done

Ajouter les devices dans un tree:

for i in $(seq  83 147); do php -q add_tree.php --type=node --node-type=host --tree-id=4 --host-id=$i; done

Ajouter les graphes (type 'ds') des interfaces pour tous les devices:

for i in $(seq  83 147); do php -q add_graphs.php --host-id=$i --graph-type=ds --snmp-query-id=1 \
--snmp-query- type-id=13 --snmp-field=ifOperStatus  --snmp-value=Up --graph-template-id=2 ; done

Ajouter les graphes cg linux

for i in $(seq  83 147); do  for j in  7 8 9 10 12 ; do  php -q add_graphs.php --host-id=$i  \
--snmp-query-id=6 --graph- template-id=$j --graph-type=cg; done; done

Dépannage

/var/www/cacti/log/cacti.log

  • Time < Poller Interval
  • Hosts
  • DataSources
  • RRDsProcessed

rrdtool fetch

rrdtool fetch /var/www/cacti/rra/<rrdfile>.rrd AVERAGE

Optimisation

Migrer vers InnoDB

Pour pouvoir utiliser des locks par ligne

Créer des indexes

http://bugs.cacti.net/view.php?id=1333

create index `data_template_data_id` ON `data_input_data` (`data_template_data_id`);
create index `host_id_snmp_query_id_snmp_index` ON data_local (`host_id`,`snmp_query_id`,`snmp_index`);
create index `local_data_id_data_source_name` ON data_template_rrd (`local_data_id`,`data_source_name`);
create index `graph_template_id_local_graph_id` ON graph_templates_item (`graph_template_id`,`local_graph_id`);
create index `local_graph_template_item_id` ON graph_templates_item (`local_graph_template_item_id`);
create index `host_id_snmp_query_id_snmp_index` ON host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);
create index `local_data_id_rrd_path` ON poller_item (`local_data_id`,`rrd_path`);
create index `host_id_rrd_next_step` ON poller_item (`host_id`,`rrd_next_step`);
create index order_key3 on graph_tree_items (order_key(3));
create index order_key6 on graph_tree_items (order_key(6));
create index order_key9 on graph_tree_items (order_key(9));
create index host_id_snmp_query_id ON host_snmp_cache (host_id,snmp_query_id);
create index host_id_snmp_port ON poller_item (host_id,snmp_port);

Spine

Poller alternatif optimisé.

Pré-requis

  • net-snmp-devel
  • mysql
  • mysql-devel
  • openssl-devel

Installation

wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7a.tar.gz
tar xvzf cacti-spine-0.8.7a.tar.gz
cd spine-0.8.7a
./configure
make
make install
  • Editer /usr/local/spine/spine.conf
  • Cacti -> Console -> Settings -> Paths -> Spine Poller File Path
/usr/local/spine/spine
  • Cacti -> Console -> Settings -> Poller -> Poller Type
spine

Extension

Grille