Pour superviser un serveur web Nginx en production, de nombreuses solutions existent dans le monde du libre plus ou moins lourdes à mettre en place comme Zabbix, Monit, Munin, etc… Cependant, il est aussi possible de faire du monitoring, en temps réel et très rapidement avec l’aide de l’outil ngxtop.
ngxtop : métriques en temps réel pour le serveur web nginx
L’outil ngxtop écrit en python sous licence MIT va analyser les fichiers de log d’accès du serveur Nginx pour afficher les informations concernant les différents accès. De plus, l’outil affiche les différents status d’accès avec leur code respectif : 2xx (OK) 3xx (redirection) 4xx (erreur coté lient) 5xx (erreur côté serveur).
Par défaut, ngxtop analyse le fichier /var/log/nginx/access.log
mais il est possible de lui définir un fichier particulier.
Utilisation de ngxtop
- Par défaut, ngxtop va essayer de détecter l’emplacement du journal d’accès à partir du fichier de configuration
/etc/nginx/nginx.conf
. Pour surveiller Nginx, lancez simplement:
ngxtop
ngxtop info
ngxtop -l /var/log/nginx/acces-site1.log -n 10
ngxtop -i 'status == 404' print request status
ngxtop top remote_addr
ngxtop print request http_user_agent remote_addr
ngxtop --help
ngxtop - ad-hoc query for nginx access log. Usage: ngxtop [options] ngxtop [options] (print|top|avg|sum) ... ngxtop info ngxtop [options] query ... Options: -l , --access-log access log file to parse. -f , --log-format log format as specify in log_format directive. [default: combined] --no-follow ngxtop default behavior is to ignore current lines in log and only watch for new lines as they are written to the access log. Use this flag to tell ngxtop to process the current content of the access log instead. -t , --interval report interval when running in follow mode [default: 2.0] -g , --group-by group by variable [default: request_path] -w , --having having clause [default: 1] -o , --order-by order of output for default query [default: count] -n , --limit limit the number of records included in report for top command [default: 10] -a ..., --a ... add exp (must be aggregation exp: sum, avg, min, max, etc.) into output -v, --verbose more verbose output -d, --debug print every line and parsed record -h, --help print this help message. --version print version information. Advanced / experimental options: -c , --config allow ngxtop to parse nginx config file for log format and location. -i , --filter filter in, records satisfied given expression are processed. -p , --pre-filter in-filter expression to check in pre-parsing phase.
Installation de l’outil ngxtop
Installer python-pip :
- Arch Linux / Manajro :
sudo pacman -S python-pip
sudo apt install python-pip
sudo yum install python-pip
Installer ngxtop :
sudo pip install ngxtop
via xmodulo.com