GNU/Linux >> Belajar Linux >  >> Cent OS

Instal Nginx Amplify di CentOS 8/RHEL 8 untuk Memantau Kinerja LEMP

Nginx Amplify adalah cara gratis, fleksibel, dan kuat untuk menganalisis beban dan kinerja server web Nginx dan Nginx Plus. Mudah diatur dan digunakan. Nginx Amplify juga dilengkapi dengan MySQL/MariaDB, plugin PHP-FPM sehingga Anda dapat memantau aplikasi tumpukan LEMP secara penuh. (LEMP adalah singkatan dari Linux, Nginx, MySQL/MariaDB, PHP.)

Nginx Amplify dikembangkan oleh Nginx, Inc, perusahaan di balik server web Nginx. Ini adalah solusi berbasis SaaS. Anda menginstal agen Nginx Amplify di server Anda dan itu akan mengumpulkan dan mengirim metrik ke layanan SaaS. Agen Nginx Amplify bersifat open-source dan ringan. Ini mengumpulkan banyak metrik, termasuk:

  • Metrik sistem (CPU, penggunaan RAM, lalu lintas jaringan, penggunaan disk, I/O disk, latensi disk, dll)
  • Metrik Nginx (koneksi, permintaan, status HTTP, waktu respons, lalu lintas, dan lainnya)
  • Metrik MySQL/MariaDB (koneksi, kueri pemilihan, kueri penyisipan, kueri pembaruan, kueri lambat, dll)
  • Metrik PHP-FPM (koneksi, antrean koneksi, permintaan lambat, dll)

Nginx Amplify juga bisa

  • Gunakan penganalisis statis untuk membantu Anda meningkatkan konfigurasi Nginx.
  • Memperingatkan Anda tentang perilaku abnormal

Menginstal Nginx Amplify di Server Linux CentOS 8/RHEL8 Anda

Agen Nginx Amplify adalah open-source dan ada skrip penginstalan yang dapat Anda gunakan untuk menginstal Nginx Amplify pada Distribusi Linux berikut:

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

Pertama, daftarkan akun di https://amplify.nginx.com

Verifikasi alamat email Anda. Selanjutnya, Anda perlu menginstal Nginx Amplify Agent di server Linux Anda. SSH ke server Anda dan login sebagai root. Situs web Nginx Amplify sangat bagus untuk memberikan perintah yang perlu Anda jalankan untuk menginstal Nginx Amplify, jadi cukup salin dan jalankan perintah ini di server Anda.

Perhatikan bahwa Anda perlu menjalankan perintah ini sebagai root.

Nginx Amplify membutuhkan Python2. Instal dari repositori CentOS default.

sudo dnf install python2

Unduh skrip penginstalan.

Kemudian jalankan skrip instal. (Setiap akun Amplify memiliki kunci API unik.)

Setelah terinstal, agen akan secara otomatis mulai. Anda dapat memeriksa statusnya dengan:

systemctl status amplify-agent

Contoh Keluaran:

● 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

Petunjuk:Jika perintah di atas tidak segera berhenti, tekan Q untuk mendapatkan kembali kendali terminal.

Untuk mengaktifkan mulai otomatis saat boot, jalankan

sudo systemctl enable amplify-agent

Mengonfigurasi Stub_status di Nginx

Agen Amplify dapat mengumpulkan metrik sistem secara langsung. Untuk mengumpulkan metrik Nginx, Anda perlu mengonfigurasi Nginx stub_status. Buat file konfigurasi.

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

Tambahkan blok server berikut di http {...} konteks.

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

Simpan dan tutup file. Kemudian muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Sekarang agen Amplify dapat mulai mengumpulkan metrik Nginx.

Membuat Format Log Nginx Kustom

Agen Nginx Amplify juga dapat mengumpulkan informasi dari file log Nginx. Namun, format log default memberi kami informasi terbatas. Jika Anda benar-benar peduli dengan kinerja aplikasi, Anda harus membuat format log khusus untuk menunjukkan waktu permintaan, waktu respons upstream, cache hit, dll.

Buka nginx.conf berkas.

sudo nano /etc/nginx/nginx.conf

Tambahkan baris berikut di http {...} konteks, di atas include arahan. Di sini kami membuat format log Nginx khusus yang disebut apm (pemantauan kinerja aplikasi) yang mencakup informasi tentang request_time , upstream_response_time , upstream_connect_time dan upstream_header_time . Semua diukur dalam hitungan detik dengan resolusi milidetik.

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

Simpan dan tutup file. Kemudian buka file konfigurasi virtual host Nginx Anda. Misalnya,

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

Di server {...} konteks, tambahkan dua baris berikut untuk mengaktifkan log akses dan log kesalahan. Log akses menggunakan apm format dan log kesalahan menggunakan warn tingkat log.

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

Simpan dan tutup file. Kemudian muat ulang Nginx.

sudo systemctl reload nginx

Sekarang saya dapat melihat waktu respons upstream dan metrik terkait kinerja lainnya di grafik Amplify. Waktu respons upstream yang baik adalah di bawah 0,5 detik. Jika tidak, pengunjung Anda dapat merasakan situs web Anda lambat. Jika Anda dapat menyetel server Anda untuk mendapatkan waktu respons upstream di bawah 0,2 detik, situs web Anda akan sangat cepat.

Jika agen Amplify tidak melaporkan metrik Nginx, periksa apakah agen Amplify berjalan sebagai pengguna yang sama dengan proses pekerja Nginx. Anda juga dapat memeriksa log Agen Amplify (/var/log/amplify-agent/agent.log ).

Cara Mengecualikan Alamat IP Anda Sendiri di Log Akses Nginx

Terkadang, aktivitas Anda dapat mengubah metrik Nginx. Anda dapat mengecualikan alamat IP Anda sendiri di log akses untuk menghindarinya. Pertama, tambahkan baris berikut di http konteks file konfigurasi Nginx. Ganti 12.34.56.78 dengan alamat IP Anda sendiri. Jika permintaan HTTP berasal dari alamat IP Anda sendiri, Nginx akan menetapkan nilai $log_ip variabel ke 0 .

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

Kemudian ubah access_log arahan sebagai berikut.

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

Simpan dan tutup file. Kemudian ketik konfigurasi nginx dan muat ulang.

sudo nginx -t
sudo systemctl reload nginx

Cara Memantau Server Database MariaDB/MySQL

Pertama, kita perlu membuat pengguna di MariaDB/MySQL untuk mengumpulkan metrik. Masuk ke monitor MariaDB/MySQL.

mysql -u root -p

Buat pengguna baru untuk agen Amplify. Ganti your_password dengan kata sandi pilihan Anda. (Disarankan untuk memilih kata sandi yang berbeda dari kata sandi root MariaDB/MySQL.)

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

Keluar dari server MariaDB/MySQL.

exit;

Selanjutnya, kita perlu mengaktifkan plugin Amplify MariaDB/MySQL di file konfigurasi Amplify.

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

Dalam [extensions] bagian, Anda dapat melihat bahwa plugin mysql dinonaktifkan secara default.

[extensions]
phpfpm = True
mysql = False

Ubah False ke True untuk mengaktifkan plugin ini.

[extensions]
phpfpm = True
mysql = True

Kemudian di [mysql] bagian, temukan baris berikut.

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

Paket MariaDB di CentOS mendengarkan di /var/lib/mysql/mysql.sock Soket Unix, jadi ubah nilai unix_socket untuk

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

Kemudian ganti kata sandi default dengan kata sandi yang Anda tetapkan untuk amplify-agent pengguna. Simpan dan tutup file. Kemudian mulai ulang agen Amplify agar perubahan diterapkan.

sudo systemctl restart amplify-agent

Sekarang agen Amplify mulai mengumpulkan metrik MariaDB/MySQL. (Anda mungkin perlu menunggu beberapa menit.)

Cara Mengaktifkan Log Kueri Lambat MariaDB

Log kueri lambat dapat menunjukkan kueri mana yang membutuhkan waktu lama untuk ditanggapi. Ini adalah alat penting untuk mengoptimalkan kinerja MariaDB. Untuk mengaktifkan log kueri lambat MariaDB, edit file konfigurasi server.

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

Tambahkan baris berikut di [mysqld] bagian.

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

Saya mengatur long_query_time ke angka rendah 1 detik. Anda juga dapat menentukan nilai yang lebih kecil seperti 0,5 detik. Simpan dan tutup file. Mulai ulang MariaDB agar perubahan diterapkan.

sudo systemctl restart mariadb

Sekarang Nginx Amplify dapat menampilkan kueri lambat dalam grafik.

Cara Memantau PHP-FPM

Plugin Amplify agent PHP-FPM diaktifkan secara default, tetapi kita perlu mengaktifkan status PHP-FPM untuk mengumpulkan metrik. Edit file konfigurasi kumpulan PHP-FPM.

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

Temukan baris berikut dan hapus titik koma untuk mengaktifkan status PHP-FPM.

;pm.status_path = /status

Log lambat PHP diaktifkan secara default, seperti yang ditunjukkan oleh baris berikut.

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

Kemudian temukan baris berikut.

;request_slowlog_timeout = 0

Hapus titik koma dan atur detik timeout seperti 1 detik.

request_slowlog_timeout = 1s

Simpan dan tutup file. Buat direktori untuk log PHP-FPM.

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

Mulai ulang PHP-FPM agar perubahan diterapkan.

sudo systemctl restart php-fpm

Sekarang agen Amplify mulai mengumpulkan metrik PHP-FPM termasuk log permintaan lambat.

Halaman Ikhtisar Amplify

Di halaman ikhtisar, Anda dapat melihat skor kesehatan aplikasi secara keseluruhan dan 5 metrik utama untuk sistem Anda.

  • Total permintaan
  • Kesalahan HTTP 5xx
  • Waktu permintaan (Anda perlu membuat format log khusus seperti yang dijelaskan sebelumnya untuk menampilkan metrik ini.)
  • Berapa banyak bandwidth yang digunakan Nginx
  • Penggunaan CPU

Skor kesehatan aplikasi dipengaruhi oleh jumlah kesalahan HTTP 5xx. Jika tidak ada kesalahan HTTP 5xx, maka skor akan menjadi 100%.

Grafik

Di halaman Grafik, Anda dapat melihat metrik sistem yang telah ditentukan, Nginx, MariaDB/MySQL, dan PHP-FPM.

Dasbor Amplify Nginx

Dasbor Amplify memungkinkan Anda membuat grafik dan bagan khusus dan mengelompokkannya di satu halaman. Misalnya, Anda dapat mengumpulkan semua grafik terkait kinerja pada satu halaman, atau mungkin Anda ingin menampilkan semua metrik untuk URL tertentu.

Jika Anda telah mengonfigurasi cache Nginx FastCGI, Anda juga dapat membuat grafik untuk rasio hit cache Nginx dan kedaluwarsa cache di dasbor.

Penganalisis

Salah satu alat yang berguna dalam penganalisis adalah analisis statis. Amplify dapat mengurai file konfigurasi Nginx Anda dan membuat rekomendasi kinerja, keamanan, dan keandalan. Anda dapat menggunakannya untuk mengidentifikasi kesalahan dan meningkatkan konfigurasi.

Seperti yang Anda lihat, ada 5 peringatan untuk server Nginx saya, jadi saya mengklik tautan Buka untuk melihat cara menyesuaikan konfigurasi Nginx saya.

Setelah melakukan penyesuaian, tunggu beberapa menit dan peringatan akan hilang.

Peringatan

Secara default, jika agen Amplify berhenti bekerja, peringatan akan dikirim ke alamat email Anda. Pada halaman peringatan, Anda dapat mengatur berbagai peringatan untuk server Anda. Misalnya, saya dapat memberi tahu Amplify untuk mengirimi saya email jika waktu respons upstream di atas 1 detik selama 2 menit terakhir.

Jika server Anda kehabisan RAM, maka itu bisa mematikan proses MySQL/MariaDB. Anda dapat membuat aturan peringatan untuk memantau waktu aktif MySQL/MariaDB seperti di bawah ini. Jika waktu aktif di bawah 120 detik selama 2 menit terakhir, kirimkan pemberitahuan email.

Agen Amplify Berhenti Bekerja

Seringkali saya menemukan bahwa agen Amplify berhenti mengirim metrik kinerja karena alasan yang tidak diketahui. Saya membuat tugas Cron untuk memulai ulang Amplify-agent sekali sehari untuk menyelesaikan masalah ini.

sudo crontab -e

Tambahkan baris berikut di file crontab.

@daily systemctl restart amplify-agent

Simpan dan tutup file.


Cent OS
  1. Cara Instal phpMyAdmin dengan Nginx di CentOS 7 / RHEL 7

  2. Cara Instal Linux, Nginx, MariaDB, PHP (LEMP Stack) di CentOS 7 / RHEL 7

  3. Cara menginstal Wayang di RHEL 8/CentOS 8

  1. Cara Menginstal LEMP Stack (Nginx, MySQL, PHP v7) di CentOS 7

  2. Cara Memantau Nginx menggunakan Netdata di CentOS 7

  3. Cara Menginstal LEMP Stack di CentOS 7

  1. Cara Menginstal Agen Amplify Nginx di CentOS 7

  2. Instal Nginx di CentOS 7 / RHEL 7

  3. Instal WordPress dengan Nginx di CentOS 7 / RHEL 7