GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren Sie Nginx Amplify unter CentOS 8/RHEL 8, um die LEMP-Leistung zu überwachen

Nginx Amplify ist eine kostenlose, flexible und leistungsstarke Möglichkeit, die Auslastung und Leistung von Nginx- und Nginx Plus-Webservern zu analysieren. Es ist einfach einzurichten und zu verwenden. Nginx Amplify wird auch mit MySQL/MariaDB, PHP-FPM-Plugins geliefert, sodass Sie eine vollständige LEMP-Stack-Anwendung überwachen können. (LEMP steht für Linux, Nginx, MySQL/MariaDB, PHP.)

Nginx Amplify wird von Nginx, Inc entwickelt, dem Unternehmen hinter dem Nginx-Webserver. Es ist eine SaaS-basierte Lösung. Sie installieren den Nginx Amplify-Agenten auf Ihrem Server und er sammelt und sendet Metriken an den SaaS-Dienst. Der Nginx Amplify-Agent ist Open Source und leichtgewichtig. Es sammelt viele Metriken, darunter:

  • Systemmetriken (CPU, RAM-Nutzung, Netzwerkverkehr, Festplattennutzung, Festplatten-E/A, Festplattenlatenz usw.)
  • Nginx-Metriken (Verbindungen, Anfragen, HTTP-Status, Antwortzeit, Datenverkehr und mehr)
  • MySQL/MariaDB-Metriken (Verbindungen, Abfragen auswählen, Abfragen einfügen, Abfragen aktualisieren, langsame Abfragen usw.)
  • PHP-FPM-Metriken (Verbindungen, Verbindungswarteschlange, langsame Anfragen usw.)

Nginx Amplify kann das auch

  • Verwenden Sie den statischen Analysator, um die Nginx-Konfiguration zu verbessern.
  • Warnen Sie bei ungewöhnlichem Verhalten

Installieren von Nginx Amplify auf Ihrem CentOS 8/RHEL8-Linux-Server

Der Nginx Amplify-Agent ist Open Source und es gibt ein Installationsskript, mit dem Sie Nginx Amplify auf den folgenden Linux-Distributionen installieren können:

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

Registrieren Sie zunächst ein Konto unter https://amplify.nginx.com

Bestätige deine Email-Adresse. Als nächstes müssen Sie den Nginx Amplify Agent auf Ihrem Linux-Server installieren. Verbinden Sie sich per SSH mit Ihrem Server und melden Sie sich als root an. Die Nginx Amplify-Website ist sehr nett, um die Befehle zu geben, die Sie ausführen müssen, um Nginx Amplify zu installieren, also kopieren Sie einfach diese Befehle und führen Sie sie auf Ihrem Server aus.

Beachten Sie, dass Sie diese Befehle als root ausführen müssen.

Nginx Amplify erfordert Python2. Installieren Sie es aus dem standardmäßigen CentOS-Repository.

sudo dnf install python2

Laden Sie das Installationsskript herunter.

Führen Sie dann das Installationsskript aus. (Jedes Amplify-Konto hat einen eindeutigen API-Schlüssel.)

Nach der Installation wird der Agent automatisch gestartet. Sie können den Status überprüfen mit:

systemctl status amplify-agent

Beispielausgabe:

● 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

Hinweis:Wenn der obige Befehl nicht sofort beendet wird, drücken Sie Q, um die Kontrolle über das Terminal zurückzugewinnen.

Um den automatischen Start beim Booten zu aktivieren, führen Sie

aus
sudo systemctl enable amplify-agent

Stub_status in Nginx konfigurieren

Der Amplify-Agent kann sofort einsatzbereite Systemmetriken erfassen. Um Nginx-Metriken zu erfassen, müssen Sie Nginx stub_status konfigurieren. Erstellen Sie eine Konfigurationsdatei.

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

Fügen Sie den folgenden Serverblock in http {...} hinzu Kontext.

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

Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Jetzt kann der Amplify-Agent mit dem Sammeln von Nginx-Metriken beginnen.

Erstellen eines benutzerdefinierten Nginx-Protokollformats

Der Nginx Amplify-Agent kann auch Informationen aus Nginx-Protokolldateien sammeln. Das Standardprotokollformat gibt uns jedoch nur begrenzte Informationen. Wenn Ihnen die Anwendungsleistung wirklich wichtig ist, sollten Sie ein benutzerdefiniertes Protokollformat erstellen, um die Anforderungszeit, Upstream-Antwortzeit, Cache-Treffer usw. anzuzeigen.

Öffnen Sie die nginx.conf Datei.

sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgenden Zeilen im http {...} hinzu Kontext über dem include Richtlinien. Hier erstellen wir ein benutzerdefiniertes Nginx-Protokollformat namens apm (Überwachung der Anwendungsleistung), die Informationen über request_time enthält , Upstream_Response_time , upstream_connect_time und upstream_header_time . Alle werden in Sekunden mit Millisekundenauflösung gemessen.

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

Datei speichern und schließen. Öffnen Sie dann Ihre Konfigurationsdatei für den virtuellen Nginx-Host. Zum Beispiel

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

Auf dem server {...} Kontext, fügen Sie die folgenden zwei Zeilen hinzu, um das Zugriffsprotokoll und das Fehlerprotokoll zu aktivieren. Das Zugriffsprotokoll verwendet den apm Format und Fehlerprotokoll verwendet den warn Protokollebene.

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

Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu.

sudo systemctl reload nginx

Jetzt kann ich die Upstream-Antwortzeit und andere leistungsbezogene Metriken in den Amplify-Diagrammen sehen. Eine gute Upstream-Reaktionszeit liegt unter 0,5 Sekunden. Andernfalls können Ihre Besucher das Gefühl haben, dass Ihre Website langsam ist. Wenn Sie Ihren Server so einstellen können, dass die Upstream-Antwortzeit unter 0,2 Sekunden liegt, wird Ihre Website sehr schnell.

Wenn der Amplify-Agent keine Nginx-Metriken meldet, überprüfen Sie, ob der Amplify-Agent als derselbe Benutzer wie der Nginx-Arbeitsprozess ausgeführt wird. Sie können auch das Amplify Agent-Protokoll überprüfen (/var/log/amplify-agent/agent.log ).

So schließen Sie Ihre eigene IP-Adresse im Nginx-Zugriffsprotokoll aus

Manchmal kann Ihre Aktivität die Nginx-Metriken verzerren. Sie können Ihre eigene IP-Adresse im Zugriffsprotokoll ausschließen, um dies zu vermeiden. Fügen Sie zunächst die folgenden Zeilen im http hinzu Kontext der Nginx-Konfigurationsdatei. Ersetzen Sie 12.34.56.78 durch Ihre eigene IP-Adresse. Wenn die HTTP-Anfrage von Ihrer eigenen IP-Adresse kommt, setzt Nginx den Wert von $log_ip Variable auf 0 .

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

Ändern Sie dann das access_log Anweisung wie folgt.

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

Speichern und schließen Sie die Datei. Dann nginx configuration per SMS senden und neu laden.

sudo nginx -t
sudo systemctl reload nginx

Überwachen des MariaDB/MySQL-Datenbankservers

Zuerst müssen wir einen Benutzer in MariaDB/MySQL erstellen, um Metriken zu sammeln. Melden Sie sich beim MariaDB/MySQL-Monitor an.

mysql -u root -p

Erstellen Sie einen neuen Benutzer für den Amplify-Agenten. Ersetzen Sie your_password mit Ihrem bevorzugten Passwort. (Es wird empfohlen, ein anderes Passwort als das MariaDB/MySQL-Root-Passwort zu wählen.)

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

Verlassen Sie den MariaDB/MySQL-Server.

exit;

Als nächstes müssen wir das Amplify MariaDB/MySQL-Plugin in der Amplify-Konfigurationsdatei aktivieren.

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

In den [extensions] Abschnitt sehen Sie, dass das MySQL-Plugin standardmäßig deaktiviert ist.

[extensions]
phpfpm = True
mysql = False

Ändern Sie False auf True um dieses Plugin zu aktivieren.

[extensions]
phpfpm = True
mysql = True

Dann in [mysql] finden Sie die folgende Zeile.

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

Das MariaDB-Paket auf CentOS lauscht auf /var/lib/mysql/mysql.sock Unix-Socket, also ändern Sie den Wert von unix_socket zu

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

Ersetzen Sie dann das Standardpasswort durch das Passwort, das Sie für den amplify-agent festgelegt haben Benutzer. Speichern und schließen Sie die Datei. Starten Sie dann den Amplify-Agenten neu, damit die Änderungen wirksam werden.

sudo systemctl restart amplify-agent

Jetzt beginnt der Amplify-Agent mit dem Sammeln von MariaDB/MySQL-Metriken. (Möglicherweise müssen Sie einige Minuten warten.)

So aktivieren Sie das MariaDB-Protokoll für langsame Abfragen

Das Protokoll für langsame Abfragen kann Ihnen zeigen, welche Abfragen lange brauchen, um eine Antwort zu geben. Es ist ein wichtiges Tool zur Optimierung der Leistung von MariaDB. Um das MariaDB-Protokoll für langsame Abfragen zu aktivieren, bearbeiten Sie die Serverkonfigurationsdatei.

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

Fügen Sie die folgenden Zeilen in [mysqld] hinzu Abschnitt.

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

Ich setze die long_query_time zu einer niedrigen Zahl 1 Sekunde. Sie können auch einen kleineren Wert wie 0,5 Sekunden angeben. Speichern und schließen Sie die Datei. Starten Sie MariaDB neu, damit die Änderungen wirksam werden.

sudo systemctl restart mariadb

Jetzt kann Nginx Amplify Ihnen langsame Abfragen in den Diagrammen anzeigen.

Wie man PHP-FPM überwacht

Das Amplify-Agent-PHP-FPM-Plugin ist standardmäßig aktiviert, aber wir müssen den PHP-FPM-Status aktivieren, um Metriken zu erfassen. Bearbeiten Sie die Konfigurationsdatei des PHP-FPM-Pools.

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

Suchen Sie die folgende Zeile und entfernen Sie das Semikolon, um den PHP-FPM-Status zu aktivieren.

;pm.status_path = /status

Das langsame PHP-Protokoll ist standardmäßig aktiviert, wie die folgende Zeile zeigt.

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

Suchen Sie dann die folgende Zeile.

;request_slowlog_timeout = 0

Entfernen Sie das Semikolon und setzen Sie die Timeout-Sekunden auf 1s.

request_slowlog_timeout = 1s

Speichern und schließen Sie die Datei. Erstellen Sie ein Verzeichnis für PHP-FPM-Protokolle.

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

Starten Sie PHP-FPM neu, damit die Änderungen wirksam werden.

sudo systemctl restart php-fpm

Jetzt beginnt der Amplify-Agent mit dem Sammeln von PHP-FPM-Metriken, einschließlich des Protokolls für langsame Anforderungen.

Die Amplify-Übersichtsseite

Auf der Übersichtsseite sehen Sie den Gesamtstatus der Anwendung und 5 wichtige Kennzahlen für Ihr System.

  • Anfragen insgesamt
  • HTTP 5xx-Fehler
  • Anfragezeit (Sie müssen ein benutzerdefiniertes Protokollformat wie zuvor beschrieben erstellen, um diese Metrik anzuzeigen.)
  • Wie viel Bandbreite Nginx verwendet
  • CPU-Auslastung

Der Application Health Score wird durch die Anzahl der HTTP 5xx-Fehler beeinflusst. Wenn es keine HTTP 5xx-Fehler gibt, beträgt die Punktzahl 100 %.

Grafiken

Auf der Seite „Grafiken“ können Sie vordefinierte System-, Nginx-, MariaDB/MySQL- und PHP-FPM-Metriken sehen.

Nginx Amplify-Dashboards

Mit Amplify-Dashboards können Sie benutzerdefinierte Grafiken und Diagramme erstellen und diese auf einer Seite gruppieren. Beispielsweise können Sie alle leistungsbezogenen Diagramme auf einer Seite zusammenstellen oder alle Messwerte für eine bestimmte URL anzeigen.

Wenn Sie den Nginx FastCGI-Cache konfiguriert haben, können Sie im Dashboard auch Diagramme für die Nginx-Cache-Trefferquote und den Cache-Ablauf erstellen.

Analysator

Eines der nützlichen Werkzeuge im Analysator ist die statische Analyse. Amplify kann Ihre Nginx-Konfigurationsdatei analysieren und Empfehlungen zu Leistung, Sicherheit und Zuverlässigkeit abgeben. Sie können es verwenden, um Fehler zu identifizieren und Konfigurationen zu verbessern.

Wie Sie sehen können, gibt es 5 Warnungen für meinen Nginx-Server, also klicke ich auf den Link Öffnen, um zu sehen, wie ich meine Nginx-Konfigurationen anpassen kann.

Nachdem Sie die Anpassungen vorgenommen haben, warten Sie einige Minuten und die Warnung verschwindet.

Warnungen

Wenn der Amplify-Agent nicht mehr funktioniert, wird standardmäßig eine Benachrichtigung an Ihre E-Mail-Adresse gesendet. Auf der Alerts-Seite können Sie verschiedene Alerts für Ihren Server einstellen. Beispielsweise kann ich Amplify anweisen, mir eine E-Mail zu senden, wenn die Upstream-Antwortzeit in den letzten 2 Minuten über 1 Sekunde lag.

Wenn Ihrem Server der RAM ausgeht, könnte er den MySQL/MariaDB-Prozess beenden. Sie können eine Warnregel erstellen, um die Verfügbarkeit von MySQL/MariaDB wie unten zu überwachen. Wenn die Betriebszeit in den letzten 2 Minuten unter 120 Sekunden lag, senden Sie eine E-Mail-Benachrichtigung.

Amplify-Agent funktioniert nicht mehr

Oft habe ich festgestellt, dass der Amplify-Agent aus unbekannten Gründen keine Leistungsmetriken mehr sendet. Ich erstelle einen Cron-Job, um den Amplify-Agent einmal täglich neu zu starten, um dieses Problem zu lösen.

sudo crontab -e

Fügen Sie die folgende Zeile in die crontab-Datei ein.

@daily systemctl restart amplify-agent

Speichern und schließen Sie die Datei.


Cent OS
  1. So installieren Sie LEMP Stack (Nginx, MySQL, PHP v7) unter CentOS 7

  2. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7 / RHEL 7

  3. So installieren Sie Linux, Nginx, MariaDB, PHP (LEMP Stack) in CentOS 7 / RHEL 7

  4. So installieren Sie Puppet auf RHEL 8/CentOS 8

  5. So installieren Sie den LEMP-Stack auf CentOS 7

Installieren Sie Roundcube Webmail auf CentOS 8/RHEL 8 mit Apache/Nginx

So installieren Sie LEMP auf CentOS 6

So installieren Sie LEMP auf CentOS 7

So installieren Sie den Nginx Amplify Agent unter CentOS 7

So installieren Sie den LEMP-Server unter CentOS 8

So installieren Sie PHP 8 unter CentOS/RHEL 8/7