GNU/Linux >> Tutoriels Linux >  >> Cent OS

Installez Nginx Amplify sur CentOS 8/RHEL 8 pour surveiller les performances LEMP

Nginx Amplify est un moyen gratuit, flexible et puissant d'analyser la charge et les performances des serveurs Web Nginx et Nginx Plus. Il est facile à configurer et à utiliser. Nginx Amplify est également livré avec les plugins MySQL/MariaDB, PHP-FPM afin que vous puissiez surveiller une application de pile LEMP complète. (LEMP signifie Linux, Nginx, MySQL/MariaDB, PHP.)

Nginx Amplify est développé par Nginx, Inc, la société à l'origine du serveur Web Nginx. C'est une solution basée sur le SaaS. Vous installez l'agent Nginx Amplify sur votre serveur et il collectera et enverra des métriques au service SaaS. L'agent Nginx Amplify est open-source et léger. Il collecte de nombreuses métriques, notamment :

  • Métriques système (processeur, utilisation de la RAM, trafic réseau, utilisation du disque, E/S disque, latence du disque, etc.)
  • Métriques Nginx (connexions, requêtes, état HTTP, temps de réponse, trafic, etc.)
  • Métriques MySQL/MariaDB (connexions, sélection de requêtes, insertion de requêtes, mise à jour de requêtes, requêtes lentes, etc.)
  • Métriques PHP-FPM (connexions, file d'attente des connexions, requêtes lentes, etc.)

Nginx Amplify peut également

  • Utilisez l'analyseur statique pour vous aider à améliorer la configuration de Nginx.
  • Vous alerter d'un comportement anormal

Installation de Nginx Amplify sur votre serveur Linux CentOS 8/RHEL8

L'agent Nginx Amplify est open-source et il existe un script d'installation que vous pouvez utiliser pour installer Nginx Amplify sur les distributions Linux suivantes :

  • Debian 9, Debian 10
  • Ubuntu 16.04, Ubuntu 18.04
  • CentOS/RHEL 6, CentOS/RHEL 7, CentOS/RHEL 8

Tout d'abord, créez un compte sur https://amplify.nginx.com

Vérifiez votre adresse e-mail. Ensuite, vous devrez installer l'agent Nginx Amplify sur votre serveur Linux. Connectez-vous en SSH à votre serveur et connectez-vous en tant que root. Le site Web Nginx Amplify est très agréable pour donner les commandes que vous devez exécuter pour installer Nginx Amplify, il vous suffit donc de copier et d'exécuter ces commandes sur votre serveur.

Notez que vous devez exécuter ces commandes en tant que root.

Nginx Amplify nécessite Python2. Installez-le à partir du référentiel CentOS par défaut.

sudo dnf install python2

Téléchargez le script d'installation.

Exécutez ensuite le script d'installation. (Chaque compte Amplify possède une clé API unique.)

Une fois installé, l'agent démarre automatiquement. Vous pouvez vérifier son statut avec :

systemctl status amplify-agent

Exemple de sortie :

● amplify-agent.service - NGINX Amplify Agent
   Loaded: loaded (/usr/lib/systemd/system/amplify-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-06-12 02:38:09 EDT; 2min 49s ago
     Docs: https://amplify.nginx.com/docs/
  Process: 13768 ExecStart=/etc/init.d/amplify-agent start (code=exited, status=0/SUCCESS)
 Main PID: 13820 (amplify-agent)
    Tasks: 2 (limit: 5059)
   Memory: 48.0M
   CGroup: /system.slice/amplify-agent.service
           └─13820 amplify-agent

Astuce :si la commande ci-dessus ne se ferme pas immédiatement, appuyez sur Q pour reprendre le contrôle du terminal.

Pour activer le démarrage automatique au démarrage, exécutez

sudo systemctl enable amplify-agent

Configuration de Stub_status dans Nginx

L'agent Amplify peut collecter des métriques système prêtes à l'emploi. Afin de collecter les métriques Nginx, vous devez configurer Nginx stub_status. Créez un fichier de configuration.

sudo nano /etc/nginx/conf.d/stub_status.conf

Ajoutez le bloc de serveur suivant dans le http {...} contexte.

server {
     listen 127.0.0.1:80;
     server_name 127.0.0.1;
     location /nginx_status {
        stub_status on;
	allow 127.0.0.1;
	deny all;
     }
}

Enregistrez et fermez le fichier. Rechargez ensuite Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

L'agent Amplify peut désormais commencer à collecter les métriques Nginx.

Création d'un format de journal Nginx personnalisé

L'agent Nginx Amplify peut également collecter des informations à partir des fichiers journaux Nginx. Cependant, le format de journal par défaut nous donne des informations limitées. Si vous vous souciez vraiment des performances de l'application, vous devez créer un format de journal personnalisé pour afficher l'heure de la demande, le temps de réponse en amont, les accès au cache, etc.

Ouvrez le nginx.conf fichier.

sudo nano /etc/nginx/nginx.conf

Ajoutez les lignes suivantes dans le http {...} contexte, au-dessus de include directives. Ici, nous créons un format de journal Nginx personnalisé appelé apm (surveillance des performances de l'application) qui inclut des informations sur request_time , upstream_response_time , upstream_connect_time et upstream_header_time . Tous sont mesurés en secondes avec une résolution en millisecondes.

log_format apm '"$time_local" client=$remote_addr '
               'method=$request_method request="$request" '
               'request_length=$request_length '
               'status=$status bytes_sent=$bytes_sent '
               'body_bytes_sent=$body_bytes_sent '
               'referer=$http_referer '
               'user_agent="$http_user_agent" '
               'upstream_addr=$upstream_addr '
               'upstream_status=$upstream_status '
               'request_time=$request_time '
               'upstream_cache_status="$upstream_cache_status" '
               'upstream_response_time=$upstream_response_time '
               'upstream_connect_time=$upstream_connect_time '
               'upstream_header_time=$upstream_header_time';

Enregistrez et fermez le fichier. Ouvrez ensuite votre fichier de configuration d'hôte virtuel Nginx. Par exemple,

sudo nano /etc/nginx/conf.d/linuxbabe.com.conf

Dans le server {...} contexte, ajoutez les deux lignes suivantes pour activer le journal d'accès et le journal des erreurs. Le journal d'accès utilise le apm format et le journal des erreurs utilise le warn niveau de journalisation.

access_log /var/log/nginx/linuxbabe.com.access.log apm;
error_log /var/log/nginx/linuxbabe.com.error.log warn;

Enregistrez et fermez le fichier. Rechargez ensuite Nginx.

sudo systemctl reload nginx

Je peux maintenant voir le temps de réponse en amont et d'autres mesures liées aux performances dans les graphiques Amplify. Un bon temps de réponse en amont est inférieur à 0,5 seconde. Sinon, vos visiteurs peuvent sentir que votre site Web est lent. Si vous pouvez régler votre serveur pour obtenir un temps de réponse en amont inférieur à 0,2 seconde, votre site Web sera très rapide.

Si l'agent Amplify ne signale pas les métriques Nginx, vérifiez que l'agent Amplify s'exécute sous le même utilisateur que le processus de travail Nginx. Vous pouvez également consulter le journal Amplify Agent (/var/log/amplify-agent/agent.log ).

Comment exclure votre propre adresse IP dans le journal d'accès Nginx

Parfois, votre activité peut fausser les métriques Nginx. Vous pouvez exclure votre propre adresse IP dans le journal d'accès pour éviter cela. Tout d'abord, ajoutez les lignes suivantes dans le http contexte du fichier de configuration Nginx. Remplacez 12.34.56.78 par votre propre adresse IP. Si la requête HTTP provient de votre propre adresse IP, Nginx définira la valeur de $log_ip variable à 0 .

map $remote_addr $log_ip {
    "12.34.56.78" 0;
    default 1;
}

Modifiez ensuite le access_log directive comme suit.

access_log /var/log/nginx/linuxbabe.com.access.log apm if=$log_ip;

Enregistrez et fermez le fichier. Ensuite, textez la configuration de nginx et rechargez.

sudo nginx -t
sudo systemctl reload nginx

Comment surveiller le serveur de base de données MariaDB/MySQL

Tout d'abord, nous devons créer un utilisateur dans MariaDB/MySQL pour collecter les métriques. Connectez-vous au moniteur MariaDB/MySQL.

mysql -u root -p

Créez un nouvel utilisateur pour l'agent Amplify. Remplacez your_password avec votre mot de passe préféré. (Il est recommandé de choisir un mot de passe différent du mot de passe root MariaDB/MySQL.)

create user 'amplify-agent'@'localhost' identified by 'your_password';

Quittez le serveur MariaDB/MySQL.

exit;

Ensuite, nous devons activer le plugin Amplify MariaDB/MySQL dans le fichier de configuration Amplify.

sudo nano /etc/amplify-agent/agent.conf

Dans les [extensions] section, vous pouvez voir que le plugin mysql est désactivé par défaut.

[extensions]
phpfpm = True
mysql = False

Changer False à True pour activer ce plugin.

[extensions]
phpfpm = True
mysql = True

Puis dans [mysql] section, recherchez la ligne suivante.

unix_socket = /var/run/mysqld/mysqld.sock
password = amplify-agent

Le package MariaDB sur CentOS écoute sur /var/lib/mysql/mysql.sock Socket Unix, changez donc la valeur de unix_socket à

unix_socket = /var/lib/mysql/mysql.sock

Remplacez ensuite le mot de passe par défaut par le mot de passe que vous avez défini pour amplify-agent utilisateur. Enregistrez et fermez le fichier. Redémarrez ensuite l'agent Amplify pour que les modifications prennent effet.

sudo systemctl restart amplify-agent

Maintenant, l'agent Amplify commence à collecter les métriques MariaDB/MySQL. (Vous devrez peut-être attendre quelques minutes.)

Comment activer le journal des requêtes lentes de MariaDB

Le journal des requêtes lentes peut vous montrer quelles requêtes mettent beaucoup de temps à donner une réponse. C'est un outil important pour optimiser les performances de MariaDB. Pour activer le journal des requêtes lentes MariaDB, modifiez le fichier de configuration du serveur.

sudo nano /etc/my.cnf.d/mariadb-server.cnf

Ajoutez les lignes suivantes dans le [mysqld] rubrique.

slow_query_log = 1
slow_query_log_file     = /var/log/mariadb/mariadb-slow.log
long_query_time = 1
log_slow_rate_limit    = 1000
log_slow_verbosity     = query_plan
log-queries-not-using-indexes

J'ai défini le long_query_time à un faible nombre 1 seconde. Vous pouvez également spécifier une valeur plus petite comme 0,5 seconde. Enregistrez et fermez le fichier. Redémarrez MariaDB pour que les modifications prennent effet.

sudo systemctl restart mariadb

Désormais, Nginx Amplify peut vous montrer des requêtes lentes dans les graphiques.

Comment surveiller PHP-FPM

Le plug-in PHP-FPM de l'agent Amplify est activé par défaut, mais nous devons activer le statut PHP-FPM afin de collecter les métriques. Modifiez le fichier de configuration du pool PHP-FPM.

sudo nano /etc/php-fpm.d/www.conf

Recherchez la ligne suivante et supprimez le point-virgule pour activer le statut PHP-FPM.

;pm.status_path = /status

Le journal lent PHP est activé par défaut, comme indiqué par la ligne suivante.

slowlog = /var/log/php-fpm/www-slow.log

Trouvez ensuite la ligne suivante.

;request_slowlog_timeout = 0

Supprimez le point-virgule et définissez les secondes du délai d'attente comme 1 s.

request_slowlog_timeout = 1s

Enregistrez et fermez le fichier. Créez un répertoire pour les journaux PHP-FPM.

sudo mkdir -p /var/log/php-fpm/

Redémarrez PHP-FPM pour que les modifications prennent effet.

sudo systemctl restart php-fpm

Maintenant, l'agent Amplify commence à collecter les métriques PHP-FPM, y compris le journal des requêtes lentes.

La page de présentation d'Amplify

Sur la page de présentation, vous pouvez voir le score de santé global de l'application et 5 métriques clés pour votre système.

  • Nombre total de demandes
  • Erreurs HTTP 5xx
  • Heure de la demande (vous devez créer un format de journal personnalisé comme décrit précédemment pour afficher cette statistique.)
  • Combien de bande passante utilise Nginx
  • Utilisation du processeur

Le score d'intégrité de l'application est affecté par le nombre d'erreurs HTTP 5xx. S'il n'y a pas d'erreurs HTTP 5xx, le score sera de 100 %.

Graphiques

Dans la page Graphiques, vous pouvez voir les métriques système prédéfinies, Nginx, MariaDB/MySQL et PHP-FPM.

Tableaux de bord Nginx Amplify

Les tableaux de bord Amplify vous permettent de créer des graphiques et des tableaux personnalisés et de les regrouper sur une seule page. Par exemple, vous pouvez assembler tous les graphiques liés aux performances sur une seule page, ou peut-être souhaitez-vous afficher toutes les mesures pour une URL particulière.

Si vous avez configuré le cache Nginx FastCGI, vous pouvez également créer des graphiques pour le taux d'accès au cache Nginx et l'expiration du cache dans le tableau de bord.

Analyseur

L'un des outils utiles de l'analyseur est l'analyse statique. Amplify peut analyser votre fichier de configuration Nginx et faire des recommandations sur les performances, la sécurité et la fiabilité. Vous pouvez l'utiliser pour identifier les erreurs et améliorer les configurations.

Comme vous pouvez le voir, il y a 5 avertissements pour mon serveur Nginx, donc je clique sur le lien Ouvrir pour voir comment ajuster mes configurations Nginx.

Après avoir effectué les réglages, attendez quelques minutes et l'avertissement disparaîtra.

Alertes

Par défaut, si l'agent Amplify cesse de fonctionner, une alerte sera envoyée à votre adresse e-mail. Sur la page des alertes, vous pouvez définir diverses alertes pour votre serveur. Par exemple, je peux demander à Amplify de m'envoyer un e-mail si le temps de réponse en amont est supérieur à 1 seconde au cours des 2 dernières minutes.

Si votre serveur manque de RAM, cela pourrait tuer le processus MySQL/MariaDB. Vous pouvez créer une règle d'alerte pour surveiller la disponibilité de MySQL/MariaDB comme ci-dessous. Si la disponibilité est inférieure à 120 secondes au cours des 2 dernières minutes, envoyez une notification par e-mail.

L'agent Amplify cesse de fonctionner

Souvent, j'ai constaté que l'agent Amplify arrête d'envoyer des mesures de performances pour une raison inconnue. Je crée une tâche Cron pour redémarrer Amplify-agent une fois par jour pour résoudre ce problème.

sudo crontab -e

Ajoutez la ligne suivante dans le fichier crontab.

@daily systemctl restart amplify-agent

Enregistrez et fermez le fichier.


Cent OS
  1. Comment installer la pile LEMP (Nginx, MySQL, PHP v7) sur CentOS 7

  2. Comment installer phpMyAdmin avec Nginx sur CentOS 7 / RHEL 7

  3. Comment installer Linux, Nginx, MariaDB, PHP (pile LEMP) dans CentOS 7 / RHEL 7

  4. Comment installer Puppet sur RHEL 8/CentOS 8

  5. Comment installer la pile LEMP sur CentOS 7

Installez Roundcube Webmail sur CentOS 8/RHEL 8 avec Apache/Nginx

Comment installer LEMP sur CentOS 6

Comment installer LEMP sur CentOS 7

Comment installer l'agent Nginx Amplify sur CentOS 7

Comment installer le serveur LEMP sur CentOS 8

Comment installer PHP 8 sur CentOS/RHEL 8/7