Liste des connexions au serveur FTP
ftptop
Top des interfaces réseau
# Installation
apt-get install iftop
iftop
Top apache
# Installation
apt-get install apachetop
apachetop
Top MySQL
# Installation
apt-get install mtop
mtop
Monitoring réseau :
# Liste les connexions établies netstat -tap # Liste les ports en écoute netstat -tulp # ou lsof -n | grep LISTEN # Liste les connexions UDP lsof -n | grep UDP
TODO
Munin se compose d’un grapheur (munin) qui collecte les informations, et d’un daemon (munin-node) sur les noeuds (les serveurs monitorée, y compris celui hébergeant le grapheur).
On installe le grapheur et le daemon sur le serveur qui effectuera la collecte des informations (on installe aussi logtail qui est utilisé par certains plugins) :
apt-get install munin munin-node logtail
La configuration du grapheur se fait dans /etc/munin/munin.conf :
# On déplace éventuellement le dossier ou sont stockés les données vers le dossier /home, ou il est préférable de centraliser toutes les données # Il faudra peut-être copier le fossier /var/lib/munin (mais pas le déplacer, car certains dossiers comme /var/lib/munin/plugin-state seront toujours utilisés) dbdir /home/munin # On défini le dossier dans lequel se trouveront les pages de compte rendu accessibles en HTTP htmldir /home/www/munin # On défini les serveurs monitorés, en commençant donc par le serveur local [server1.domain.tld] address 127.0.0.1 use_node_name yes # On ajoute éventuellement d'autres serveurs en définissant leur IP [server2.domain.tld] address xxx.xxx.xxx.xx use_node_name yes
On ajoute ensuite l’alias dans la configuration d’Apache (/etc/apache2/conf.d/aliases.conf) :
Alias /monitoring /home/www/munin/ <Directory /home/www/munin/> AllowOverride All </Directory>
On peut aussi déclarer cet alias dans la configuration d’un vhost pour le limiter à celui-ci, ou créer un vhost pour y accéder via un sous domaine (monitoring.domain.tld).
Si un serveur externe est monitoré, il faut ajouter la règle suivante à iptables pour autoriser Munin à s’y connecter :
iptables -A OUTPUT -p tcp --dport 4949 -j ACCEPT
Le grapheur contacte les noeuds toutes les 5 minutes (par défaut) via une tâche cron dans /etc/cron.d/munin qui appelle la commande munin-cron. On peut exécuter cette commande, mais il faut le faire depuis l’utilisateur munin, car si on le fait en root, les fichiers de données générés vont avoir root comme propriétaire et ne pourront pas être écrasés lors de la prochaine exécution du cron :
sudo -u munin munin-cron
Le compte rendu de l’exécution de cette tâche se trouve dans /var/log/munin/munin-*.log, principalement munin-uptade.log.
Si ce n’est pas déjà fait, on installe le daemon :
apt-get install munin-node logtail
La configuration se fait dans /etc/munin/munin-node.conf :
# IP(s) autorisée(s) à récupérer les donnnées # On autorise le grapheur local, s'il existe allow ^127\.0\.0\.1$ # Si un grapheur doit se connecter depuis un autre serveur, il faut préciser l'IP de celui-ci allow ^xxx\.xxx\.xxx\.xxx$
Si un grapheur doit se connecter depuis un autre serveur, il faut ajouter les règles suivantes à iptables :
# "-s xxx.xxx.xxx.xxx" est optionnel et permet de limiter l'accès au serveur du grapheur autorisé iptables -A INPUT -p tcp --dport 4949 -s xxx.xxx.xxx.xxx -j ACCEPT iptables -A OUTPUT -p tcp --dport 4949 -j ACCEPT
Lorsqu’un grapheur se connecte, le résultat de l’exécution des plugins se trouve dans /var/log/munin/munin-node.log.
Après tout changement de configuration, ou ajout/suppression de plugin, il faut relancer le daemon :
/etc/init.d/munin-node restart
Les plugins se trouvent dans le dossier /usr/share/munin/plugins/. Certains ont été activés automatiquement lors de l’installation.
Pour activer un plugin, il faut créer un lien symbolique (ou copier le fichier) dans /etc/munin/plugins/ :
ln -s /usr/share/munin/plugins/nom_plugin /etc/munin/plugins/nom_plugin
Le nom du fichier de certans plugins finit par un underscore, il faut donc ajouter un paramètre à la fin du nom du fichier (ou plus proprement le nom du lien symbolique) :
ln -s /usr/share/munin/plugins/if_ /etc/munin/plugins/if_eth0
Pour désactiver un plugin, il suffit de supprimer le lien symbolique :
rm /etc/munin/plugins/nom_plugin
La configuration des plugins se fait dans le fichier /etc/munin/plugin-conf.d/munin-node dans lequel on peut forcer par exemple l’user ou le groupe avec lesquels sera exécuté tel ou tel plugin (munin:munin par défaut) :
# Tous les plugins dont le nom commence par mysql [mysql*] user root # Le module postfix_volume [postfix_mailvolume] group adm
Certains plugin permettent aussi de définir certains paramètres sous la forme env.nom_param valeur dans ce fichier. Pour d’autre, il faudra définir ces paramètres directement dans le fichier du plugin.
Pour tester que tout est en place pour le bon fonctionnement d’un plugin, utiliser la commande suivante :
/usr/share/munin/plugins/nom_plugin autoconf
On peut éventuellement exécuter le fichier du plugin pour voir s’il retourne les bonnes informations, mais pour certains (ceux qui utilisent les fichiers de log), chaque donnée n’est comptabilisée qu’une fois et ne sera donc pas comptabilisée lors de la prochaine exécution du plugin par le daemon.
Pour ajouter un plugin, il suffit de créer le fichier du plugin dans /usr/share/munin/plugins/, de le rendre accessible en écriture (chmod a+x /usr/share/munin/plugins/nom_plugin), puis de l’activer en créant le lien symbolique dans /etc/munin/plugins/. On peut récupérer des plugins à l’adresse suivante : http://muninexchange.projects.linpro.no/.
Configuration de certains plugins non installés par défaut, ou ne fonctionnant pas sans configuration :
Statistiques sur le filtrage AMaViS.
Créer le fichier /usr/share/munin/plugins/amavis-debian et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/amavis-debian
Ajouter la configuration du plugin dans /etc/munin/plugin-conf.d/munin-node :
# Pour accéder aux logs de Postfix, les plugins en rapport doivent s'exécuter avec le même groupe que Postfix [amavis*] group adm
Activer le plugin :
ln -s /usr/share/munin/plugins/amavis-debian /etc/munin/plugins/amavis-debian
Statistiques d’accès Apache.
Ce plugin nécessite que le module apache mod_status soit actif et que ce statut soit accessible via l’url http://127.0.0.1/server-status?auto (par défaut).
Pour activer le module mod_status :
a2enmod status
Puis ajouter les lignes suivantes dans /etc/apache2/sites-available/default :
ExtendedStatus On <IfModule mod_status.c> <Location /server-status> SetHandler server-status # On limite l'accès à l'IP locale et l'IP du serveur (nécessaire car le plugin se connecte à l'IP du serveur, et non à 127.0.0.1) Order deny,allow Deny from all Allow from 127.0.0.1 Allow from xxx.xxx.xxx.xxx </Location> </IfModule>
On redémarre Apache :
apache2ctl graceful
Le plugin est présent d’origine, il suffit de l’activer si ce n’est pas déjà fait :
ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
Statistiques sur les processus Apache.
La démarche est exactement la même que pour le plugin apache_accesses.
Statistiques sur la quantité de données transférées via HTTP.
La démarche est exactement la même que pour le plugin apache_accesses.
Statistiques sur l’activité d’Apache.
Créer le fichier /usr/share/munin/plugins/apache_activity et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/apache_activity
La suite de la démarche est la même que pour le plugin apache_accesses.
Statistiques sur les packets à mettre à jour via apt-get.
Ce plugin nécessite que la liste des packets APT soit régulièrement mise à jour. On ajoute donc cette tâche par exemple dans /etc/cron.d/munin :
# Plugin APT (mise à jour de la liste des packets APT toutes les heures) 53 * * * * root apt-get update > /dev/null 2>&1
Le plugin étant présent d’origine, il suffit ensuite de l’activer si ce n’est pas déjà fait :
ln -s /usr/share/munin/plugins/apt_all /etc/munin/plugins/apt_all
Statistiques sur l’utilisation CPU par utilisateur.
Créer le fichier /usr/share/munin/plugins/cpubyuser et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/cpubyuser
Ajouter la configuration du plugin dans /etc/munin/plugin-conf.d/munin-node :
[cpubyuser] # Définit les utilisateurs pour lesquels on affiche l'utilisation CPU env.USERS root daemon www-data mysql proftpd postfix munin clamav amavis
Activer le plugin :
ln -s /usr/share/munin/plugins/cpubyuser /etc/munin/plugins/cpubyuser
Statistiques sur la fréquence des CPUs.
Créer le fichier /usr/share/munin/plugins/cpuspeed2 et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/cpuspeed2
Activer le plugin :
ln -s /usr/share/munin/plugins/cpuspeed2 /etc/munin/plugins/cpuspeed2
Statistiques sur la température des CPUs.
Créer le fichier /usr/share/munin/plugins/cputemp et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/cputemp
Activer le plugin :
ln -s /usr/share/munin/plugins/cputemp /etc/munin/plugins/cputemp
Statistiques SMART sur la température des disques.
Ce plugin nécessite l’installation de smartctl :
apt install smartmontools
Modifier la configuration du plugin dans /etc/munin/plugin-conf.d/munin-node :
[hddtemp_smartctl] user root group disk # On précise les disques à monitorer env.drives sda sdb # On précise le type de chaque disque à monitorer env.type_sda ata env.type_sdb ata
Activer le plugin :
ln -s /usr/share/munin/plugins/hddtemp_smartctl /etc/munin/plugins/hddtemp_smartctl
Statistiques sur la charge CPU
Créer le fichier /usr/share/munin/plugins/load_extended et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/load_extended
Activer le plugin :
ln -s /usr/share/munin/plugins/load_extended /etc/munin/plugins/load_extended
Ce plugin remplace le plugin load qu’on doit donc retirer :
rm /etc/munin/plugins/load
Statistiques de ping vers des hots prédéfinis.
Créer le fichier /usr/share/munin/plugins/multiping et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/multiping
Ajouter la configuration du plugin dans /etc/munin/plugin-conf.d/munin-node :
[multiping] env.hosts google.com,yahoo.com,orange.fr,free.fr env.names Google,Yahoo,Orange,Free env.ping_args -c 2
Activer le plugin :
ln -s /usr/share/munin/plugins/multiping /etc/munin/plugins/multiping
Statistiques sur les requêtes MySQL.
Créer le fichier /usr/share/munin/plugins/mysql_connections et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/mysql_connections
Activer le plugin :
ln -s /usr/share/munin/plugins/mysql_connections /etc/munin/plugins/mysql_connections
Statistiques sur la taille des bases de données MySQL.
Créer le fichier /usr/share/munin/plugins/mysql_size_all et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Si les bases de données ne sont pas dans /var/lib/mysql, il faut éditer une ligne vers la fin du fichier pour modifier ce chemin :
foreach my $f (glob("/home/mysql/*")) {
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/mysql_size_all
Activer le plugin :
ln -s /usr/share/munin/plugins/mysql_size_all /etc/munin/plugins/mysql_size_all
Statistiques sur le décalage entre l’heure du serveur et les différents serveurs NTP utilisés.
Créer le fichier /usr/share/munin/plugins/ntp_peers et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/ntp_peers
Activer le plugin :
ln -s /usr/share/munin/plugins/ntp_peers /etc/munin/plugins/ntp_peers
Ce plugin pouvant remplacer le plugin ntp_ pour lequel une instance a été crée pour chaque serveur NTP utilisé (ce qui peut être assez envahissant), on peut supprimer tous les liens symboliques vers ce plugin (sous la forme “ntp_domain.tld”), donc en principe supprimer tous les liens commencant par “ntp_” sauf ntp_state et ntp_peers.
Statistiques sur les serveurs NTP utilisés.
Par défaut, ce plugin est dans la catégorie “Other”, mais comme les autres plugins de NTP sont dans la catégorie “NTP”, on ajoute la ligne définissant la catégorie après celle définissant le titre dans le fichier /usr/share/munin/plugins/ntp_states :
print "graph_title NTP states\n"; print "graph_category ntp\n";
Le plugin est présent d’origine, il suffit de l’activer si ce n’est pas déjà fait :
ln -s /usr/share/munin/plugins/ntp_states /etc/munin/plugins/ntp_states
Statistiques sur le nombre de fichiers transférés via FTP.
Créer le fichier /usr/share/munin/plugins/proftpd_count et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Il faudra peut-être modifier le chemin du fichier log de Proftpd dans ce fichier :
LOGFILE=${logfile:-/var/log/proftpd/xferlog}
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/proftpd_count
Ajouter la configuration du plugin dans /etc/munin/plugin-conf.d/munin-node :
# Pour accéder aux logs de Proftpd, les plugins en rapport doivent s'exécuter avec le même groupe que Proftpd [proftpd*] group adm
Activer le plugin :
ln -s /usr/share/munin/plugins/proftpd_count /etc/munin/plugins/proftpd_count
Statistiques sur la quantité de données transférées via FTP.
La démarche est exactement la même que pour le plugin proftpd_count.
Statistiques sur les filles d’attente de Postfix.
Ajouter la configuration du plugin dans /etc/munin/plugin-conf.d/munin-node :
# Pour accéder aux logs de Postfix, les plugins en rapport doivent s'exécuter avec le même groupe que Postfix [postfix_*] group adm
Le plugin étant présent d’origine, il suffit ensuite de l’activer si ce n’est pas déjà fait :
ln -s /usr/share/munin/plugins/postfix_mailqueue /etc/munin/plugins/postfix_mailqueue
Statistiques sur le volume de données transitant par Postfix.
La démarche est exactement la même que pour le plugin postfix_mailqueue.
Statistiques sur le nombre d’emails délivré et rejetés par Postfix.
La démarche est exactement la même que pour le plugin postfix_mailstats.
Statistiques sur le filtrage des emails par Postfix.
Créer le fichier /usr/share/munin/plugins/postfix_mailfiltered et y copier le contenu du plugin correspondant sur http://muninexchange.projects.linpro.no/.
Par défaut, ce plugin est dans la catégorie “Mail”, mais comme les autres plugins de Postfix sont dans la catégorie “Postfix”, on modifie la ligne concernée :
echo 'graph_category postfix'
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/postfix_mailfiltered
La suite de la démarche est la même que pour le plugin postfix_mailstats.
Statistiques sur les processus.
Le plugin processes disponible sur http://muninexchange.projects.linpro.no/ est différent du plugin du même nom présent d’origine. On va donc récupérer le contenu de ce plugin et le copier dans un fichier /usr/share/munin/plugins/processes2.
Rendre ce fichier accessible en écriture :
chmod a+x /usr/chare/munin/plugins/processes2
Activer le plugin :
ln -s /usr/share/munin/plugins/processes2 /etc/munin/plugins/processes2
Ce plugin remplace le plugin processes qu’on doit donc retirer :
rm /etc/munin/plugins/processes
Statistiques SMART des disques.
Ce plugin nécessite l’installation de smartctl :
apt install smartmontools
Ajouter la configuration du plugin dans /etc/munin/plugin-conf.d/munin-node :
[smart_*] user root group disk # Pour les disques SATA, il faut ajouter l'option "-d ata", on doit donc overrider les paramètres utilisés par par défaut env.smartargs -a -d ata
Pour activer ce plugin, on doit créer un lien symbolique pour chaque disque à surveiller :
ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sda ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sdb
Statistiques sur les serveurs NTP utilisés.
Par défaut, ce plugin est dans la catégorie “Other”, mais sa place est plus dans la catégorie “System”, on ajoute donc la ligne définissant la catégorie après celle définissant le titre dans le fichier /usr/share/munin/plugins/update :
echo 'graph_title Uptime' echo 'graph_category system'
Le plugin est présent d’origine, il suffit de l’activer si ce n’est pas déjà fait :
ln -s /usr/share/munin/plugins/uptime /etc/munin/plugins/uptime
Quelques plugins utiles, qu’il faut juste activer s’ils ne le sont pas par défaut :