Looker überwachen

Auch wenn das Anwendungsmonitoring von Looker nicht zwingend erforderlich erscheint, ist es sehr wichtig, es auf von Kunden gehosteten Instanzen einzurichten. In dem seltenen Fall, dass bei Ihrem Server etwas schiefgeht, ist es oft viel schwieriger oder unmöglich für Looker, Ihnen bei der Behebung des Problems zu helfen, es sei denn, Sie können geeignete Überwachungsinformationen zum Zeitpunkt des Vorfalls zur Verfügung stellen.

Anwendungsmonitoring

URL

Es gibt zwei einfache Möglichkeiten, um zu prüfen, ob Ihre Looker-Instanz ausgeführt wird.

  1. Fügen Sie /alive so an die URL Ihrer Looker-Instanz an:

    https://instance_name.looker.com/alive

    Wenn Ihre Instanz auf eine Webanfrage reagieren kann, erhalten Sie den HTTP-Statuscode „200 OK“.

  2. Fügen Sie /availability so an die URL Ihrer Looker-Instanz an:

    https://instance_name.looker.com/availability

    Diese URL führt eine umfassendere Prüfung mehrerer zugrunde liegender Subsysteme durch und antwortet mit dem HTTP-Statuscode „200 OK“, wenn alles in Ordnung ist.

JMX

Die Java-VM, auf der Looker ausgeführt wird, kann über JMX überwacht werden.

Viele Überwachungsanwendungen wie Zabbix und Nagios unterstützen JMX. Weitere Informationen finden Sie in der Dokumentation zu Ihrer Monitoring-Anwendung.

Looker-Startup-Skript bearbeiten

Zum Aktivieren des JMX-Monitoring müssen Sie Ihr Looker-Startup-Skript bearbeiten. Standardmäßig heißt er:

/home/looker/looker/looker

Suchen Sie nach den Java-Startparametern:

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}

Ab Looker 6.18 wurde die Looker-JAR-Datei in zwei separate JAR-Dateien aufgeteilt: die Looker-Kern-JAR-Datei und eine JAR-Datei für Looker-Abhängigkeiten. Beim Start startet die JAR-Kerndatei automatisch die Abhängigkeiten-JAR-Datei. Beide JAR-Dateien müssen sich im selben Verzeichnis befinden, damit die JAR-Kerndatei die Abhängigkeiten-JAR-Datei finden und starten kann.

Standardmäßig ist die Startoption --no-daemonise nicht festgelegt. Wenn Sie die Option --no-daemonise nicht festgelegt haben, fügen Sie einen Abschnitt nach der Zeile hinzu, die mit -Xms$JAVAMEM beginnt:

  -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 \

Wenn Sie die Startoption --no-daemonise festgelegt haben, fügen Sie einen Abschnitt nach der Zeile hinzu, die mit -Xms$JAVAMEM beginnt:

  -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 \

Verzeichnis .lookerjmx erstellen

Erstellen Sie als Nächstes das Verzeichnis .lookerjmx im Basisverzeichnis Ihres Looker-Nutzers und legen Sie die Berechtigungen fest:

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

JMX-Dateien erstellen

Erstellen Sie im neuen Verzeichnis jmxremote.access mit Ihrem bevorzugten Texteditor eine Datei mit folgendem Inhalt, den Sie an Ihre Umgebung anpassen können:

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

Erstellen Sie als Nächstes im selben Verzeichnis eine Datei mit dem Namen jmxremote.password und dem folgenden Inhalt. Verwenden Sie dazu Ihre eigenen sicheren Passwörter:

monitorRole   some_password_here
controlRole   some_password_here

Berechtigungen festlegen

Legen Sie fest, dass Java (und damit Looker) nicht gestartet werden, wenn die Dateiberechtigungen jedem außer dem Looker-Nutzer erlauben, die Passwortdatei zu lesen.

chmod 400 jmxremote.*

Looker neu starten

Looker muss neu gestartet werden, um JMX zu aktivieren. Achten Sie darauf, dass Sie dies *als Looker-Nutzer und nicht als Root* ausführen:

cd ~/looker
./looker restart

Ihre Looker-Instanz ist jetzt für die JMX-Remote-Überwachung auf Port 9910 konfiguriert, und zwar mit dem von Ihnen angegebenen Passwort. Möglicherweise müssen Sie Ihre Firewalleinstellungen oder Netzwerk-ACLs ändern, damit Ihr Monitoring-Server über diesen Port Netzwerkzugriff erhalten kann.

Host monitoring

Für jeden Host, auf dem die Looker-Anwendung ausgeführt wird, sollten Sie mindestens die folgenden Leistungsmesswerte erfassen, grafisch darstellen und melden:

  • CPU Utilization (CPU-Auslastung): Auslastung und CPU-Auslastung in Prozent
  • Arbeitsspeicherauslastung: Insgesamt verwendet und durch Auslagerung verwendet
  • Laufwerksnutzung

Benachrichtigungsgrenzwerte

Um gute Grenzwerte für Benachrichtigungen festzulegen, legen Sie zuerst eine Basislinie fest. Sammeln Sie Leistungsdaten mit Ihrer Looker-Instanz, die unter normaler Last ausgeführt wird. Werfen Sie einen Blick auf die Leistungsgrafiken und beobachten Sie die Spitzen. Wie lange Sie benötigen, um die Grundzüge festzulegen, hängt von Ihrem Unternehmen und Ihren Looker-Nutzungsmustern ab. Einige Unternehmen verwenden Looker jede Woche während der Geschäftszeiten in einem stabilen, wiederholbaren Muster. Andere können Looker zu bestimmten Zeiten (z. B. am Monatsende) stärker nutzen.

Benachrichtigungen sollten im Allgemeinen nur für Ereignisse gesendet werden, bei denen Handlungsbedarf besteht. Das Senden von Benachrichtigungen, wenn nichts zu tun ist, verschleiert die Bedeutung kritischer Benachrichtigungen.

Die folgenden Grenzwerte können als Ausgangspunkt für Benachrichtigungen verwendet werden. Wenn die folgenden Werte 15 Minuten oder länger überschritten werden, ist möglicherweise ein manuelles Eingreifen erforderlich.

Messwert Warnung Kritisch Kommentare
CPU-Auslastung 2 4 Die Last sollte bei einem Einzelkernsystem im Allgemeinen 1 oder weniger betragen. Eine anhaltend hohe Auslastung führt zu einer schlechten Leistung.
Verwendete CPU in % 80 90 Eine hohe CPU-Auslastung führt zu einer schlechten Leistung.
Verwendeter Arbeitsspeicher in % 60 70 Eine hohe Arbeitsspeichernutzung kann ein Hinweis darauf sein, dass Java zu viel Arbeitsspeicher zugewiesen ist.
Speicherplatz in % verwendet 80 90 Vergewissern Sie sich, dass das Laufwerk nicht voll ist.

Zusätzliche Hinweise:

  • Systeme mit mehr als einem Kern können hohe CPU-Lasten ohne Leistungseinbußen bewältigen. Als Faustregel gilt, dass die anhaltende Last nicht größer sein sollte als die Anzahl der Prozessorkerne.
  • Der Prozentsatz der gesamten CPU-Nutzungszeit vor Leistungseinbußen bei einem System wird mit der Anzahl der CPU-Kerne im System skaliert. Mit anderen Worten: Ein Einzelkernsystem kann eine schlechte Leistung aufweisen, wenn die CPU zu 80% ausgelastet ist, während ein Host mit 16 Kernen bei einer Auslastung von 95% immer noch nutzbar ist.
  • Eine hohe anhaltende CPU-Auslastung kann durch ein Update der Hosthardware oder durch ein Upgrade auf eine größere Instanz korrigiert werden. Manchmal kann eine große Anzahl geplanter Looks oder abgeleiteter Tabellen mit langen Abfragen reduziert oder effizienter gestaltet werden, um die Leistung zu verbessern.

Nächste Schritte

Nachdem Sie das Monitoring eingerichtet haben, können Sie Looker-Sicherungen einrichten.