zabbix java gateway
zabbix通过JMX监控应用服务器。JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。
Zabbix已经集成JMX,可以用Zabbix通过JMX监控JVM,TOMCAT,Weblogic,Jboss等。要使用Zabbix监控Weblogic,我们先要了解Zabbix的JMX监控架构,Weblogic的JMX信息,最后才能去实现怎么去配置监控和报警。
Zabbix是使用了一个叫做Java Gateway的应用去监控JMX的。Java Gateway集成在zabbix官方开发发布的。所以需要在编译安装zabbix server时,需要添加一个选项–enable-java。这样安装zabbix后在/usr/local/zabbix-3.0.1/sbin目录下会有个zabbix_java目录,这个目录里面就是zabbix Java gateway的文件。
配置和运行java gateway
默认情况下,Java gateway监听10052端口. 如果你计划使用不同的端口来运行Java gateway,你需要通过setting.sh脚本指定下需要的端口。
启动:
./startup.sh
关闭:
./shutdown.sh
配置zabbix server使用java gateway
当前Java gateway已经运行,接下来你需要告诉Zabbix server如何找到Zabbix Java gateway. 因此你需要在 server配置文件 中指定JavaGateway及JavaGateway端口. 如果JMX应用采用Zabbix代理进行监控的话,你需要在 代理配置文件 中指定对应的连接参数。
默认情况下,server并不会派生出任何进程去进行JMX监控。如果你想使用完成JMX监控,你需要指定预派生出来的Java pollers进程数,你也可过同类的方式指定常见的pollers和trappers。
# vim zabbix_server.conf
JavaGateway=172.16.7.151
JavaGatewayPort=10052
StartJavaPollers=5
在完成配置后,要重启server(或代理):
# killall -9 zabbix_server
# ./zabbix_server
调整java gateway的日志级别
万一Java gateway出现了若干问题,在前段可以看到的监控项报错信息并不充分,你也可以通过查看Java gateway日志文件获得更多信息。
默认情况下,Java gateway将记录日志到/tmp/zabbix_java.log文件中,log级别为”info”。有时你觉得”info”级别得到的信息并不够,你需要修改级别为”debug”。你可以通过修改lib/logback.xml将
<root level="debug">
<appender-ref ref="FILE" />
</root>
需要注意的是,并不像Zabbix server或proxy那样,修改完logback.xml并不需要重启Zabbix Java gateway. 修改后的配置将会自动被加载。当你完成了debugging,你可以将log级别替换为”info”。
监控weblogic
weblogic配置
1.如果是监控weblogic 的admin server:
编辑WL_DOMAIN_HOME/bin/setDomainEnv.sh,在文件结尾加入下面几行:
$ cd /opt/Oracle/Middleware/user_projects/domains/ids_domain/bin
$ vim setDomainEnv.sh
添加一句:
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9997 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
然后在去启动weblogic。
2.如果是监控受管服务器:
进入weblogic控制台->环境->服务器->”你新增的服务器”->配置->服务器启动。在“参数”的输入框内输入:
-Dcom.sun.management.jmxremote.port=JMX_PORT -Djava.rmi.server.hostname=JMX_HOST -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder
最后,进入weblogic控制台->域——>配置->一般信息->高级,启用 “启用平台 MBean 服务器” 和 “已使用平台 MBean 服务器”。(最后这步非常重要,很多人发现JMX端口配置了不生效就是没有做这一步)
然后重启AdminServer和受管服务器。
zabbix server添加监控weblogic主机
点击配置—>主机—>创建主机。
输入主机信息,主要注意JMX的端口,点击添加。
选择JMX模板。
监控websphere
websphere配置
访问websphere控制台,点击 Server Types → WebSphere application servers → WAS_SERVER_NAME → Java and Process Management → Process definition → Java Virtual Machine.
在“Generic JVM arguments”增加下面环境变量:
-Djavax.management.builder.initial=
点击 Server Types → WebSphere application servers → WAS_SERVER_NAME → Java and Process Management → Process definition → Java Virtual Machine → Custom properties.
增加下面几个环境变量:
Name: java.rmi.server.hostname
Value: JMX_HOST
Name: com.sun.management.jmxremote
Value: true
Name: com.sun.management.jmxremote.port
Value: JMX_PORT
Name: com.sun.management.jmxremote.ssl
Value: false
Name: com.sun.management.jmxremote.authenticate
Value: false
重启server。
zabbix server添加监控websphere主机
点击配置—>主机—>创建主机。
输入主机信息,主要注意JMX的端口,点击添加。