本節內容
- 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的端口,點擊添加。