Skip to main content

moregeek program

zabbix监控tomcat_一夜入秋的博客-多极客编程

  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
这里也是可以添加自定义的监控模板,根据自己想要监控的项来进行监控,我这里就不演示添加自定义监控模板来监控服务了。


©著作权归作者所有:来自51CTO博客作者一夜入秋的原创作品,请联系作者获取转载授权,否则将追究法律责任

(一)安装mysql_wx62ed1d1f891f1的博客-多极客编程

1、环境说明 操作系统:centos7.9 mysql版本:mysql5.7 安装方式:官网yum安装 2、安装步骤 1、下载mysql的yum源安装包 下载地址: https://dev.mysql.com/downloads/repo/yum/ 下载选择linux7对应的RPM包,进入后选择No thanks, just start my download.即可跳过登录直接进行下载,下载后会

26-mysql高可用-mha_懒喵逼逼叨的博客-多极客编程

MHA Master High AvailabilityMHA 工作原理和架构Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用maste

配置squid代理服务器_挽风三千客的博客-多极客编程

拓扑图:推荐步骤:Squid服务器配置IP地址配置正确网关和网卡模式,安装squid服务器配置squid传统模式访问web服务器实验步骤:一、squid服务器配置IP地址配置正确网关和网卡模式、安装squid服务器1、squid服务器网络设置(1)添加双网卡vm1内网通信VM2互联同通信(2)Squid生成外网网卡配置文件(3)外网网卡设置IP(4)查看IP地址是否生效2、squid服务器开启路由

linux简单扩展http服务_qq622d40b7191ac的博客-多极客编程

一、个人用户主页1开启主页功能[root@centos ~]# vim /etc/httpd/conf.d/userdir.conf1.1重启服务[root@centos ~]# systemctl restart httpd2、创建个人用户网站的数据2.1创建一个普通用户,并在命令行界面登录[root@centos ~]# useradd user[root@centos ~]# sudo su

k8s存储管理—volume、pv、pvc_wx5f8d559402e3e的博客-多极客编程

介绍---------来自官方文档      存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume 子系统为用户和管理员提供了一组 API,将存储如何供应的细节从其如何被使用中抽象出来。为了实现这点,我们引入了两个新的 API 资源:PersistentVolume 和 PersistentVolumeClaim。       持久卷(PersistentVolume,

【11.12-11.18】博客精彩回顾-多极客编程官方账号的博客-多极客编程

一、优秀文章推荐1.​​云原生安全:Trivy + Harbor实现镜像漏洞的简单、高效扫描​​2.​​配置 haproxy 负载均衡群集​​3.​​【建议收藏】15755字,讲透MySQL性能优化​​4.​​Java 几分钟处理完 30 亿个数据?​​5.​​深入浅出学习透析Nginx服务器的基本原理和配置指南「进阶实践篇」​​6.​​【FFH】Bearpi-HM-Micro开机自启动程序​​7

(一)安装mysql_wx62ed1d1f891f1的博客-多极客编程

1、环境说明 操作系统:centos7.9 mysql版本:mysql5.7 安装方式:官网yum安装 2、安装步骤 1、下载mysql的yum源安装包 下载地址: https://dev.mysql.com/downloads/repo/yum/ 下载选择linux7对应的RPM包,进入后选择No thanks, just start my download.即可跳过登录直接进行下载,下载后会

26-mysql高可用-mha_懒喵逼逼叨的博客-多极客编程

MHA Master High AvailabilityMHA 工作原理和架构Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现,目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用maste

用户画像分析的应用及搭建_枫叶飘飘的博客-多极客编程

1、什么是用户画像分析我们经常在淘宝网购物,作为淘宝方,他们想知道用户是什么样的,年龄、性别、城市、收入、购物品牌偏好、购物类型、平时的活跃程度等,这样的一个用户描述就是用户画像分析。在实际工作中,用户画像分析是一个重要的数据分析手段,帮助产品策划人员对产品功能进行迭代,帮助产品运营人员做用户增长。作为产品策划人员,需要策划一个好的功能,获得用户最大的可见价值与隐形价值、必须价值与增值价值,那么了

给openwrt配置多个vlan(比如访客网络),彼此隔离以提高网络安全性_技术攀登者的博客-多极客编程

为何要给路由器配置多个VLAN?目前家庭上网设备越来越多。手机、电视上网大家都已经很熟悉了,可随着物联网(IoT)的发展,诸如指纹锁、扫地机器人、冰箱等设备也都纷纷上网。上网设备的多样性增加了网络环境的复杂性,也给网络安全提出了更高的要求。为此,我们可以在OpenWrt里给这些设备分类,把不可信的设备(诸如IoT设备,或家里访客的手机)与可信设备(自己手机)分离,以提升网络的安全性,也排除了彼此之

linux简单扩展http服务_qq622d40b7191ac的博客-多极客编程

一、个人用户主页1开启主页功能[root@centos ~]# vim /etc/httpd/conf.d/userdir.conf1.1重启服务[root@centos ~]# systemctl restart httpd2、创建个人用户网站的数据2.1创建一个普通用户,并在命令行界面登录[root@centos ~]# useradd user[root@centos ~]# sudo su

k8s存储管理—volume、pv、pvc_wx5f8d559402e3e的博客-多极客编程

介绍---------来自官方文档      存储的管理是一个与计算实例的管理完全不同的问题。PersistentVolume 子系统为用户和管理员提供了一组 API,将存储如何供应的细节从其如何被使用中抽象出来。为了实现这点,我们引入了两个新的 API 资源:PersistentVolume 和 PersistentVolumeClaim。       持久卷(PersistentVolume,