0

ngxtop : outil de monitoring en temps réel pour nginx

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

  • Pour obtenir des informations sur Nginx :
  • ngxtop info

    ngxtop-info

  • Pour analyser un fichier de log d’un site web en particulier et n’afficher que le top 10 des requêtes :
  • ngxtop -l /var/log/nginx/acces-site1.log -n 10
  • Pour filtrer uniquement un status en particulier, exemple pour 404 :
  • ngxtop -i 'status == 404' print request status
  • Pour afficher le TOP des adresses IP des clients :
    ngxtop top remote_addr 

    ngxtop-ip-client

  • Pour afficher les User Agent avec les adresses IP:
  • ngxtop print request http_user_agent remote_addr

    ngxtop-user-agent

  • Pour connaitre toutes les options de ngxtop :
  • 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
  • Debian / Ubuntu :
  • sudo apt install python-pip
  • Fedora :
  • sudo yum install python-pip

Installer ngxtop :

sudo pip install ngxtop

via xmodulo.com

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.