GNU/Linux >> Linux Esercitazione >  >> Cent OS

Installa Nginx Amplify su CentOS 8/RHEL 8 per monitorare le prestazioni LEMP

Nginx Amplify è un modo gratuito, flessibile e potente per analizzare il carico e le prestazioni dei server web Nginx e Nginx Plus. È facile da configurare e utilizzare. Nginx Amplify include anche plugin MySQL/MariaDB e PHP-FPM in modo da poter monitorare un'applicazione stack LEMP completa. (LEMP sta per Linux, Nginx, MySQL/MariaDB, PHP.)

Nginx Amplify è sviluppato da Nginx, Inc, la società dietro il server web Nginx. È una soluzione basata su SaaS. Installi l'agente Nginx Amplify sul tuo server e raccoglierà e invierà le metriche al servizio SaaS. L'agente Nginx Amplify è open source e leggero. Raccoglie molte metriche, tra cui:

  • Metriche di sistema (CPU, utilizzo della RAM, traffico di rete, utilizzo del disco, I/O del disco, latenza del disco, ecc.)
  • Metriche Nginx (connessioni, richieste, stato HTTP, tempo di risposta, traffico e altro)
  • Metriche MySQL/MariaDB (connessioni, query di selezione, query di inserimento, query di aggiornamento, query lente, ecc.)
  • Metriche PHP-FPM (connessioni, coda di connessioni, richieste lente, ecc.)

Nginx Amplify può anche

  • Utilizza l'analizzatore statico per migliorare la configurazione di Nginx.
  • Avvisa di comportamenti anomali

Installazione di Nginx Amplify sul tuo server Linux CentOS 8/RHEL8

L'agente Nginx Amplify è open source e c'è uno script di installazione che puoi utilizzare per installare Nginx Amplify sulle seguenti distribuzioni Linux:

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

Innanzitutto, registra un account su https://amplify.nginx.com

Verifica il tuo indirizzo email. Successivamente, dovrai installare Nginx Amplify Agent sul tuo server Linux. SSH nel tuo server e accedi come root. Il sito Web Nginx Amplify è molto utile per fornire i comandi necessari per l'installazione di Nginx Amplify, quindi copia ed esegui questi comandi sul tuo server.

Nota che devi eseguire questi comandi come root.

Nginx Amplify richiede Python2. Installalo dal repository CentOS predefinito.

sudo dnf install python2

Scarica lo script di installazione.

Quindi esegui lo script di installazione. (Ogni account Amplify ha una chiave API univoca.)

Una volta installato, l'agente si avvierà automaticamente. Puoi verificarne lo stato con:

systemctl status amplify-agent

Esempio di output:

● 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

Suggerimento:se il comando precedente non si chiude immediatamente, premi Q per riprendere il controllo del terminale.

Per abilitare l'avvio automatico all'avvio, esegui

sudo systemctl enable amplify-agent

Configurazione di Stub_status in Nginx

L'agente Amplify può raccogliere immediatamente le metriche di sistema. Per raccogliere le metriche di Nginx, devi configurare Nginx stub_status. Crea un file di configurazione.

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

Aggiungi il seguente blocco server in http {...} contesto.

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;
     }
}

Salva e chiudi il file. Quindi ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Ora l'agente Amplify può iniziare a raccogliere le metriche Nginx.

Creazione di un formato registro Nginx personalizzato

L'agente Nginx Amplify può anche raccogliere informazioni dai file di registro Nginx. Tuttavia, il formato di registro predefinito fornisce informazioni limitate. Se sei davvero interessato alle prestazioni dell'applicazione, dovresti creare un formato di registro personalizzato per mostrare il tempo della richiesta, il tempo di risposta a monte, i risultati della cache, ecc.

Apri il nginx.conf file.

sudo nano /etc/nginx/nginx.conf

Aggiungi le seguenti righe in http {...} contesto, sopra include direttive. Qui stiamo creando un formato di registro Nginx personalizzato chiamato apm (monitoraggio delle prestazioni dell'applicazione) che include informazioni su request_time , upstream_response_time , upstream_connect_time e upstream_header_time . Tutti sono misurati in secondi con risoluzione in millisecondi.

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';

Salva e chiudi file. Quindi apri il file di configurazione dell'host virtuale Nginx. Ad esempio,

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

Nel server {...} contesto, aggiungere le due righe seguenti per abilitare il registro degli accessi e il registro degli errori. Il registro di accesso utilizza apm formato e registro errori utilizza il warn livello di registro.

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

Salva e chiudi il file. Quindi ricarica Nginx.

sudo systemctl reload nginx

Ora posso vedere il tempo di risposta a monte e altre metriche relative alle prestazioni nei grafici Amplify. Un buon tempo di risposta a monte è inferiore a 0,5 secondi. Altrimenti i tuoi visitatori possono sentire che il tuo sito web è lento. Se riesci a ottimizzare il tuo server per ottenere un tempo di risposta a monte inferiore a 0,2 secondi, il tuo sito Web sarà molto scattante.

Se l'agente Amplify non segnala le metriche Nginx, verifica che l'agente Amplify venga eseguito come lo stesso utente del processo di lavoro Nginx. Puoi anche controllare il registro Amplify Agent (/var/log/amplify-agent/agent.log ).

Come escludere il tuo indirizzo IP nel registro di accesso di Nginx

A volte, la tua attività può distorcere le metriche di Nginx. Puoi escludere il tuo indirizzo IP nel registro di accesso per evitarlo. Innanzitutto, aggiungi le seguenti righe in http contesto del file di configurazione di Nginx. Sostituisci 12.34.56.78 con il tuo indirizzo IP. Se la richiesta HTTP proviene dal tuo indirizzo IP, Nginx imposterà il valore di $log_ip variabile a 0 .

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

Quindi cambia il access_log direttiva come segue.

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

Salva e chiudi il file. Quindi invia un SMS alla configurazione di nginx e ricarica.

sudo nginx -t
sudo systemctl reload nginx

Come monitorare il server di database MariaDB/MySQL

Innanzitutto, dobbiamo creare un utente in MariaDB/MySQL per raccogliere le metriche. Accedi al monitor MariaDB/MySQL.

mysql -u root -p

Crea un nuovo utente per l'agente Amplify. Sostituisci your_password con la tua password preferita. (Si consiglia di scegliere una password diversa dalla password principale di MariaDB/MySQL.)

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

Esci dal server MariaDB/MySQL.

exit;

Successivamente, dobbiamo abilitare il plug-in Amplify MariaDB/MySQL nel file di configurazione Amplify.

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

Nel [extensions] sezione, puoi vedere che il plugin MySQL è disabilitato per impostazione predefinita.

[extensions]
phpfpm = True
mysql = False

Cambia False a True per abilitare questo plugin.

[extensions]
phpfpm = True
mysql = True

Quindi in [mysql] sezione, trova la riga seguente.

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

Il pacchetto MariaDB su CentOS è in ascolto su /var/lib/mysql/mysql.sock socket Unix, quindi cambia il valore di unix_socket a

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

Quindi sostituisci la password predefinita con la password che hai impostato per amplify-agent utente. Salva e chiudi il file. Quindi riavvia l'agente Amplify per rendere effettive le modifiche.

sudo systemctl restart amplify-agent

Ora l'agente Amplify inizia a raccogliere le metriche MariaDB/MySQL. (Potrebbe essere necessario attendere qualche minuto.)

Come abilitare il registro delle query lente di MariaDB

Il registro delle query lente può mostrarti quali query richiedono molto tempo per fornire una risposta. È uno strumento importante per ottimizzare le prestazioni di MariaDB. Per abilitare il registro delle query lente di MariaDB, modificare il file di configurazione del server.

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

Aggiungi le seguenti righe in [mysqld] sezione.

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

Ho impostato il long_query_time a un numero basso 1 secondo. Puoi anche specificare un valore più piccolo come 0,5 secondi. Salva e chiudi il file. Riavvia MariaDB per rendere effettive le modifiche.

sudo systemctl restart mariadb

Ora Nginx Amplify può mostrarti query lente nei grafici.

Come monitorare PHP-FPM

Il plug-in PHP-FPM dell'agente Amplify è abilitato per impostazione predefinita, ma è necessario abilitare lo stato PHP-FPM per raccogliere le metriche. Modifica il file di configurazione del pool PHP-FPM.

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

Trova la riga seguente e rimuovi il punto e virgola per abilitare lo stato PHP-FPM.

;pm.status_path = /status

Lo slow log di PHP è abilitato per impostazione predefinita, come indicato dalla riga seguente.

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

Quindi trova la riga seguente.

;request_slowlog_timeout = 0

Rimuovi il punto e virgola e imposta i secondi di timeout come 1s.

request_slowlog_timeout = 1s

Salva e chiudi il file. Crea una directory per i log PHP-FPM.

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

Riavvia PHP-FPM per rendere effettive le modifiche.

sudo systemctl restart php-fpm

Ora l'agente Amplify inizia a raccogliere le metriche PHP-FPM incluso il registro delle richieste lente.

La pagina Panoramica Amplifica

Nella pagina di panoramica, puoi vedere il punteggio di integrità generale dell'applicazione e 5 metriche chiave per il tuo sistema.

  • Richieste totali
  • Errori HTTP 5xx
  • Tempo di richiesta (è necessario creare un formato di registro personalizzato come descritto in precedenza per mostrare questa metrica.)
  • Quanta larghezza di banda utilizza Nginx
  • Utilizzo della CPU

Il punteggio di integrità dell'applicazione è influenzato dal numero di errori HTTP 5xx. Se non ci sono errori HTTP 5xx, il punteggio sarà del 100%.

Grafici

Nella pagina Grafici, puoi vedere le metriche di sistema predefinite, Nginx, MariaDB/MySQL e PHP-FPM.

Dashboard di amplificazione Nginx

Le dashboard Amplify ti consentono di creare grafici e grafici personalizzati e di raggrupparli in un'unica pagina. Ad esempio, puoi assemblare tutti i grafici relativi al rendimento in una pagina, o forse vuoi visualizzare tutte le metriche per un determinato URL.

Se hai configurato la cache Nginx FastCGI, puoi anche creare grafici per l'hit ratio della cache di Nginx e la scadenza della cache nella dashboard.

Analizzatore

Uno degli strumenti utili nell'analizzatore è l'analisi statica. Amplify può analizzare il tuo file di configurazione Nginx e fornire consigli su prestazioni, sicurezza e affidabilità. Puoi usarlo per identificare errori e migliorare le configurazioni.

Come puoi vedere, ci sono 5 avvisi per il mio server Nginx, quindi faccio clic sul collegamento Apri per vedere come modificare le mie configurazioni Nginx.

Dopo aver effettuato le regolazioni, attendi qualche minuto e l'avviso scomparirà.

Avvisi

Per impostazione predefinita, se l'agente Amplify smette di funzionare, verrà inviato un avviso al tuo indirizzo e-mail. Nella pagina degli avvisi, puoi impostare vari avvisi per il tuo server. Ad esempio, posso dire ad Amplify di inviarmi un'email se il tempo di risposta a monte è superiore a 1 secondo negli ultimi 2 minuti.

Se il tuo server esaurisce la RAM, potrebbe uccidere il processo MySQL/MariaDB. Puoi creare una regola di avviso per monitorare il tempo di attività di MySQL/MariaDB come di seguito. Se il tempo di attività è inferiore a 120 secondi negli ultimi 2 minuti, invia un'email di notifica.

Amplify Agent smette di funzionare

Spesso ho scoperto che l'agente Amplify smette di inviare le metriche delle prestazioni per ragioni sconosciute. Creo un lavoro Cron per riavviare Amplify-agent una volta al giorno per risolvere questo problema.

sudo crontab -e

Aggiungi la seguente riga nel file crontab.

@daily systemctl restart amplify-agent

Salva e chiudi il file.


Cent OS
  1. Come installare lo stack LEMP (Nginx, MySQL, PHP v7) su CentOS 7

  2. Come installare phpMyAdmin con Nginx su CentOS 7 / RHEL 7

  3. Come installare Linux, Nginx, MariaDB, PHP (LEMP Stack) in CentOS 7 / RHEL 7

  4. Come installare Puppet su RHEL 8/CentOS 8

  5. Come installare lo stack LEMP su CentOS 7

Installa Roundcube Webmail su CentOS 8/RHEL 8 con Apache/Nginx

Come installare LEMP su CentOS 6

Come installare LEMP su CentOS 7

Come installare Nginx Amplify Agent su CentOS 7

Come installare il server LEMP su CentOS 8

Come installare PHP 8 su CentOS/RHEL 8/7