Zabbix监控tomcat

​ zabbix 监控 java 类服务不是直接监控的,因为 zabbix 是基于 c 语言开发的,因此 zabbix 和 java 是不能直接通信的,开发者在二者中间添加一个中间层代理,即 java gateway。当 zabbix server 想要获取 java 数据时,并不直连 tomcat ,而是把请求转发给 java gateway,由于 java gateway 是由 java 语言开发的程序,能够兼容 zabbix server 发送的请求,把请求转换为 java 命令后,再到 tomcat上获取数据。而 tomcat 把本地数据采集后发送给 java gateway,由java gateway转发给zabbix server。

​ zabbix 监控 tomcat,首先安装 tomcat,然后配置 java gateway,最后再添加监控项

部署 tomcat

安装 JDK

(1)下载 JDK

前往 oracle 官网 https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载 JDK ,这里下载的版本是 jdk-8u201-linux-x64.tar.gz

[root@app-tomcat ~]# tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/
[root@app-tomcat ~]# ln -sv /usr/local/jdk1.8.0_201 /usr/local/jdk 
[root@app-tomcat ~]# chown -R root.root /usr/local/jdk 

(2)设置 java 环境变量

[root@app-tomcat ~]# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$PATH
[root@app-tomcat ~]# source /etc/profile.d/java.sh

(3)查看 JDK 是否安装成功

[root@app-tomcat ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

安装 tomcat

(1)下载 tomcat

前往 tomcat 官网 https://tomcat.apache.org/ 下载二进制安装包,这里下载的是 apache-tomcat-9.0.14.tar.gz

[root@app-tomcat ~]# tar xf apache-tomcat-9.0.14.tar.gz -C /usr/local/
[root@app-tomcat ~]# ln -sv /usr/local/apache-tomcat-9.0.14 /usr/local/tomcat 

(2)创建 tomcat 环境变量文件 setenv.sh(catalina.sh 启动文件会调用 setenv.sh),并在 CATALINA_OPTS 添加监控参数 (本机 ip 为 192.168.10.103)

[root@app-tomcat ~]# vim /usr/local/tomcat/bin/setenv.sh
JAVA_HOME=/usr/local/jdk
JRE_HOME=$JAVA_HOME/jre
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=$CATALINA_HOME
CATALINA_PID="$CATALINA_BASE/run/tomcat.pid"
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Djava.rmi.server.hostname=192.168.10.103"
[root@app-tomcat ~]# chmod +x /usr/local/tomcat/bin/setenv.sh

(3)添加 tomcat 用户并创建 PID 存放目录

[root@app-tomcat ~]# groupadd -r -g 808 tomcat 
[root@app-tomcat ~]# useradd -r -u 808 -g 808 -s /sbin/nologin -c "Tomcat Server" tomcat
[root@app-tomcat ~]# mkdir /usr/local/tomcat/run
[root@app-tomcat ~]# chown -R tomcat.tomcat /usr/local/tomcat/ 

(4)创建 tomcat 启动文件

[root@app-tomcat ~]# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=syslog.target network.target 

[Service]
Type=forking
PIDFile=/usr/local/tomcat/run/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

(5)启动 tomcat

[root@app-tomcat ~]# systemctl daemon-reload 
[root@app-tomcat ~]# systemctl enable tomcat.service 
[root@app-tomcat ~]# systemctl start tomcat.service

查看 8080,8005,8009 以及 12345 端口是否在监听状态,在的话则 tomcat 启动成功

(6)使用 JDK 自带的 jconsole 工具来查看 监控状态,在宿主机 Windows 上安装 jdk-8u201-windows-x64.exe,安装好后 jconsole 的路径为

C:\Program Files\Java\jdk1.8.0_201\bin\jconsole.exe,打开连接上即可查看状态

1566207-20190222163914415-347743651.png

1566207-20190222163921286-205316292.png

安装 zabbix agent

(1)创建 zabbix 用户

[root@app-tomcat ~]# groupadd -r -g 151 zabbix
[root@app-tomcat ~]# useradd -r -u 151 -g 151 -s /sbin/nologin  -c "Zabbix Monitoring" zabbix

(2)编译安装 zabbix agent

去 zabbix 官网 https://www.zabbix.com/download_sources 下载 zabbix 源码包 ,这里下载的是 zabbix-4.0.3.tar.gz ,编译选项只需要启用 --enable-agent 选项即可

[root@app-tomcat ~]# tar xf zabbix-4.0.3.tar.gz -C /usr/local/src/ 
[root@app-tomcat ~]# cd /usr/local/src/zabbix-4.0.3/
[root@app-tomcat zabbix-4.0.3]# ./configure --prefix=/usr/local/zabbix --enable-agent
[root@app-tomcat zabbix-4.0.3]# make && make install

(3)修改 zabbix agent 的配置文件,zabbix server 地址为 192.168.10.101,Hostname 设置为 192.168.10.103(本机 ip)

[root@app-tomcat ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/run/zabbix_agentd.pid
LogType=file
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=100
DebugLevel=3
EnableRemoteCommands=0
Server=192.168.10.101
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=192.168.10.101
Hostname=192.168.10.103
Timeout=15
AllowRoot=0
User=zabbix
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1

(4)创建日志文件和 pid 文件存放目录

[root@app-tomcat ~]# mkdir -pv /var/log/zabbix /usr/local/zabbix/run
[root@app-tomcat ~]# chown -R zabbix.zabbix /var/log/zabbix /usr/local/zabbix

(5)准备启动文件

[root@app-tomcat ~]# cp /usr/local/src/zabbix-4.0.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@app-tomcat ~]# sed -i 's@BASEDIR=.*@BASEDIR=/usr/local/zabbix@' /etc/init.d/zabbix_agentd
[root@app-tomcat ~]# sed -i 's@PIDFILE=.*@PIDFILE=/usr/local/zabbix/run/zabbix_agentd.pid@' /etc/init.d/zabbix_agentd

(6)启动 zabbix agent

[root@app-tomcat ~]# ln -sv /usr/local/zabbix/bin/* /usr/bin/
[root@app-tomcat ~]# chkconfig --add zabbix_agentd
[root@app-tomcat ~]# chkconfig zabbix_agentd on
[root@app-tomcat ~]# /etc/init.d/zabbix_agentd start

查看 10050 端口是否处于监听状态,如在则表示 zabbix agent 已然启动

zabbix server 配置 java gateway

监控 java 类服务,编译安装 zabbix server 时需要启动 --enable java 选项,如果是 rpm 包安装,则需要额外安装 zabbix-java-gateway 程序包,这里是编译安装的 zabbix server,编译时已经启用了该选项

(1)修改 java gateway 配置文件

[root@zabbix-server ~]# vim /usr/local/zabbix/sbin/zabbix_java/settings.sh 
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/usr/local/zabbix/run/zabbix_java.pid"
START_POLLERS=20
TIMEOUT=15

(2)配置 zabbix server 调用 java gateway ,然后重启 zabbix server

[root@zabbix-server ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
JavaGateway=192.168.10.101
JavaGatewayPort=10052
StartJavaPollers=20

(3)创建 java gateway 启动文件

[root@zabbix-server ~]# vim /usr/lib/systemd/system/zabbix_java_gateway.service
[Unit]
Description=Zabbix Java Gateway
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/usr/local/zabbix/run/zabbix_java.pid
ExecStart=/usr/local/zabbix/sbin/zabbix_java/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/zabbix/sbin/zabbix_java/shutdown.sh
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

(4)启动 java gateway

[root@zabbix-server ~]# systemctl daemon-reload 
[root@zabbix-server ~]# systemctl enable zabbix_java_gateway.service 
[root@zabbix-server ~]# systemctl start zabbix_java_gateway.service 

查看 10052 端口是否处于监听状态,如在则表示 java gateway已然启动

在 zabbix 上添加主机

打开 zabbix web 控制台,配置→主机→添加主机,如下操作

1566207-20190222165908198-1774920976.png

主机创建好后,由于没有监控选项,因此 ZBX 和 JXM 图标还是显示灰色

1566207-20190222165920290-772261695.png

可以通过添加模板来添加监控选项

1566207-20190222165928775-298521539.png

更新完后,过一会儿刷新页面, app-tomcat 主机 ZBX 和 JMX 便会变绿

1566207-20190222165935422-1088994781.png

下面是采集到 app-tomcat 主机的数据绘成的图形

1566207-20190222165944901-1438619937.png

1566207-20190222165952600-1760257713.png

如果没有图形,可以用如下命令来测试是否能获取数据

获取 zabbix agent 的数据

[root@zabbix-server ~]# zabbix_get -s 192.168.10.103 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

获取 JMX 的数据,需要下载 cmdline-jmxclient-0.10.3.jar,下载地址 http://crawler.archive.org/cmdline-jmxclient/downloads.html

[root@zabbix-server ~]# java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.103:12345 java.lang:type=Memory NonHeapMemoryUsage
02/22/2019 16:30:40 +0800 org.archive.jmx.Client NonHeapMemoryUsage: 
committed: 34865152
init: 2555904
max: -1
used: 33140504

测试有数据则表示成功

转载于:https://www.cnblogs.com/akalin/p/10419415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值