GNU/Linux >> Znalost Linux >  >> Cent OS

Nainstalujte Nginx Amplify na CentOS 8/RHEL 8 a sledujte výkon LEMP

Nginx Amplify je bezplatný, flexibilní a výkonný způsob analýzy zatížení a výkonu webových serverů Nginx a Nginx Plus. Snadno se nastavuje a používá. Nginx Amplify také přichází s MySQL/MariaDB, pluginy PHP-FPM, takže můžete sledovat celou aplikaci LEMP stack. (LEMP znamená Linux, Nginx, MySQL/MariaDB, PHP.)

Nginx Amplify je vyvinut společností Nginx, Inc, která stojí za webovým serverem Nginx. Je to řešení založené na SaaS. Nainstalujete agenta Nginx Amplify na svůj server a bude shromažďovat a odesílat metriky do služby SaaS. Agent Nginx Amplify je open source a lehký. Shromažďuje mnoho metrik, včetně:

  • Systémové metriky (CPU, využití RAM, síťový provoz, využití disku, vstup/výstup disku, latence disku atd.)
  • Metriky Nginx (připojení, požadavky, stav HTTP, doba odezvy, provoz a další)
  • Metriky MySQL/MariaDB (připojení, výběrové dotazy, vkládání dotazů, aktualizační dotazy, pomalé dotazy atd.)
  • Metriky PHP-FPM (připojení, fronta připojení, pomalé požadavky atd.)

Nginx Amplify umí také

  • Použijte statický analyzátor, který vám pomůže zlepšit konfiguraci Nginx.
  • Upozornit vás na abnormální chování

Instalace Nginx Amplify na váš CentOS 8/RHEL8 Linux Server

Agent Nginx Amplify je open source a existuje instalační skript, který můžete použít k instalaci Nginx Amplify na následujících distribucích Linuxu:

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

Nejprve si zaregistrujte účet na https://amplify.nginx.com

Ověřte svou e-mailovou adresu. Dále budete muset nainstalovat Nginx Amplify Agent na váš Linux server. SSH na váš server a přihlaste se jako root. Web Nginx Amplify je velmi pěkný, protože poskytuje příkazy, které potřebujete spustit k instalaci Nginx Amplify, takže stačí zkopírovat a spustit tyto příkazy na vašem serveru.

Všimněte si, že tyto příkazy musíte spouštět jako root.

Nginx Amplify vyžaduje Python2. Nainstalujte jej z výchozího úložiště CentOS.

sudo dnf install python2

Stáhněte si instalační skript.

Poté spusťte instalační skript. (Každý účet Amplify má jedinečný klíč API.)

Jakmile je nainstalován, agent se automaticky spustí. Jeho stav můžete zkontrolovat pomocí:

systemctl status amplify-agent

Ukázkový výstup:

● 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

Tip:Pokud se výše uvedený příkaz okamžitě neukončí, stiskněte Q, abyste získali zpět kontrolu nad terminálem.

Chcete-li povolit automatické spouštění při spouštění, spusťte

sudo systemctl enable amplify-agent

Konfigurace Stub_status v Nginx

Agent Amplify může shromažďovat systémové metriky ihned po vybalení. Abyste mohli shromažďovat metriky Nginx, musíte nakonfigurovat Nginx stub_status. Vytvořte konfigurační soubor.

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

Přidejte následující blok serveru do http {...} kontextu.

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

Uložte a zavřete soubor. Poté znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

Nyní může agent Amplify začít shromažďovat metriky Nginx.

Vytvoření vlastního formátu protokolu Nginx

Agent Nginx Amplify může také shromažďovat informace ze souborů protokolu Nginx. Výchozí formát protokolu nám však poskytuje omezené informace. Pokud vám opravdu záleží na výkonu aplikace, měli byste si vytvořit vlastní formát protokolu, který bude zobrazovat dobu požadavku, dobu odezvy upstream, přístupy do mezipaměti atd.

Otevřete soubor nginx.conf soubor.

sudo nano /etc/nginx/nginx.conf

Přidejte následující řádky do http {...} kontextu, nad include směrnice. Zde vytváříme vlastní formát protokolu Nginx s názvem apm (monitorování výkonu aplikace), který zahrnuje informace o request_time , upstream_response_time , upstream_connect_time a upstream_header_time . Všechny jsou měřeny v sekundách s rozlišením milisekund.

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

Uložte a zavřete soubor. Poté otevřete konfigurační soubor virtuálního hostitele Nginx. Například,

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

V server {...} kontextu, přidejte následující dva řádky, abyste povolili protokol přístupu a protokol chyb. Přístupový protokol používá apm formát a protokol chyb používá warn úroveň protokolu.

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

Uložte a zavřete soubor. Poté znovu načtěte Nginx.

sudo systemctl reload nginx

Nyní v grafech Amplify vidím dobu odezvy upstream a další metriky související s výkonem. Dobrá doba odezvy upstream je pod 0,5 sekundy. V opačném případě budou mít návštěvníci pocit, že je váš web pomalý. Pokud dokážete vyladit svůj server tak, aby doba odezvy upstreamu byla nižší než 0,2 sekundy, váš web bude velmi svižný.

Pokud agent Amplify nehlásí metriky Nginx, zkontrolujte, zda agent Amplify běží jako stejný uživatel jako pracovní proces Nginx. Můžete také zkontrolovat protokol Amplify Agent (/var/log/amplify-agent/agent.log ).

Jak vyloučit svou vlastní IP adresu v protokolu přístupu Nginx

Někdy může vaše aktivita zkreslit metriky Nginx. Abyste tomu zabránili, můžete v protokolu přístupu vyloučit svou vlastní IP adresu. Nejprve přidejte následující řádky do http kontextu konfiguračního souboru Nginx. Nahraďte 12.34.56.78 svou vlastní IP adresou. Pokud požadavek HTTP přichází z vaší vlastní IP adresy, Nginx nastaví hodnotu $log_ip proměnná na 0 .

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

Poté změňte access_log směrnice takto.

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

Uložte a zavřete soubor. Poté napište text o konfiguraci nginx a znovu načtěte.

sudo nginx -t
sudo systemctl reload nginx

Jak monitorovat databázový server MariaDB/MySQL

Nejprve musíme vytvořit uživatele v MariaDB/MySQL, který bude shromažďovat metriky. Přihlaste se k monitoru MariaDB/MySQL.

mysql -u root -p

Vytvořte nového uživatele pro agenta Amplify. Nahraďte your_password s vaším preferovaným heslem. (Doporučujeme zvolit heslo, které se liší od root hesla MariaDB/MySQL.)

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

Ukončete server MariaDB/MySQL.

exit;

Dále musíme povolit plugin Amplify MariaDB/MySQL v konfiguračním souboru Amplify.

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

V [extensions] sekce, můžete vidět, že mysql plugin je ve výchozím nastavení zakázán.

[extensions]
phpfpm = True
mysql = False

Změňte False na True pro povolení tohoto pluginu.

[extensions]
phpfpm = True
mysql = True

Poté v [mysql] najděte následující řádek.

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

Balíček MariaDB na CentOS naslouchá na /var/lib/mysql/mysql.sock Unixový socket, změňte tedy hodnotu unix_socket do

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

Poté nahraďte výchozí heslo heslem, které jste nastavili pro amplify-agent uživatel. Uložte a zavřete soubor. Poté restartujte agenta Amplify, aby se změny projevily.

sudo systemctl restart amplify-agent

Nyní agent Amplify začne shromažďovat metriky MariaDB/MySQL. (Možná budete muset několik minut počkat.)

Jak povolit protokol pomalých dotazů MariaDB

Protokol pomalých dotazů vám může ukázat, na které dotazy trvá odpověď dlouho. Je to důležitý nástroj pro optimalizaci výkonu MariaDB. Chcete-li povolit protokol pomalých dotazů MariaDB, upravte konfigurační soubor serveru.

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

Přidejte následující řádky do [mysqld] sekce.

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

Nastavil jsem long_query_time na nízké číslo 1 sekundu. Můžete také zadat menší hodnotu, například 0,5 sekundy. Uložte a zavřete soubor. Restartujte MariaDB, aby se změny projevily.

sudo systemctl restart mariadb

Nyní vám Nginx Amplify může ukázat pomalé dotazy v grafech.

Jak monitorovat PHP-FPM

Plugin PHP-FPM Amplify agent je ve výchozím nastavení povolen, ale abychom mohli shromažďovat metriky, musíme povolit stav PHP-FPM. Upravte konfigurační soubor fondu PHP-FPM.

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

Najděte následující řádek a odeberte středník, abyste aktivovali stav PHP-FPM.

;pm.status_path = /status

Pomalý protokol PHP je ve výchozím nastavení povolen, jak ukazuje následující řádek.

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

Pak najděte následující řádek.

;request_slowlog_timeout = 0

Odstraňte středník a nastavte sekundy časového limitu jako 1s.

request_slowlog_timeout = 1s

Uložte a zavřete soubor. Vytvořte adresář pro protokoly PHP-FPM.

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

Restartujte PHP-FPM, aby se změny projevily.

sudo systemctl restart php-fpm

Nyní agent Amplify začne shromažďovat metriky PHP-FPM včetně protokolu pomalých požadavků.

Stránka Amplify Overview

Na stránce přehledu můžete vidět celkové skóre stavu aplikace a 5 klíčových metrik pro váš systém.

  • Celkový počet požadavků
  • Chyby HTTP 5xx
  • Čas požadavku (Chcete-li zobrazit tuto metriku, musíte vytvořit vlastní formát protokolu, jak bylo popsáno výše.)
  • Kolik šířky pásma využívá Nginx
  • Využití CPU

Skóre stavu aplikace je ovlivněno počtem chyb HTTP 5xx. Pokud nejsou žádné chyby HTTP 5xx, bude skóre 100 %.

Grafy

Na stránce Grafy můžete vidět předdefinované metriky systému, Nginx, MariaDB/MySQL a PHP-FPM.

Nginx Amplify Dashboards

Ovládací panely Amplify umožňují vytvářet vlastní grafy a tabulky a seskupovat je na jednu stránku. Můžete například sestavit všechny grafy související s výkonem na jedné stránce nebo možná budete chtít zobrazit všechny metriky pro konkrétní adresu URL.

Pokud jste nakonfigurovali mezipaměť Nginx FastCGI, můžete také na řídicím panelu vytvořit grafy poměru zásahů mezipaměti Nginx a vypršení platnosti mezipaměti.

Analyzátor

Jedním z užitečných nástrojů v analyzátoru je statická analýza. Amplify může analyzovat váš konfigurační soubor Nginx a dávat doporučení týkající se výkonu, zabezpečení a spolehlivosti. Můžete jej použít k identifikaci chyb a vylepšení konfigurace.

Jak můžete vidět, pro můj server Nginx je 5 varování, takže kliknu na odkaz Otevřít, abych zjistil, jak upravit své konfigurace Nginx.

Po provedení úprav počkejte několik minut a varování zmizí.

Upozornění

Ve výchozím nastavení, pokud agent Amplify přestane fungovat, bude na vaši e-mailovou adresu odesláno upozornění. Na stránce upozornění můžete nastavit různá upozornění pro váš server. Mohu například říct Amplify, aby mi poslala e-mail, pokud doba odezvy upstream za poslední 2 minuty přesahuje 1 sekundu.

Pokud vašemu serveru dojde RAM, může to zabít proces MySQL/MariaDB. Můžete vytvořit pravidlo výstrahy pro sledování dostupnosti MySQL/MariaDB, jak je uvedeno níže. Pokud je doba provozuschopnosti nižší než 120 sekund za poslední 2 minuty, zašlete e-mailové upozornění.

Agent Amplify přestane fungovat

Často jsem zjistil, že agent Amplify z neznámého důvodu přestává odesílat metriky výkonu. Abych tento problém vyřešil, vytvořím úlohu Cron pro restart Amplify-agenta jednou denně.

sudo crontab -e

Přidejte následující řádek do souboru crontab.

@daily systemctl restart amplify-agent

Uložte a zavřete soubor.


Cent OS
  1. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7 / RHEL 7

  2. Jak nainstalovat Linux, Nginx, MariaDB, PHP (LEMP Stack) v CentOS 7 / RHEL 7

  3. Jak nainstalovat Puppet na RHEL 8/CentOS 8

  1. Jak nainstalovat LEMP Stack (Nginx, MySQL, PHP v7) na CentOS 7

  2. Jak monitorovat Nginx pomocí Netdata na CentOS 7

  3. Jak nainstalovat LEMP Stack na CentOS 7

  1. Jak nainstalovat Nginx Amplify Agent na CentOS 7

  2. Nainstalujte Nginx na CentOS 7 / RHEL 7

  3. Nainstalujte WordPress s Nginx na CentOS 7 / RHEL 7