GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Surveiller les fichiers journaux Nginx à l'aide de ngxtop sur Ubuntu 20.04

ngxtop est un outil de surveillance gratuit, open-source, flexible et en temps réel pour les serveurs Web Nginx. Il peut analyser le journal d'accès Nginx et imprimer les informations sur le nombre de demandes, l'URI demandé, le nombre de demandes par code d'état, et bien plus encore. Il s'agit d'un outil simple et facile à utiliser pour surveiller les requêtes arrivant sur un serveur Web Nginx.

Dans cet article, je vais vous montrer comment installer et utiliser l'outil de surveillance ngxtop sur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur votre serveur.

Installer ngxtop

ngxtop est un outil basé sur python, vous devrez donc installer les packages Python et PIP sur votre système. Vous pouvez les installer avec le Nginx en utilisant la commande suivante :

apt-get install nginx python3 python3-pip -y

Une fois installé, vous pouvez installer le package ngxtop en utilisant le PIP comme indiqué ci-dessous :

pip3 install ngxtop

Une fois ngxtop installé, vous pouvez vérifier la version de ngxtop à l'aide de la commande suivante :

ngxtop --version

Vous devriez obtenir le résultat suivant :

xstat 0.1

Comment utiliser ngxtop

Dans cette section, nous allons vous montrer comment utiliser ngxtop pour surveiller le serveur Web Nginx.

Exécutez la commande ngxtop sans aucun argument pour afficher le résumé du nombre de requêtes, l'URI demandé, le nombre de requêtes par code d'état.

ngxtop

Vous devriez voir l'écran suivant :

Vous pouvez utiliser l'option -l pour spécifier le journal d'accès que vous souhaitez analyser.

ngxtop -l /var/log/nginx/access.log

Vous devriez voir l'écran suivant :

Pour répertorier les principales adresses IP qui accèdent à votre serveur Nginx, exécutez la commande suivante :

ngxtop --group-by remote_addr -l /var/log/nginx/access.log

Vous devriez voir l'écran suivant :

Vous pouvez imprimer 10 requêtes avec le plus grand nombre d'octets envoyés à l'aide de la commande suivante :

ngxtop --order-by 'avg(bytes_sent) * count' -l /var/log/nginx/access.log

Vous devriez voir l'écran suivant :

ngxtop vous permet également d'analyser le fichier journal Apache à partir d'un serveur distant. Vous pouvez le faire avec la commande suivante :

ssh [email protected] tail -f /var/log/apache2/access.log | ngxtop -f common

Pour obtenir une liste de toutes les options disponibles avec ngxtop, exécutez la commande suivante :

ngxtop --help

Vous devriez voir le résultat suivant :

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.

Examples:
    All examples read nginx config file for access log location and format.
    If you want to specify the access log file and / or log format, use the -f and -a options.

    "top" like view of nginx requests
    $ ngxtop

    Top 10 requested path with status 404:
    $ ngxtop top request_path --filter 'status == 404'

    Top 10 requests with highest total bytes sent
    $ ngxtop --order-by 'avg(bytes_sent) * count'

    Top 10 remote address, e.g., who's hitting you the most
    $ ngxtop --group-by remote_addr

    Print requests with 4xx or 5xx status, together with status and http referer
    $ ngxtop -i 'status >= 400' print request status http_referer

    Average body bytes sent of 200 responses of requested path begin with 'foo':
    $ ngxtop avg bytes_sent --filter 'status == 200 and request_path.startswith("foo")'

    Analyze apache access log from remote machine using 'common' log format
    $ ssh remote tail -f /var/log/apache2/access.log | ngxtop -f common

Conclusion

Dans le guide ci-dessus, vous avez appris à installer et à utiliser ngxtop sur Ubuntu 20.04. J'espère que vous pouvez maintenant surveiller facilement votre journal Nginx à partir de l'interface de ligne de commande.


Ubuntu
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment surveiller Nginx à l'aide de Netdata sur Ubuntu 16.04

  3. Comment surveiller et détecter les fichiers modifiés à l'aide de Tripwire IDS sur Ubuntu 16.04

  4. Installez LibreNMS sur Ubuntu 20.04 LTS en utilisant Nginx - Guide étape par étape ?

  5. Supprimer les fichiers journaux à l'aide de la tâche cron

Comment installer Logrotate sur Ubuntu 16.04 LTS

Comment surveiller les performances d'Apache à l'aide de mod_status dans Ubuntu

Comment surveiller les performances d'Ubuntu à l'aide de Netdata

Comment installer WordPress en utilisant Nginx dans Ubuntu Linux

Recherche de fichiers dans Ubuntu 22.04

Installez Odoo 15 en utilisant Docker, Nginx sur Ubuntu 22.04