返回介绍

监控方案 - jmx启动参数方式

发布于 2020-06-28 10:03:43 字数 2846 浏览 1341 评论 0 收藏 0

Logstash 是一个运行在 JVM 上的软件,也就意味着 JMX 这种对 JVM 的通用监控方式对 Logstash 也是一样有效果的。要给 Logstash 启用 JMX,需要修改 ./bin/logstash.lib.sh$JAVA_OPTS 变量的定义,或者在运行时设置 LS_JAVA_OPTS 环境变量。

./bin/logstash.lib.sh 第 34 行 JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true" 下,添加如下几行:

  1. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
  2. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9010"
  3. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.local.only=false"
  4. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
  5. JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"

重启 logstash 服务,JMX 配置即可生效。

有 JMX 以后,我们可以通过 jconsole 界面查看,也可以通过 zabbix 等监控系统做长期监控。甚至 logstash 自己也有插件 logstash-input-jmx 来读取远程 JMX 数据。

zabbix 监控

zabbix 里提供了专门针对 JMX 的监控项。详见:https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/jmx_monitoring

注意,zabbix-server 本身并不直接对 JMX 发起请求,而是单独有一个 Java Gateway 作为中间代理层角色。zabbix-server 的 java poller 连接 zabbix-java-gateway,由 zabbix-java-gateway 去获取远程 JMX 信息。所以,在 zabbix-web 配置之前,需要先配置 zabbix server 相关进程和设置:

  1. # yum install zabbix-java-gateway
  2. # cat >> /etc/zabbix/zabbix-server.conf <<EOF
  3. JavaGateway=127.0.0.1
  4. JavaGatewayPort=10052
  5. StartJavaPollers=5
  6. EOF
  7. # /etc/init.d/zabbix-java-gateway restart
  8. # /etc/init.d/zabbix-server restart

然后在 zabbix-web 上 Configuration 页,给运行 logstash 的主机的 Host 配置添加 JMX interfacesPort 即为上面定义的 9010 端口。

最后添加 Item,Type 下拉框选择 JMX agentKey 文本框输入 jmx["java.lang:type=Memory", "HeapMemoryUsage.used"],保存即可。

JMX 有很多 Key 可以监控,具体的值,可以通过 jconsole 参看。如下图所示,如果要监控线程数,就可以写成 jmx["java.lang:type=Threading", "ThreadCount"]

jmx启动参数方式 - 图1

有了监控项和数据,后续的 Graph, Screen, Trigger 定义,这里就不再讲述了,有需要的读者可以自行查找 Zabbix 相关资料。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文