zl程序教程

您现在的位置是:首页 >  工具

当前栏目

【 Zabbix 】— Tomcat监控及故障重启服务

Tomcat监控服务 重启 Zabbix 故障
2023-09-27 14:20:24 时间

一、监控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

自动启动成功。