Zabbix 監控 Weblogic
JMX(Java Management Extensions,即Java管理擴展)是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平臺、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用。
使用zabbix監控weblogic是通過JMX agent(zabbix-java-gateway) 獲取JVM MBean 信息。
環境:
Centos7 + Zabbix 3.4 + Weblogic 10.3.6
一、部署zabbix-server ,zabbix-agent, zabbix-java-gateway
1. 部署LAMP或LNMP 環境 此處略去,網上部署教程很多 2. 安裝zabbix server , zabbix agent , zabbix-java-gateway yum install epel-release rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX rpm -Uv http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm yum install zabbix-server zabbix-agent zabbix-java-gateway zabbix-web-mysql 也可以通過源碼方式安裝參考官方文檔 3. 配置zabbix-server 支持JMX # grep ‘^[^#]‘ /etc/zabbix/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBName=zabbix DBUser=zabbix DBPassword=zabbix DBPort=3306 JavaGateway=192.168.154.130 JavaGatewayPort=10052 StartJavaPollers=5 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000 4. 配置zabbix_java_gateway.conf # grep ‘^[^#]‘ /etc/zabbix/zabbix_java_gateway.conf LISTEN_IP="0.0.0.0" LISTEN_PORT=10052 PID_FILE="/var/run/zabbix/zabbix_java.pid" START_POLLERS=5 TIMEOUT=3 配置完成後就啟動zabbix-server 和 zabbix-java-gateway了 # systemctl start zabbix-server.service # systemctl start zabbix-java-gateway.service
二、開始JMX
使用JMX前需要先開啟JMX,默認是關閉的,在啟動JAVA程序時,如何開始請參考官方文檔
https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html
下面介紹幾種常用的JAVA容器的JMX開啟方式:
- Tomcat 編輯TOMCAT_HOME/bin/catalina.sh 在開頭加入如下幾行
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=JMX_HOST" # 修改 JMX_HOST
CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial="
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=JMX_PORT" # 修改JMS PORT
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"
重啟tomcat 服務就可以了
- Weblogic 編輯WL_DOMAIN_HOME/bin/setDomainEnv.cmd,在文件結尾加入下面幾行
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.rmi.server.hostname=JMX_HOST"
JAVA_OPTIONS="${JAVA_OPTIONS} -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote=true"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.port=JMX_PORT"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.authenticate=false"
重啟weblogic 服務就可以了
三、測試和查看JMX的配置和狀態信息
JMX開啟後,我們就可以通過相關的工具去查看JMX內的狀態信息了,通常可以使用JDK的jconsole程序查看,對於weblogic它自帶了一些工具也可以查看,可以參考官方文檔。
http://docs.huihoo.com/oracle/middleware/fusion/11g/apirefs.1111/e13951/core/index.html
另外還有一個叫cmdline-jmxclient-0.10.3.jar的工具也可以非常方便的查看這些信息
本文使用cmdline-jmxclient-0.10.3.jar工具查看
java -jar jmxcmd.jar - JMX_HOST:JMX_PORT | grep JDBC 查看JDBC 有哪些MBean,下面簡單列出一些MBean
com.bea:Name=library,ServerRuntime=paic_App01,Type=JDBCConnectionPoolRuntime
com.bea:Name=paic_App01,ServerRuntime=paic_App01,Type=JDBCServiceRuntime
java -jar jmxcmd.jar - JMX_HOST:JMX_PORT com.bea:Name=library,ServerRuntime=paic_App01,Type=JDBCConnectionPoolRuntime
查看JDBCConnectionPoolRuntime 下有哪些 Attributes
四、配置zabbix Item
-
配置一個 jmx interface
- 配置一個weblogic iteam
JMX Iteam 配置格式:jmx[object_name,attribute_name]
這裏的object_name 就是java -jar jmxcmd.jar - JMX_HOST:JMX_PORT 查詢出來的MBean 如com.bea:Name=library,ServerRuntime=paic_App01,Type=JDBCConnectionPoolRuntime
attribute_name 就是 java -jar jmxcmd.jar - JMX_HOST:JMX_PORT com.bea:Name=library,ServerRuntime=paic_App01,Type=JDBCConnectionPoolRuntime 查詢出來的屬性
完整的例子:jmx["com.bea:Name=ThreadPoolRuntime,ServerRuntime=App01,Type=ThreadPoolRuntime","QueueLength"]
至此 zabbix 監控 weblogic 配置完成, 此次配置也是參考了很多文檔,折騰了一個中午,所以寫個博客記錄一下配置過程。
Zabbix 監控 Weblogic