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