Scheda tecnica¶
Installazione¶
Tabella_128_
Comandi di base¶
Tabella_129_
Interattivo tastiere scorciatoie¶
Tabella_130_
Uso avanzato¶
Tabella_131_
Uso Docker¶
Run Glances in Docker Container¶
# Basic container with web interface
docker run -d --restart="always" \
-p 61208-61209:61208-61209 \
-e GLANCES_OPT="-w" \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--pid host \
nicolargo/glances
# With custom configuration file
docker run -d \
-v /path/to/glances.conf:/glances/conf/glances.conf \
-p 61208-61209:61208-61209 \
-e GLANCES_OPT="-w" \
nicolargo/glances
# Server mode only
docker run -d \
-p 61209:61209 \
-e GLANCES_OPT="-s" \
--pid host \
nicolargo/glances
Configurazione¶
Glances utilizza un file di configurazione situato a: - Linux: _____________________________________________________________________________________ - MacOS: - Finestre: _______________
Esempio di configurazione di base¶
[global]
# Refresh rate in seconds
refresh=2
# Check for updates
check_update=false
[cpu]
# CPU thresholds (%)
careful=50
warning=70
critical=90
[mem]
# Memory thresholds (%)
careful=50
warning=70
critical=90
[memswap]
# Swap thresholds (%)
careful=50
warning=70
critical=90
[load]
# Load average thresholds (per CPU)
careful=0.7
warning=1.0
critical=5.0
[network]
# Hide network interfaces
hide=lo,docker.*
# Show cumulative values
cumulative=False
[diskio]
# Hide disk devices
hide=loop.*,/dev/loop.*
[fs]
# Hide filesystems
hide=/boot.*,/snap.*
# Careful threshold (%)
careful=50
warning=70
critical=90
[folders]
# Monitor specific folders
folder_1_path=/home
folder_1_careful=2500
folder_1_warning=3000
folder_1_critical=3500
[sensors]
# Temperature thresholds (Celsius)
temperature_core_careful=60
temperature_core_warning=70
temperature_core_critical=80
[processlist]
# CPU thresholds for processes (%)
cpu_careful=50
cpu_warning=70
cpu_critical=90
# Memory thresholds for processes (%)
mem_careful=50
mem_warning=70
mem_critical=90
[docker]
# Enable Docker monitoring
disable=False
# Maximum containers to display
max_name_size=20
Configurazione server Web¶
[outputs]
# Export to CSV
export_csv_file=/tmp/glances.csv
export_csv_overwrite=False
# Export to InfluxDB
export_influxdb=True
influxdb_host=localhost
influxdb_port=8086
influxdb_user=root
influxdb_password=root
influxdb_db=glances
# Export to Prometheus
export_prometheus=True
prometheus_port=9091
prometheus_prefix=glances
[serverlist]
# Remote servers to monitor
server_1_name=prod-server-1
server_1_alias=Production 1
server_1_host=192.168.1.100
server_1_port=61209
server_2_name=prod-server-2
server_2_alias=Production 2
server_2_host=192.168.1.101
server_2_port=61209
RESTful API Utilizzo¶
API Endpoints¶
Tabella_132_
Esempi API¶
# Get CPU stats
curl http://localhost:61208/api/3/cpu
# Get memory stats
curl http://localhost:61208/api/3/mem
# Get all stats
curl http://localhost:61208/api/3/all
# Get specific process
curl http://localhost:61208/api/3/processlist/pid/1234
# Pretty print JSON output
curl http://localhost:61208/api/3/cpu | python -m json.tool
# Get stats with authentication
curl -u admin:secret http://localhost:61208/api/3/cpu
Common Use Cases¶
Use Case 1: Remote Server Monitoring¶
Monitorare più server da una posizione centrale:
# On remote servers (run as service)
glances -s -B 0.0.0.0 --password
# On monitoring station
glances -c server1.example.com --password yourpassword
# Or use web interface
glances -w -B 0.0.0.0 --username admin --password secret
# Access via browser: http://server:61208
Use Case 2: Export Metrics to InfluxDB and Grafana¶
Impostare il monitoraggio continuo con la visualizzazione:
# Start glances with InfluxDB export
glances --export influxdb \
--influxdb-host localhost \
--influxdb-port 8086 \
--influxdb-user admin \
--influxdb-password secret \
--influxdb-db glances
# Or configure in glances.conf and run as daemon
glances --quiet --export influxdb
Configurare Grafana per utilizzare InfluxDB come sorgente dati e creare dashboard.
Use Case 3: Docker Container Monitoring¶
Monitorare i contenitori Docker accanto alle metriche di sistema:
# Enable Docker monitoring
glances --docker
# Docker-only view (hide processes)
glances --docker --disable-process
# Export Docker stats to Prometheus
glances --docker --export prometheus --prometheus-port 9091
# Web interface with Docker stats
glances -w --docker
Use Case 4: Troubleshooting High CPU Utilizzo¶
Identificare e analizzare i processi ad alta intensità di risorse:
# Start glances with focus on CPU
glances --percpu
# Interactive steps:
# 1. Press 'c' to sort by CPU usage
# 2. Press '1' to see per-CPU breakdown
# 3. Press 'T' to view process tree
# 4. Navigate to problematic process
# 5. Press 'k' to kill if needed
# Export data for analysis
glances --export csv --export-csv-file /tmp/cpu-analysis.csv -t 1
Use Case 5: Automated Monitoring Script¶
Creare uno script di monitoraggio con avvisi:
#!/bin/bash
# monitor.sh - Check system health via Glances API
# Start glances web server in background
glances -w --quiet &
GLANCES_PID=$!
sleep 5
# Check CPU usage
CPU_USAGE=$(curl -s http://localhost:61208/api/3/cpu | \
python -c "import sys, json; print(json.load(sys.stdin)['total'])")
if (( $(echo "$CPU_USAGE > 80" | bc -l) )); then
echo "ALERT: CPU usage is ${CPU_USAGE}%"
# Send notification or alert
fi
# Check memory usage
MEM_USAGE=$(curl -s http://localhost:61208/api/3/mem | \
python -c "import sys, json; print(json.load(sys.stdin)['percent'])")
if (( $(echo "$MEM_USAGE > 90" | bc -l) )); then
echo "ALERT: Memory usage is ${MEM_USAGE}%"
fi
# Cleanup
kill $GLANCES_PID
Migliori Pratiche¶
-
Utilizzare i file di configurazione invece di opzioni di riga di comando per le impostazioni permanenti per mantenere la coerenza tra le sessioni e rendere la versione di configurazione-controllabile
-
Set appropriati intervalli di aggiornamento - Utilizzare 2-5 secondi per il monitoraggio interattivo, 10-30 secondi per il monitoraggio dello sfondo per bilanciare la reattività con il carico di sistema
-
Filter informazioni inutili - Nascondi interfacce di rete irrilevanti, dispositivi su disco e filesystem per ridurre l'ingombro e concentrarsi su metriche importanti
-
Implementare l'autenticazione per il monitoraggio remoto e le interfacce web per impedire l'accesso non autorizzato alle informazioni di sistema, soprattutto negli ambienti di produzione
-
Esportare database di serie temporali come InfluxDB o Prometheus per analisi di tendenza a lungo termine, pianificazione delle capacità e risoluzione dei problemi storici
-
Run come servizio systemd sui server Linux per l'avvio automatico e la continuità di monitoraggio attraverso i reboots
-
Container Docker durante l'esecuzione di carichi di lavoro containerizzati per monitorare l'utilizzo delle risorse per container e identificare le applicazioni di assetto delle risorse
-
** Utilizzare le soglie di colore con saggezza** - Configurare le soglie di attenzione/avvertimento/criticale basate sulle normali gamme operative del sistema per evitare l'avvertimento
-
Leverage the API per l'automazione e l'integrazione con i sistemi di monitoraggio esistenti, strumenti di avviso o dashboard personalizzati
-
Aggiungi gli sguardi aggiornati - Aggiorna regolarmente per ottenere nuove funzionalità, miglioramenti delle prestazioni e patch di sicurezza
Risoluzione dei problemi¶
Tabella_133_
Dipendenze opzionali¶
Installare questi pacchetti per funzionalità migliorate:
# Docker monitoring
pip3 install docker
# GPU monitoring (NVIDIA)
pip3 install nvidia-ml-py3
# Sensors support (Linux)
pip3 install py3sensors
# Web interface
pip3 install bottle
# InfluxDB export
pip3 install influxdb influxdb-client
# Prometheus export
pip3 install prometheus_client
# Elasticsearch export
pip3 install elasticsearch
# StatsD export
pip3 install statsd
# IP geolocation
pip3 install geoip2
# All optional features
pip3 install 'glances[all]'