Zabbix监控websphere和weblogic
本节内容
- zabbix java gateway
- 配置和运行java gateway
- 配置zabbix server使用java gateway
- 调整java gateway的日志级别
- 监控weblogic
- 监控websphere
一、zabbix java gateway
zabbix通过JMX监控应用服务器。注意如果zabbix需要监控JMX应用的程序,在编译zabbix的时候就需要--enable-java,同时也需要安装配置好JDK。详见我之前的博客《zabbix安装配置》。
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>标签更改为”debug”以获取日志级别的增加。
<root level="debug"> <appender-ref ref="FILE" /> </root>
需要注意的是,并不像Zabbix server或proxy那样,修改完logback.xml并不需要重启Zabbix Java gateway. 修改后的配置将会自动被加载。当你完成了debugging,你可以将log级别替换为”info”。
五、监控weblogic
1.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和受管服务器。
2.zabbix server添加监控weblogic主机
点击配置—>主机—>创建主机。
输入主机信息,主要注意JMX的端口,点击添加。
选择JMX模板。
六、监控websphere
1.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。
2.zabbix server添加监控websphere主机
点击配置—>主机—>创建主机。
输入主机信息,主要注意JMX的端口,点击添加。