Surveillance de Looker

Même si la surveillance des applications Looker ne semble pas être obligatoire, elle est très importante. Dans les rares cas où un problème survient sur votre serveur, il est souvent beaucoup plus difficile, voire impossible, pour Looker de vous aider à résoudre le problème, sauf si vous pouvez fournir les informations de surveillance appropriées à partir de l'incident.

Surveillance des applications

URL

Il existe deux façons simples de vérifier que votre instance Looker est en cours d'exécution.

  1. Ajoutez /alive à l'URL de votre instance Looker comme suit:

    https://instance_name.looker.com/alive

    Si votre instance peut répondre à une requête Web, vous recevez un code d'état HTTP 200 OK.

  2. Ajoutez /availability à l'URL de votre instance Looker comme suit:

    https://instance_name.looker.com/availability

    Cette URL vérifie de manière plus complète plusieurs sous-systèmes sous-jacents et répond également avec un code d'état HTTP 200 OK si tout fonctionne correctement.

JMX

La machine virtuelle Java qui exécute Looker peut être surveillée via JMX.

De nombreuses applications de surveillance telles que Zabbix et Nagios sont compatibles avec JMX. Pour en savoir plus, consultez la documentation de votre application de surveillance.

Modifier le script de démarrage de Looker

Pour activer la surveillance JMX, vous devez modifier le script de démarrage de Looker. Par défaut, il est nommé:

/home/looker/looker/looker

Recherchez les paramètres de démarrage 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}

À partir de la version 6.18 de Looker, le fichier JAR Looker a été divisé en deux fichiers JAR distincts: le fichier JAR principal Looker et le fichier JAR de dépendances Looker. Au démarrage, le fichier JAR principal lancera automatiquement le fichier JAR des dépendances. Les deux fichiers JAR doivent se trouver dans le même répertoire afin que le fichier JAR principal puisse trouver et démarrer le fichier JAR des dépendances.

Par défaut, l'option de démarrage --no-daemonise n'est pas définie. Si vous n'avez pas défini l'option --no-daemonise, ajoutez une section après la ligne commençant par -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 \

Si vous avez défini l'option de démarrage --no-daemonise, ajoutez une section après la ligne commençant par -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 \

Créer le répertoire .lookerjmx

Ensuite, créez le répertoire .lookerjmx sous le répertoire d'accueil de l'utilisateur Looker et définissez les autorisations:

sudo su - looker
mkdir ~/.lookerjmx
chmod 700 ~/.lookerjmx
cd ~/.lookerjmx

Créer les fichiers JMX

Dans votre éditeur de texte préféré, créez un fichier dans le nouveau répertoire nommé jmxremote.access avec le contenu suivant (vous pouvez le personnaliser pour votre environnement):

monitorRole   readonly
controlRole   readwrite \
              create javax.management.monitor.*,javax.management.timer.* \
              unregister

Créez ensuite un fichier nommé jmxremote.password dans le même répertoire avec le contenu suivant en utilisant vos propres mots de passe sécurisés:

monitorRole   some_password_here
controlRole   some_password_here

Définir des autorisations

Faites en sorte que Java (et donc Looker) ne démarre pas si les autorisations de fichier permettent à n'importe qui à l'exception de l'utilisateur Looker de lire le fichier de mot de passe.

chmod 400 jmxremote.*

Redémarrer Looker

Redémarrez Looker pour activer JMX. Assurez-vous d'exécuter cette commande en tant qu'utilisateur Looker et non en mode root*:

cd ~/looker
./looker restart

Votre instance Looker est maintenant configurée pour la surveillance JMX à distance sur le port 9910 à l'aide du mot de passe que vous avez fourni. Vous devrez peut-être modifier les paramètres de votre pare-feu ou de vos LCA réseau pour permettre à votre serveur de surveillance d'accéder au réseau sur ce port.

Surveillance de l'hôte

Pour chaque hôte qui exécute l'application Looker, nous vous recommandons de collecter, de représenter et de créer des alertes sur au moins les métriques de performances suivantes:

  • Utilisation du processeur:charge et pourcentage de processeur utilisés
  • Utilisation de la mémoire:utilisation totale et utilisation totale
  • Utilisation du disque

Seuils d'alerte

Pour établir des seuils d'alerte appropriés, établissez d'abord une référence. Collectez des données sur les performances avec une instance Looker exécutée sous une charge normale. Examinez les graphiques de performances et observez les pics. La durée nécessaire pour établir les références dépend de votre entreprise et de vos habitudes d'utilisation de Looker. Certaines entreprises peuvent utiliser Looker de manière stable et reproductible toutes les semaines pendant les heures de bureau. D'autres utilisent Looker plus fréquemment à des heures spécifiques (comme la fin de chaque mois).

En général, les alertes ne doivent être envoyées que pour des événements exploitables. L'envoi d'alertes lorsqu'il n'y a rien à faire masque l'importance des alertes critiques.

Les seuils suivants peuvent servir de point de départ pour définir des alertes. Lorsque les valeurs suivantes sont dépassées pendant 15 minutes ou plus, une intervention manuelle peut être nécessaire.

Métrique Avertissement Critique Commentaires
Charge du processeur 2 4 Pour un système à cœur unique, la charge doit généralement être inférieure ou égale à 1. Une charge élevée et durable entraîne des performances médiocres.
Pourcentage d'utilisation du processeur 80 90 Une utilisation intensive du processeur entraîne de mauvaises performances.
Pourcentage d'utilisation de la mémoire 60 70 Une utilisation élevée de la mémoire peut indiquer qu'une quantité trop importante de mémoire est allouée à Java.
Pourcentage d'utilisation du disque 80 90 Vérifiez que le disque n'est pas saturé.

Remarques supplémentaires :

  • Les systèmes comportant plusieurs cœurs peuvent gérer des charges de processeur élevées sans baisse de performances. En règle générale, une charge soutenue ne doit pas être supérieure au nombre de cœurs de processeur.
  • Pourcentage de temps CPU total utilisé avant qu'un système ne dégrade la dégradation des performances en fonction du nombre de cœurs de processeur dans le système. En d'autres termes, un système à cœur unique peut avoir de mauvaises performances lorsque le processeur est utilisé à 80 %, tandis qu'un hôte à 16 cœurs peut être utilisable à 95% d'utilisation.
  • Pour rectifier une utilisation soutenue du processeur, vous pouvez mettre à jour le matériel hôte ou passer à une instance plus grande. Parfois, un grand nombre de styles programmés ou de tables dérivées de requêtes longues peuvent être réduits ou améliorés pour améliorer les performances.

Étapes suivantes

Après avoir configuré la surveillance, vous êtes prêt à configurer les sauvegardes Looker.