Anche se il monitoraggio dell'applicazione Looker potrebbe non sembrare strettamente obbligatorio, è molto importante per l'impostazione su istanze ospitate dal cliente. Nei rari casi in cui si verificasse un problema con il server, è spesso molto più difficile, o impossibile, per Looker aiutarti a risolverlo, a meno che tu non sia in grado di fornire informazioni di monitoraggio appropriate dal momento dell'incidente.
Monitoraggio delle applicazioni
URL
Esistono due semplici modi per verificare che la tua istanza Looker sia in esecuzione.
Aggiungi
/alive
all'URL dell'istanza di Looker in questo modo:https://instance_name.looker.com/alive
Se la tua istanza è in grado di rispondere a una richiesta web, riceverai un codice di stato HTTP 200 OK.
Aggiungi
/availability
all'URL dell'istanza di Looker in questo modo:https://instance_name.looker.com/availability
Questo URL esegue un controllo più completo di diversi sottosistemi sottostanti e risponde anche con un codice di stato HTTP 200 OK se non ci sono problemi.
JMX
La macchina virtuale Java che esegue Looker può essere monitorata tramite JMX.
Molte applicazioni di monitoraggio, come Zabbix e Nagios, supportano JMX. Per ulteriori informazioni, consulta la documentazione dell'applicazione di monitoraggio.
Modifica lo script di avvio di Looker
Per abilitare il monitoraggio JMX, devi modificare lo script di avvio di Looker. Per impostazione predefinita, il nome è:
/home/looker/looker/looker
Cerca i parametri di avvio Java:
java \
-XX:+UseG1GC -XX:MaxGCPauseMillis=2000 \
-Xms$JAVAMEM -Xmx$JAVAMEM \
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps \
-Xloggc:/tmp/gc.log ${JAVAARGS} \
-jar looker.jar start ${LOOKERARGS}
A partire da Looker 6.18, il file JAR di Looker è stato suddiviso in due file JAR separati: il file JAR principale di Looker e un file JAR delle dipendenze di Looker. All'avvio, il file JAR principale avvierà automaticamente il file JAR delle dipendenze. Entrambi i file JAR devono trovarsi nella stessa directory in modo che il file JAR principale possa trovare e avviare correttamente il file JAR delle dipendenze.
Per impostazione predefinita, l'opzione di avvio di --no-daemonise
non è configurata. Se non hai impostato l'opzione --no-daemonise
, aggiungi una sezione seguendo la riga che inizi con -Xms$JAVAMEM
:
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.port=9910 \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.ssl=false \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.local.only=false \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.authenticate=true \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.access.file=${HOME}/.lookerjmx/jmxremote.access \
-Dcom.sun.akuma.jvmarg.com.sun.management.jmxremote.password.file=${HOME}/.lookerjmx/jmxremote.password \
Se hai impostato l'opzione di avvio di --no-daemonise
, aggiungi una sezione seguendo la riga che inizi con -Xms$JAVAMEM
:
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9910 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.access.file=${HOME}/.lookerjmx/jmxremote.access \
-Dcom.sun.management.jmxremote.password.file=${HOME}/.lookerjmx/jmxremote.password \
Crea la directory .lookerjmx
A questo punto, crea la directory .lookerjmx
nella home directory dell'utente Looker e imposta le autorizzazioni:
sudo su - looker
mkdir ~/.lookerjmx
chmod 700 ~/.lookerjmx
cd ~/.lookerjmx
Crea i file JMX
Utilizzando il tuo editor di testo preferito, crea un file nella nuova directory denominata jmxremote.access
con il seguente contenuto (puoi personalizzarlo per il tuo ambiente):
monitorRole readonly
controlRole readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
Quindi, crea un file denominato jmxremote.password
nella stessa directory con i seguenti contenuti, utilizzando le tue password sicure:
monitorRole some_password_here
controlRole some_password_here
Impostazione delle autorizzazioni
Fai in modo che Java (e quindi Looker) non venga avviato se le autorizzazioni del file consentono a chiunque tranne l'utente Looker di leggere il file delle password.
chmod 400 jmxremote.*
Riavvia Looker
Looker deve essere riavviato per abilitare JMX. Assicurati di eseguirlo *come utente Looker e non come utente root*:
cd ~/looker
./looker restart
La tua istanza Looker è ora configurata per il monitoraggio JMX remoto sulla porta 9910, utilizzando la password che hai fornito. Potrebbe essere necessario modificare le impostazioni del firewall o gli ACL di rete per consentire al server di monitoraggio di ottenere l'accesso alla rete su questa porta.
Monitoraggio dell'host
Per ogni host che esegue l'applicazione Looker, ti consigliamo di raccogliere, rappresentare graficamente e creare avvisi almeno sulle seguenti metriche relative alle prestazioni:
- Utilizzo della CPU: carico e percentuale di CPU utilizzata
- Utilizzo memoria: totale utilizzato e swap utilizzati
- Utilizzo del disco
Soglie di avviso
Per stabilire soglie di avviso efficaci, devi prima stabilire una base di riferimento. Raccogli i dati sulle prestazioni con la tua istanza Looker in esecuzione in un carico normale. Dai un'occhiata ai grafici del rendimento e osserva i picchi. Il tempo necessario per stabilire le basi dipende dalla tua attività e dai modelli di utilizzo di Looker. Alcune aziende potrebbero utilizzare Looker in modo stabile e ripetibile ogni settimana durante l'orario di lavoro. Altri potrebbero utilizzare Looker in modo più intensivo in momenti specifici (ad esempio alla fine di ogni mese).
In generale, gli avvisi dovrebbero essere inviati solo per gli eventi su cui è possibile intervenire. L'invio di avvisi quando non è necessario fare nulla maschera l'importanza di avvisi critici.
Le seguenti soglie possono essere utilizzate come punto di partenza per gli avvisi. Se i seguenti valori vengono superati per almeno 15 minuti, potrebbe essere necessario un intervento manuale.
Metrica | Avviso | Critico | Commenti |
---|---|---|---|
Carico CPU | 2 | 4 | In genere il carico dovrebbe essere pari o inferiore a 1 per un sistema single-core. Un carico elevato sostenuto porta a prestazioni scadenti. |
% CPU utilizzata | 80 | 90 | Un utilizzo elevato della CPU porta a prestazioni scadenti. |
% memoria utilizzata | 60 | 70 | Un utilizzo elevato della memoria può indicare che è allocata troppa memoria a Java. |
% disco utilizzata | 80 | 90 | Assicurati che il disco non sia pieno. |
Note aggiuntive
- I sistemi con più di un core possono gestire carichi di CPU elevati senza prestazioni ridotte. La regola generale è che il carico sostenuto non deve essere maggiore del numero di core del processore.
- La percentuale di tempo di CPU totale in uso prima che un sistema riscontri un peggioramento delle prestazioni scala con il numero di core della CPU nel sistema. In altre parole, un sistema single-core può avere prestazioni scadenti quando la CPU è utilizzata per l'80%, mentre un host a sedici core può essere ancora utilizzabile con un utilizzo del 95%.
- Un elevato utilizzo sostenuto della CPU può essere rettificato aggiornando l'hardware host o eseguendo l'upgrade a un'istanza più grande. A volte un numero elevato di Look pianificati o tabelle derivate da query lunghe può essere ridotto o reso più efficiente per migliorare le prestazioni.
Passaggi successivi
Dopo aver configurato il monitoraggio, puoi configurare i backup di Looker.