一、監控tomcat原理
zabbix_server開啟java poller,zabbix_java開啟JavaGateway, 端口為:10052,tomcat JMX開啟12345提供性能數據。
數據獲取:java poller --> JavaGateway:10052 --> Tomcat:12345
二、安裝tomcat
tomcat的安裝,網上很多教程。
三、配置Tomcat JMX
需要編輯tomcat下/bin/catalina.sh,加入配置:
[root@server bin]# cd /usr/local/tomcat-8.0.33/bin [root@server bin]# vim catalina.sh # LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" # ----------------------------------------------------------------------------- # 插入如下代碼 JAVA_HOME=/usr/local/jdk1.8.0_77 JAVA_BIN=$JAVA_HOME/bin PATH=$PATH:$JAVA_BIN CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH CATALINA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=12345"
啟動tomcat
[root@server bin]# sh startup.sh Using CATALINA_BASE: /usr/local/tomcat-8.0.33 Using CATALINA_HOME: /usr/local/tomcat-8.0.33 Using CATALINA_TMPDIR: /usr/local/tomcat-8.0.33/temp Using JRE_HOME: /usr/local/jdk1.8.0_77 Using CLASSPATH: /usr/local/tomcat-8.0.33/bin/bootstrap.jar:/usr/local/tomcat-8.0.33/bin/tomcat-juli.jar Tomcat started. [root@server bin]# netstat -ntplu | grep 12345 tcp 0 0 :::12345 :::* LISTEN 52472/java # 啟動成功
zabbix_server 配置
Java 支持
編譯安裝zabbix server需要加上--enable-java以支持jmx監控
zabbix基本安裝:http://www.cnblogs.com/hukey/p/5458622.html
啟動zabbix_java
[root@server zabbix_java]# cd /usr/local/zabbix-2.4.8/sbin/zabbix_java [root@server zabbix_java]# sh startup.sh [root@server zabbix_java]# netstat -ntplu | grep 10052 tcp 0 0 :::10052 :::* LISTEN 52733/java # 啟動成功
zabbix_server.conf配置
[root@server ~]# grep Java /usr/local/zabbix-2.4.8/etc/zabbix_server.conf | grep = JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5
[root@server ~]# service zabbix_server restart # 重啟zabbix_server
Shutting down zabbix_server: [ OK ]
Starting zabbix_server: [ OK ]
四、導入模板
由於zabbix原模板對tomcat不兼容等問題。需要重新導入模板。
configuration --> Hosts
點擊 Update提交
configuration --> Templates --> Import
模板下載地址:鏈接:http://pan.baidu.com/s/1b0Hm02 密碼:631h
打開 --> Import 模板導入完成。
configuration --> Hosts --> Templates
CustomTomcat 就是導入的模板,在這里使用。
這里可以發現JMX也變成綠色,表示連接成功。
已經產生數據,tomcat監控完成。
五、tomcat故障自動重啟
修改agentd.conf配置文件,修改后重啟生效
[root@server bin]# grep EnableRemoteCommands /usr/local/zabbix-2.4.8/etc/zabbix_agentd.conf ### Option: EnableRemoteCommands EnableRemoteCommands=1 # 修改為1
[root@server bin]# service zabbix_agentd restart
Shutting down zabbix_agentd: [ OK ]
Starting zabbix_agentd: [ OK ]
配置sudo,給zabbix用戶賦予權限,不然zabbix_agent無法執行命令。
[root@server bin]# visudo root ALL=(ALL) ALL zabbix ALL=NOPASSWD: ALL zabbix ALL=NOPASSWD: /usr/local/tomcat-8.0.33/bin/catalina.sh start :wq [root@server bin]# su - zabbix # 切換測試 su: warning: cannot change directory to /home/zabbix: No such file or directory -bash-4.1$
server端配置:
Create item
Add
Create trigger
Add
用紅色框起來的地方都是需要調整的地方。
Update提交。
到此為止,zabbix_server 配置完畢。
關閉tomcat進行測試重啟功能。
[root@server bin]# pwd /usr/local/tomcat-8.0.33/bin [root@server bin]# sh shutdown.sh Using CATALINA_BASE: /usr/local/tomcat-8.0.33 Using CATALINA_HOME: /usr/local/tomcat-8.0.33 Using CATALINA_TMPDIR: /usr/local/tomcat-8.0.33/temp Using JRE_HOME: /usr/local/jdk1.8.0_77 Using CLASSPATH: /usr/local/tomcat-8.0.33/bin/bootstrap.jar:/usr/local/tomcat-8.0.33/bin/tomcat-juli.jar
[root@server bin]# visudo
#Defaults requiretty
在visudo里注釋掉這個是重中之重,切記。否則,在web里查看zabbix的狀態是發送的。但是agent並沒有真正的執行命令。
[root@server bin]# netstat -ntplu | grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4179/java
自動啟動成功。