虽然 Looker 应用监控可能并不严格要求,但设置非常重要。在极少数情况下,如果您的服务器出现问题,通常很难或无法帮助 Looker 解决问题,除非您能在事件发生时提供适当的监控信息。
应用监控
网址
您可以通过两种简单的方法来验证 Looker 实例是否正在运行。
将
/alive
附加到您的 Looker 实例的网址,如下所示:https://instance_name.looker.com/alive
如果您的实例能够响应网络请求,您会收到 200 OK HTTP 状态代码。
将
/availability
附加到您的 Looker 实例的网址,如下所示:https://instance_name.looker.com/availability
此网址会对几个底层子系统执行更全面的检查,如果一切正常,它还会返回 200 OK HTTP 状态代码。
墨西哥比索
可以通过 JMX 监控运行 Looker 的 Java 虚拟机。
很多监控应用(例如 Zabbix 和 Nagios)都支持 JMX。如需了解详情,请参阅监控应用的文档。
修改 Looker 启动脚本
如需启用 JMX 监控功能,您需要修改 Looker 启动脚本。默认情况下,其名称为:
/home/looker/looker/looker
查找 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}
从 Looker 6.18 开始,Looker JAR 文件已拆分为两个单独的 JAR 文件:Looker 核心 JAR 文件和 Looker 依赖项 JAR 文件。启动后,核心 JAR 文件将自动启动依赖项 JAR 文件。这两个 JAR 文件必须位于同一目录中,以便核心 JAR 文件能够成功查找和启动依赖项 JAR 文件。
默认情况下,未设置 --no-daemonise
启动选项。如果您尚未设置 --no-daemonise
选项,请在代码行后面添加一个部分(以 -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 \
如果您设置了 --no-daemonise
启动选项,请在这行代码后添加以 -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 \
创建 .lookerjmx
目录
接下来,在 Looker 用户的主目录下创建 .lookerjmx
目录,并设置权限:
sudo su - looker
mkdir ~/.lookerjmx
chmod 700 ~/.lookerjmx
cd ~/.lookerjmx
创建 JMX 文件
使用您惯用的文本编辑器在名为 jmxremote.access
的新目录中创建一个包含以下内容的文件(您可以针对自己的环境进行自定义):
monitorRole readonly
controlRole readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
接下来,使用您自己的安全密码在同一目录中创建一个名为 jmxremote.password
且包含以下内容的文件:
monitorRole some_password_here
controlRole some_password_here
设置权限
这样一来,如果文件权限允许 Looker 用户以外的任何人读取密码文件,Java(以及 Looker)就不会启动。
chmod 400 jmxremote.*
重启 Looker
Looker 需要重启以启用 JMX。确保您*以 Looker 用户身份(而不是根用户身份)运行:
cd ~/looker
./looker restart
您的 Looker 实例现已配置为使用您提供的密码在端口 9910 上进行远程 JMX 监控。您可能需要修改防火墙设置或网络 ACL,以允许监控服务器通过此端口访问网络。
主机监控
对于运行 Looker 应用的每台主机,我们建议您至少收集以下性能指标、为其绘制图表并发出提醒:
- CPU 利用率:负载和使用的 CPU 百分比
- 内存利用率:已使用的总存储空间和已交换的使用量
- 磁盘使用情况
提醒阈值
如需建立良好的提醒阈值,请先建立一个基准。收集在正常负载下运行的 Looker 实例的性能数据。查看效果图表并观察峰值。建立基准所需的时间长短取决于您的业务和 Looker 使用模式。有些公司可能会在工作时间每周以固定、可重复的模式使用 Looker。还有一些人则可能会在特定时间(例如月底)更频繁地使用 Looker。
一般情况下,应仅针对可操作的事件发送提醒。在不需要执行任何操作时发送提醒会掩盖重要提醒的重要性。
可以将以下阈值用作提醒的起点。如果超过以下值 15 分钟或更长时间,可能需要手动干预。
指标 | 警告 | 严重 | 评论数 |
---|---|---|---|
CPU 负载 | 2 | 4 | 对于单核系统,负载通常应不超过 1。持续高负载会导致性能不佳。 |
CPU 利用率 (%) | 80 | 90 | CPU 使用率过高会导致性能不佳。 |
内存利用率 (%) | 60 | 70 | 高内存用量可能表明分配给 Java 的内存过多。 |
磁盘已用百分比 | 80 | 90 | 确保磁盘未已满。 |
补充说明:
- 具有多个核心的系统可以处理高 CPU 负载,且不会降低性能。经验法则是持续负载不应超过处理器核心数。
- 在系统遇到性能下降之前,占用的总 CPU 时间的百分比会随系统中的 CPU 核心数而增加。换句话说,如果 CPU 的利用率达到 80%,单核系统的性能可能会降低,而十六核的主机在利用率为 95% 时,可能依然可用。
- 可通过更新主机硬件或升级到更大的实例来校正高持续 CPU 利用率。有时,您可以减少或安排大量计划 Looks 或长查询派生表来提升性能。
后续步骤
设置完监控功能后,您就可以设置 Looker 备份了。