Torniamo nella nostra rubrica dedicata ai tool per sviluppatori e amministratori di sistema. Oggi analizzeremmo un programma chiamato Amplify, si tratta di una collezione di tool dedicati al NGINX monitoring. Amplify sarà quindi utile a coloro che devono gestire un web server NGINX.
Tramite Amplify sarà possibile monitorare i possibili colli di bottiglia, i server soggetti a carichi di lavoro estremi o i potenziali attacchi DDoS. La piattaforma fornirà inoltre anche dei consigli per migliorare ed ottimizzare le performance di NGINX. Previste inoltre notifiche automatiche in caso di malfunzionamenti.
Amplify è composto essenzialmente da 3 componenti chiave:
- NGINX Amplify Backend: i componenti core system implementati come SaaS (Software as a Service). Incorporano una collezione di metriche, un analytics engine e diverse API.
- NGINX Amplify Agent: applicazione in Python che viene installata ed avviata sul sistema monitorato. Tutte le comunicazioni tra l'Agent e il SaaS backend vengono effettuate in modo sicuro tramite protocollo SSL/TLS.
- NGINX Amplify Web UI: l'interfaccia utente che è possibile utilizzare su tutti i browser, accessibile solo tramite TSL/SSL.
La Web UI ci mostrerà i grafici delle risorse di sistema utilizzate da NGINX e dalle varie applicazioni in uso. Sarà possibile creare una user-defined dashboard associata ad uno static analyzer dedicato.
Per utilizzare Amplify sarà necessario innanzitutto registrarsi sul sito ufficiale del progetto. Una volta fatto questo si potrà scaricare il pacchetto del tool ed installare il tutto:
wget https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh
sudo API_KEY='e126cf9a5c3b4f89498a4d7e1d7fdccf' sh ./install.sh
Dovremo quindi configurare NGINX creando prima di tutto il file stub_status
nella directory /etc/nginx/conf.d/
:
sudo vi /etc/nginx/conf.d/sub_status.conf
per poi incollare le seguenti direttive:
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status;
allow 127.0.0.1;
deny all;
}
}
Una volta riavviato NGINX
sudo systemctl restart nginx
andremo ad indicare la tipologia di log da comunicare all'agent di Amplify. Si dovrà dunque definire uno specifico formato di log tramite l'attributo log_format nel file di configurazione di NGINX:
sudo nano /etc/nginx/nginx.conf
log_format main_ext '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$host" sn="$server_name" ' 'rt=$request_time '
'ua="$upstream_addr" us="$upstream_status" '
'ut="$upstream_response_time" ul="$upstream_response_length" '
'cs=$upstream_cache_status' ;
Dovremo poi indicare quali errori devono generare dei warning tramite le voci access_log e error_log impostando l'opzione warn:
access_log /var/log/nginx/suasell.com/suasell.com_access_log main_ext;
error_log /var/log/nginx/suasell.com/suasell.com_error_log warn;
Ora non resterà che salvare le modifiche e riavviare nuovamente il Web server:
sudo systemctl restart nginx
Saremo quindi pronti per iniziare ad utilizzare Amplify, per far questo basterà collegarsi al sito web e accedere con il proprio account.