Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
doc:formations:hebergement:serveur:observer [2020/11/19 14:37] – [Services en place sur le serveur] jeremie | doc:formations:hebergement:serveur:observer [2023/11/08 11:39] (Version actuelle) – [Outils divers] jeremie |
---|
[[public:heberger_ses_services|< Retour à l'index]] | [[public:services_en_ligne:herberger_ses_services_formation|< Retour à l'index]] |
| |
====== Observer vos serveurs ====== | ====== Observer vos serveurs ====== |
| |
| Voyez aussi: [[doc:formations:hebergement:serveur:proteger|protéger]] votre serveur. |
===== Observer à distance ===== | ===== Observer à distance ===== |
| |
Une des solutions les plus simples reste [[doc:formations:hebergement:serveur:monitorix|Monitorix]]. Zabbix et Nagios sont extrêmement puissants... mais particulièrement lourds. Munin est un choix intermédiaire et plus facilement cofigurable. | Une des solutions les plus simples pour surveiller l'usage et la charge d'un serveur reste [[doc:formations:hebergement:serveur:monitorix|Monitorix]]. [[https://www.zabbix.com|Zabbix]] et [[https://www.nagios.org/|Nagios]] sont extrêmement puissants... mais particulièrement lourds. Enfin, [[http://munin-monitoring.org/|Munin]] est un choix intermédiaire et plus facilement configurable, et moins joli. |
| |
Une option en ligne de commande, mais qui permet de générer des graphiques est [[http://nmon.sourceforge.net/pmwiki.php|nmon]] associé à ''nmonChart'' ([[http://nmon.sourceforge.net/docs/sampleC31.html|ex.]]). Nmon peut etre utilisé comme datalogger ou en mode interactif (ci-dessous). | Une option en ligne de commande, mais qui permet de générer des graphiques est [[http://nmon.sourceforge.net/pmwiki.php|nmon]] associé à ''nmonChart'' ([[http://nmon.sourceforge.net/docs/sampleC31.html|ex.]]). Nmon peut etre utilisé comme datalogger ou en mode interactif (ci-dessous). |
* ''iotop'' vous permet d'observer les lectures/écritures disques | * ''iotop'' vous permet d'observer les lectures/écritures disques |
* ''iftop'' vous permet d'observer les transferts réseaux et la bande passante, ainsi que les connexion en cours (utilisez ''whois'' sur l'IP ou ''nslookup'' pour avoir davatange d'information si une connexion vous parait suspecte) | * ''iftop'' vous permet d'observer les transferts réseaux et la bande passante, ainsi que les connexion en cours (utilisez ''whois'' sur l'IP ou ''nslookup'' pour avoir davatange d'information si une connexion vous parait suspecte) |
* ''nmon'' qui fait de tout, et que l'on peut lancer directement avec une configuration comme ceci ''NMON=cmd nmon'' (cpu, memory, disk) | * ''nmon'' qui fait de tout, et que l'on peut lancer directement avec une configuration comme ceci ''NMON=cmdn nmon'' (cpu, memory, disk, network) |
| |
:!: Ce sont des notions fondamentales et différentes lorsque vous cherchez à comprendre un ralentissament sur vos serveurs. | :!: Ce sont des notions fondamentales et différentes lorsque vous cherchez à comprendre un ralentissament sur vos serveurs. |
netstat -tanp | netstat -tanp |
| |
ou un peu plus verbeux, et trié par utilisateur pour mieux s'y retrouver: | ou un peu plus verbeux, et trié par utilisateur pour mieux s'y retrouver (''ss'' est plus moderne): |
| |
ss -puta | column -t | (read -r; printf "%s\n" "$REPLY"; sort -k7,7) | ss -puta | column -t | (read -r; printf "%s\n" "$REPLY"; sort -k7,7) |
:!: Un autre piège est que contrairement au ''crontab -e'' de l'utilisateur, les fichiers crons déposés dans le dossier ''/etc/cron.d'' interdisent certains caractères dans les commandes à lancer! C'est piégeux car aucune erreur ne sera fournie mais la commande ne sera pas exécutée (convention de nommage ''run-parts'': pas de points, seulement des lettres, chiffres, souligné, tiret) | :!: Un autre piège est que contrairement au ''crontab -e'' de l'utilisateur, les fichiers crons déposés dans le dossier ''/etc/cron.d'' interdisent certains caractères dans les commandes à lancer! C'est piégeux car aucune erreur ne sera fournie mais la commande ne sera pas exécutée (convention de nommage ''run-parts'': pas de points, seulement des lettres, chiffres, souligné, tiret) |
| |
| Plutot que d'abuser de cron, il est souvent préférable d'utiliser ''systemd'' (voyez cet exemple pour [[doc:formations:hebergement:serveur:mattermost:installation|mattermost]]). |
===== Filtrage des entrées de log ===== | ===== Filtrage des entrées de log ===== |
| |
| |
| Dans la version la plus simple, vous pouvez faire un ''less'' ou un ''grep'' sur ''/var/log/syslog'' et autres fichiers, mais c'est généralement difficile d'extraire la bonne information car ces journaux sont souvent détaillés et redondants, ce qui est bien pour diagnostiquer un problème. |
| |
| En ligne de commande on peut se référer à deux outils chargés de vous faire des rapports synthétiques: ''logcheck -p'' (''p'' pour paranoid), et ''logwatch'' qui est déjà plus verbeux. |
| |
==== Pollution par "cron" ==== | ==== Pollution par "cron" ==== |
Sep 3 10:12:01 service CRON[32312]: pam_unix(cron:session): session closed for user root | Sep 3 10:12:01 service CRON[32312]: pam_unix(cron:session): session closed for user root |
| |
On peut désactiver l'enregistrement des lignes de sessions non interactives via ''/etc/pam.d/common-session-noninteractive'' et y ajouter la ligne suivante, juste avant l'appel à ''pam_unix.so'': | On peut désactiver l'enregistrement des lignes de sessions non interactives via ''/etc/pam.d/common-session-noninteractive'' et y ajouter la ligne suivante, juste avant la référence à ''pam_unix.so'': |
| |
session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid | session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid |
| |
Pour rediriger toute l'activité ''cron'' dans son propre journal, et l'empécher de polluer le ''syslog'', il faut le retirer de la ligne ''catchall'' dans ''/etc/rsyslog.conf'' (dans la section RULES). Ensuite, on ajoute une règle qui lui est spécifique dans la section nommée "standard log files": | Pour rediriger toute l'activité ''cron'' dans son propre journal, et l'empécher de polluer le ''syslog'', il faut le retirer de la section ''catch-all'' dans ''/etc/rsyslog.conf'' (dans la section RULES). Ensuite, on ajoute une règle qui lui est spécifique dans la section nommée "standard log files": |
| |
cron.* /var/log/cron.log | cron.* /var/log/cron.log |
==== Filtrer des lignes spécifiques ==== | ==== Filtrer des lignes spécifiques ==== |
| |
On peut aussi/sinon filtrer directement par le contenu textuel du message, par exemlple ici ''api/stats.sh'' (faites attention à ne pas filtrer d'autres messages par inadvertance!), en modifiant ''/etc/rsyslog.conf'' pour y ajouter cette ligne en haut de la section RULES: | On peut aussi filtrer par le contenu "textuel" du message, toujours dans ''/etc/rsyslog.conf'', en ajoutant cette ligne en haut de la section RULES. Par exemple pour ne plus voir l'éxécution des scripts ''cron'' dans le log ''auth.log'' |
| |
| :msg, contains, "pam_unix(cron:session)" stop |
| |
| Faites attention à ne pas filtrer d'autres messages par inadvertance. |
| |
| ====== Outils divers ====== |
| |
:msg, contains, "api/stats.sh" ~ | Pour vérifier le sérieux d'une adresse IP qui a laissé une trace sur votre serveur: https://viz.greynoise.io/ |
| |
| Pour faire des statistiques sur l'obsolescence des fichiers : [[https://www.admin-magazine.com/HPC/Articles/How-Old-is-That-Data|agedu]]. |