Zabbix监控websphere和weblogic

时间:2021-01-21 09:17:43

本节内容

  • 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的文件。

Zabbix监控websphere和weblogic

二、配置和运行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=
StartJavaPollers=

zabbix_server.conf添加配置

在完成配置后,要重启server(或代理):

# killall - 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

Zabbix监控websphere和weblogic

最后,进入weblogic控制台->域——>配置->一般信息->高级,启用 “启用平台 MBean 服务器” 和 “已使用平台 MBean 服务器”。(最后这步非常重要,很多人发现JMX端口配置了不生效就是没有做这一步)

Zabbix监控websphere和weblogic

Zabbix监控websphere和weblogic

然后重启AdminServer和受管服务器。

2.zabbix server添加监控weblogic主机

点击配置—>主机—>创建主机。

Zabbix监控websphere和weblogic

输入主机信息,主要注意JMX的端口,点击添加。

Zabbix监控websphere和weblogic

选择JMX模板。

Zabbix监控websphere和weblogic

六、监控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=

Zabbix监控websphere和weblogic

点击 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

Zabbix监控websphere和weblogic

重启server。

2.zabbix server添加监控websphere主机

点击配置—>主机—>创建主机。

Zabbix监控websphere和weblogic

输入主机信息,主要注意JMX的端口,点击添加。

Zabbix监控websphere和weblogic