Rédiger « OVH/VPC02/Munin » ici.
= Installation d'un serveur Munin =
== Installation des paquets ==
{{{
apt-get install munin apache2
}}}
== Ajout des serveurs a monitorer ==
Dans le fichier /etc/munin/munin-conf.d/local.conf :{{{
[infra01.vpc02.auf]
address infra01.vpc02.auf
[filer01.vpc02.auf]
address filer01.vpc02.auf
[supervision01.vpc02.auf]
address supervision01.vpc02.auf
[prod-drupal01-idneuf.vpc02.auf]
address prod-drupal01-idneuf.vpc02.auf
[prod-drupal02-idneuf.vpc02.auf]
address prod-drupal02-idneuf.vpc02.auf
[prod-drupal03-idneuf.vpc02.auf]
address prod-drupal03-idneuf.vpc02.auf
[prod-ori-oai01-idneuf.vpc02.auf]
address prod-ori-oai01-idneuf.vpc02.auf
[prod-proxy01.vpc02.auf]
address prod-proxy01.vpc02.auf
[prod-proxy02.vpc02.auf]
address prod-proxy02.vpc02.auf
[prod-db01-idneuf.vpc02.auf]
address prod-db01-idneuf.vpc02.auf
[prod-db02-idneuf.vpc02.auf]
address prod-db02-idneuf.vpc02.auf
[prod-db03-idneuf.vpc02.auf]
address prod-db03-idneuf.vpc02.auf
[dev-proxy01.vpc02.auf]
address dev-proxy01.vpc02.auf
[dev-drupal01-idneuf.vpc02.auf]
address dev-drupal01-idneuf.vpc02.auf
[dev-ori-oai01-idneuf.vpc02.auf]
address dev-ori-oai01-idneuf.vpc02.auf
}}}
= Configuration des plugins =
Pour relancer l' installation automatique des plugins :{{{
munin-node-configure --shell
}}}
== Plugin Apache ==
Source : [[http://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/|How to Monitor Apache Web Server Load and Page Statistics]]
=== Configuration du module ==
Dans le fichier /etc/apache2/mods-enabled/status.conf, décommenter la ligne "Require ip @ip" par les adresses autorisées:
{{{
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
SetHandler server-status
Require local
Require ip 10.36.0.0/16
# Keep track of extended status information for each request
ExtendedStatus On
# Determine if mod_status displays the first 63 characters of a request or
# the last 63, assuming the request itself is greater than 63 chars.
# Default: Off
#SeeRequestTail On
# Show Proxy LoadBalancer status in mod_status
ProxyStatus On
}}}
=== Cas de Drupal ===
Pour ne pas rentrer en conflit avec le site Drupal, il faut créer un autre virtual host.
Fichier /etc/apache2/sites-available/status.conf :
{{{
Alias /status /var/www/status
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Options None
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
}}}
On créer le répertoire /var/www/status et on donne les droits :
{{{
mkdir /var/www/status
chown www-data-www-data /var/www/status
}}}
On active ensuite le tout :
{{{
a2ensite status
systemctl reload apache2
}}}
== Plugins NginX ==
=== Ajouter au virtual host ===
{{{
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}}}
Puis ajouter dans /etc/munin/plugin-conf.d/munin-node
{{{
[nginx*]
env.url http://localhost/nginx_status
}}}
== Plugins MySQL ==
=== Installer les paquets ===
{{{
apt-get install libcache-cache-perl
}}}
=== Activer les plugins ===
{{{
root@prod-db01-idneuf:~# munin-node-configure --shell
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_bin_relay_log'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_commands'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_connections'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_files_tables'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_bpool'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_bpool_act'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_insert_buf'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_io'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_io_pend'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_log'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_rows'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_semaphores'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_innodb_tnx'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_myisam_indexes'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_network_traffic'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_qcache'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_qcache_mem'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_replication'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_select_types'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_slow'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_sorts'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_table_locks'
ln -s '/usr/share/munin/plugins/mysql_' '/etc/munin/plugins/mysql_tmp_tables'
}}}
Puis exécuter les commandes générées.
Pour le plugin mysql_replication, rajouter la configuration suivante dans etc/munin/plugin-conf.d/munin-node :
{{{
[mysql_replication]
env.slave_io_running_warning 0.5
env.slave_sql_running_warning 0.5
env.seconds_behind_master_warning 300
env.seconds_behind_master_critical 600
}}}
Source : [[http://gallery.munin-monitoring.org/distro/plugins/node.d/mysql_.html|mysql_ - Munin plugin to display misc MySQL server status]]
== Plugins Tomcat6 ==
=== Installer les paquets ===
{{{
apt-get install libxml-simple-perl
}}}
=== Activer les plugins pour ORI-OAI ===
{{{
ln -s /usr/share/munin/plugins/tomcat_access /etc/munin/plugins/tomcat_repository_access
ln -s /usr/share/munin/plugins/tomcat_jvm /etc/munin/plugins/tomcat_repository_jvm
ln -s /usr/share/munin/plugins/tomcat_threads /etc/munin/plugins/tomcat_repository_threads
ln -s /usr/share/munin/plugins/tomcat_volume /etc/munin/plugins/tomcat_repository_volume
ln -s /usr/share/munin/plugins/tomcat_access /etc/munin/plugins/tomcat_harvester_access
ln -s /usr/share/munin/plugins/tomcat_jvm /etc/munin/plugins/tomcat_harvester_jvm
ln -s /usr/share/munin/plugins/tomcat_threads /etc/munin/plugins/tomcat_harvester_threads
ln -s /usr/share/munin/plugins/tomcat_volume /etc/munin/plugins/tomcat_harvester_volume
ln -s /usr/share/munin/plugins/tomcat_access /etc/munin/plugins/tomcat_indexing_access
ln -s /usr/share/munin/plugins/tomcat_jvm /etc/munin/plugins/tomcat_indexing_jvm
ln -s /usr/share/munin/plugins/tomcat_threads /etc/munin/plugins/tomcat_indexing_threads
ln -s /usr/share/munin/plugins/tomcat_volume /etc/munin/plugins/tomcat_indexing_volume
ln -s /usr/share/munin/plugins/tomcat_access /etc/munin/plugins/tomcat_vocabulary_access
ln -s /usr/share/munin/plugins/tomcat_jvm /etc/munin/plugins/tomcat_vocabulary_jvm
ln -s /usr/share/munin/plugins/tomcat_threads /etc/munin/plugins/tomcat_vocabulary_threads
ln -s /usr/share/munin/plugins/tomcat_volume /etc/munin/plugins/tomcat_vocabulary_volume
ln -s /usr/share/munin/plugins/tomcat_access /etc/munin/plugins/tomcat_search_access
ln -s /usr/share/munin/plugins/tomcat_jvm /etc/munin/plugins/tomcat_search_jvm
ln -s /usr/share/munin/plugins/tomcat_threads /etc/munin/plugins/tomcat_search_threads
ln -s /usr/share/munin/plugins/tomcat_volume /etc/munin/plugins/tomcat_search_volume
}}}
Il faut ensuite rajouter la configuration suivante dans etc/munin/plugin-conf.d/munin-node :
{{{
[tomcat_repository*]
env.ports 8180
env.user admin
env.password xxxxxxx
[tomcat_harvester*]
env.ports 8181
env.user admin
env.password xxxxxxx
[tomcat_indexing*]
env.ports 8182
env.user admin
env.password xxxxxxx
[tomcat_vocabulary*]
env.ports 8183
env.user admin
env.password xxxxxxx
[tomcat_search*]
env.ports 8184
env.user admin
env.password xxxxxxx
}}}
= Optimisation de RRD =
== TMPFS ==
Pour mettre le repertoire /var/cache/munin/www en tmpfs, ajouter dans /etc/fstab :{{{
tmpfs /var/cache/munin/www tmpfs rw,mode=775,uid=munin,gid=munin,size=300M 0 0
}}}
== Rrdcached ==
=== Installer rrdcached ===
Source : [[http://guide.munin-monitoring.org/en/latest/master/rrdcached.html|Scaling the munin master with rrdcached]]
{{{
apt-get install rrdcached
}}}
=== Configuration de rrdcached pour Munin ===
==== Créer un répertoire pour le journal ====
{{{
/var/lib/munin/rrdcached-journal
chown munin:munin /var/lib/munin/rrdcached-journal
}}}
==== Script de démarrage ====
Dans /etc/systemd/system/, créer le fichier rrdcached-munin.service :{{{
[Unit]
Description=Munin rrdcached
[Service]
Restart=always
User=munin
PermissionsStartOnly=yes
ExecStartPre=/usr/bin/install -d -o munin -g munin -m 0755 \
/var/lib/munin/rrdcached-journal /run/munin
ExecStart=/usr/bin/rrdcached \
-g -B -b /var/lib/munin/ \
-p /run/munin/munin-rrdcached.pid \
-F -j /var/lib/munin/rrdcached-journal/ \
-m 0660 -l unix:/run/munin/rrdcached.sock \
-w 1800 -z 1800 -f 3600
ExecStartPost=/bin/sleep 1 ; /bin/setfacl -m u:www-data:rw /run/munin/rrdcached.sock
[Install]
WantedBy=multi-user.target
}}}
Puis activer le script :{{{
systemctl enable rrdcached-munin.service
}}}
Désactiver ensuite le lancement par défaut créer lors de l'installation du paquet : /etc/default/rrdcached{{{
# 0: start rrdcached on boot, 1: do not start rrdcached on boot
# default: 0
DISABLE=1
}}}
=== Utilisation avec Munin ===
Dans le fichier /etc/munin/munin.conf {{{
rrdcached_socket /run/munin/rrdcached.sock
}}}
=== Installation de Munin via Ansible ===
{{{
---
- name: munin-node
hosts:
- ovh-vpc02-prod
become: True
vars:
munin_server: 10.242.0.3
tasks:
- name: installation Munin Node
become: true
apt: pkg="{{ item }}" state=latest
with_items:
- munin-node
- munin-libvirt-plugins
- name: reconfiguration de munin-node
tags: configure
shell: "munin-node-configure --shell | sh"
- name: configuration Munin Node
become: true
lineinfile: dest=/etc/munin/munin-node.conf insertafter="^allow " regexp="^allow \^{{ munin_server | regex_escape }}\$$" line="allow ^{{ munin_server | regex_escape }}$"
tags: munin-node
- name: redemarrage munin-node
service: name=munin-node state=restarted
co
}}}