一、监控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
自动启动成功。