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 : 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:
<IfModule mod_status.c>
# 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.
<Location /server-status>
SetHandler server-status
Require local
Require ip 10.36.0.0/16
</Location>
# 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
<IfModule mod_proxy.c>
# Show Proxy LoadBalancer status in mod_status
ProxyStatus On
</IfModule>
</IfModule>
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 :
<VirtualHost *:80>
Alias /status /var/www/status
<Directory /var/www/status>
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
Options None
</Directory>
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
</Location>
</VirtualHost>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 : 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 : 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