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 Software as a Service
- NGINX Amplify Agent
- NGINX Amplify Web UI
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
/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
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 error_log 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