Zabbix监控Tomcat

系统运维 创建于:2023-05-28

  zabbix是通过java geteway及JMX对Tomcat来进行监控的,并也可以实现自定义模板的导入及应用,模拟实际生产环境中的Tomcat性能等其他参数的图形监测显示。

1、准备Tomcat服务器

  这里我就直接把之前下载好的包放到服务器上的相关目录下,在使用一键安装的脚步来安装tomcat服务。

root@Tomcat:~# cd /data/
root@Tomcat:/data# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.69/bin/apache-tomcat-9.0.69.tar.gz
root@Tomcat:/data# ll
total 153464
drwxr-xr-x  2 root root      4096 Nov 17 17:19 ./
drwxr-xr-x 20 root root      4096 Nov 17 17:13 ../
-rw-r--r--  1 root root  11607790 Nov 10 02:53 apache-tomcat-9.0.69.tar.gz
-rw-r--r--  1 root root      2759 Nov 17 17:14 install_tomcat.sh
-rw-r--r--  1 root root 145520298 Nov 17 17:14 jdk-8u301-linux-x64.tar.gz
root@Tomcat:/data# cat install_tomcat.sh 
#!/bin/bash

DIR=`pwd`
JDK_FILE="jdk-8u301-linux-x64.tar.gz"
TOMCAT_FILE="apache-tomcat-9.0.69.tar.gz"
JDK_DIR="/usr/local"	#这里的路径可以自己定义好
TOMCAT_DIR="/usr/local"

color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$2" && $MOVE_TO_COL
    echo -n "["
    if [ $1 = "success" -o $1 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $1 = "failure" -o $1 = "1"  ] ;then
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo                                                                                                                              
}

install_jdk () {
if !  [  -f "$DIR/$JDK_FILE" ];then
    color 1 "$JDK_FILE 文件不存在" 
    exit; 
elif [ -d $JDK_DIR/jdk ];then
    color 1  "JDK 已经安装" 
    exit
else 
    [ -d "$JDK_DIR" ] || mkdir -pv $JDK_DIR
fi
tar xvf $DIR/$JDK_FILE  -C $JDK_DIR
cd  $JDK_DIR && ln -s jdk1.8.* jdk 

cat >  /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JDK_DIR/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=\$JAVA_HOME/lib/:\$JRE_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
.  /etc/profile.d/jdk.sh
java -version && color 0 "JDK 安装完成" || { color 1  "JDK 安装失败" ; exit; }

}

install_tomcat () {
if ! [ -f "$DIR/$TOMCAT_FILE" ];then
    color 1 "$TOMCAT_FILE 文件不存在" 
    exit; 
elif [ -d $TOMCAT_DIR/tomcat ];then
    color 1 "TOMCAT 已经安装" 
    exit
else 
    [ -d "$TOMCAT_DIR" ] || mkdir -pv $TOMCAT_DIR
fi
tar xf $DIR/$TOMCAT_FILE -C $TOMCAT_DIR
cd  $TOMCAT_DIR && ln -s apache-tomcat-*/  tomcat
echo "PATH=$TOMCAT_DIR/tomcat/bin:"'$PATH' > /etc/profile.d/tomcat.sh
id tomcat &> /dev/null || useradd -r -s /sbin/nologin tomcat

cat > $TOMCAT_DIR/tomcat/conf/tomcat.conf <<EOF
JAVA_HOME=$JDK_DIR/jdk
EOF

chown -R tomcat.tomcat $TOMCAT_DIR/tomcat/

cat > /lib/systemd/system/tomcat.service  <<EOF
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target 

[Service]
Type=forking
EnvironmentFile=$TOMCAT_DIR/tomcat/conf/tomcat.conf
ExecStart=$TOMCAT_DIR/tomcat/bin/startup.sh
ExecStop=$TOMCAT_DIR/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now tomcat.service &> /dev/null
systemctl is-active tomcat.service &> /dev/null && color 0 "TOMCAT 安装完成" || { color 1 "TOMCAT 安装失败" ; exit; }
}

install_jdk 
install_tomcat
这里的这个脚本可以使用chmod +x来给这个脚本添加执行权限,我就不加了。
root@Tomcat:/data# bash install_tomcat.sh	

当脚本执行完后就可以出现的结果如下面的图 image.png image.png

2、准备java geteway组件

  java geteway是可以独立于zabbix server和zabbix agent的一个组件,java geteway是可以单独部署到一台服务器上,也是可以和zabbix server或者zabbix agent共用一个服务器,但是要注意端口不要冲突就可以,在这我就和zabbix server服务部署到同一个服务器上了,zabbix server在前两篇文章写了怎么部署。

root@zabbix-server:~# apt update
root@zabbix-server:~# apt -y install zabbix-java-gateway
root@zabbix-server:~# vi /etc/zabbix/zabbix_java_gateway.conf	#找到下面相关项修改即可
root@zabbix-server:~# vi /etc/zabbix/zabbix_java_gateway.conf	#找到下面相关项修改即可
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/run/zabbix/zabbix_java_gateway.pid"
START_POLLERS=50
TIMEOUT=30
root@zabbix-server:~# systemctl restart zabbix-java-gateway	#重启一下java gateway服务
root@zabbix-server:~# lsof -i:10052	#检查端口
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    6002 zabbix   12u  IPv6  82841      0t0  TCP *:10052 (LISTEN)

ubuntu在安装zabbix-java-gateway时可能会报错,因为apt直接下载的话它会自己起服务,这里我们需要修改一下配置文件在重新启动一下服务就可以起来了。 image.png image.png

3、配置zabbix server来调用java gateway

root@zabbix-server:~# vi /etc/zabbix/zabbix_server.conf	#找到下面相关项修改即可
JavaGateway=10.0.0.100	#java gateway的监听地址
JavaGatewayPort=10052	#指定java gateway的服务监听端口,如果是默认的端口的话可以不写
StartJavaPollers=20	#这个值是指启动多少个线程去轮询 java gateway
root@zabbix-server:~# systemctl restart zabbix-server
root@zabbix-server:~# ps -ef | grep java

image.png

4、Tomcat开启JMX监控并安装zabbix-agent

Tomcat开启JMX监控:
root@Tomcat:~# vi /usr/local/tomcat/bin/catalina.sh
#找到Execute The Requested Command行,在下面添加下面的内容
# ----- Execute The Requested Command -----------------------------------------
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.0.0.103"
root@Tomcat:~# systemctl restart tomcat
root@Tomcat:~# systemctl status tomcat
安装zabbix-agent:
root@Tomcat:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1%2Bfocal_all.deb
root@Tomcat:~# dpkg -i zabbix-release_5.0-1+focal_all.deb
root@Tomcat:~# sed -i.bak 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix.list 	#修改官方源地址
root@Tomcat:~# cat /etc/apt/sources.list.d/zabbix.list
deb https://mirrors.aliyun.com/zabbix/zabbix/5.0/ubuntu focal main
deb-src https://mirrors.aliyun.com/zabbix/zabbix/5.0/ubuntu focal main
root@Tomcat:~# apt update
root@Tomcat:~# apt -y install zabbix-agent
root@Tomcat:~# vi /etc/zabbix/zabbix_agentd.conf
root@Tomcat:~# grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.100
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=127.0.0.1
Hostname=10.0.0.103
Include=/etc/zabbix/zabbix_agentd.d/*.conf
root@Tomcat:~# systemctl restart zabbix-agent
讲解一下:
-Dcom.sun.management.jmxremote #这里是启用监控JMX的项
-Dcom.sun.management.jmxremote.port=9999 #默认启用的端口是12345,这改了的话要在zabbix添加主机是端口也要改
-Dcom.sun.management.jmxremote.authenticate=false #这项是不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #这项是不使用ssl认证
-Djava.rmi.server.hostname=10.0.0.103" #这项填的地址不是zabbix-server的地址,而是写tomcat主机的IP地址

image.png

5、在zabbix server web上添加tomcat主机监控

image.png image.png image.png image.png image.png 这里也是可以添加自定义的监控模板,根据自己想要监控的项来进行监控,我这里就不演示添加自定义监控模板来监控服务了。

原文地址:https://blog.51cto.com/u_15105742/5860971

免责声明:本文来源于互联网,版权归合法拥有者所有,如有侵权请公众号联系管理员

* 本站提供的一些文章、资料是供学习研究之用,如用于商业用途,请购买正版。

一夜入秋