一、zabbix实现监控MySQL、Redis应用流程
1.1、使用zabbix监控MySQL实操流程
1.1.1、在被监控的mysql服务器上安装agent2并配置
《1》下载agent2到MySQL服务器上安装
注意:我们在下载被监控端agent安装包的时候需要根据zabbix-server的版本来匹配下载安装,zabbix-server的版本可以在zabbix的web界面的仪表盘右侧可以查看到或者直接在安装了zabbix-server的服务器上执行【zabbix_server -V 】命令查看版本信息。
            
            
              bash
              
              
            
          
          #直接使用dnf/yum方式在线安装zabbix-agent2实操流程
 
#1-查看系统当前版本
cat /etc/os-release
 
 
#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
 
dnf clean all
 
 
#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y

《2》修改安装好的agent2配置文件连接zabbix-server
            
            
              bash
              
              
            
          
          #编辑安装好的agent2配置文件并实现连接上zabbix-server(192.168.1.38)
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.1.38
ServerActive=192.168.1.38
Hostname=192.168.1.42
HostMetadata=linux zabbix.ck
#重启agent2服务并查看其状态
systemctl restart zabbix-agent2.service
systemctl status zabbix-agent2.service


1.1.2、在被监控的MySQL数据库新建zabbix监控用户
全网最全的关系型数据库MySQL解析及其安装部署的保姆级教程 https://coffeemilk.blog.csdn.net/article/details/151891095
https://coffeemilk.blog.csdn.net/article/details/151891095
            
            
              bash
              
              
            
          
          #在被监控的MySQL数据库中新建zabbix用户用于监控实操流程
#1-进入mysql数据库的路径并登录该需要被监控的数据库
cd /usr/local/mysql/mysql-8.4.6/bin
./mysql -uroot -p
#2-在被监控的MySQL数据库中新建zabbix用户和授予对应权限用于监控
CREATE USER 'zbx_monitor'@'localhost' IDENTIFIED BY 'mysqlabc123';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'localhost';
FLUSH PRIVILEGES;
exit;
#注意:如果mysql数据库是只读权限可以临时设置为读写权限(0表示可读写,1表示只读)
SET @@global.read_only = 0;
1.1.3、修改配置zabbix的web监控界面
《1》打开zabbix的web界面左侧的导航栏【数据采集】-->【模板】-->在模板界面顶部的【名称】输入框中输入mysql后点击-->【应用】即可过滤出所有mysql的相关模板;我们这里就选择主动模式的模板【MySQL by Zabbix agent 2 active】打开-->选择【宏】需要对其中的三个【{MYSQL.DSN}】【{MYSQL.PASSWORD}】【{$MYSQL.USER}】根据实际情况修改(
注意:为了使该模板通用,需要确保其他被监控的mysql的socket、创建的监控用户、密码内容都一致)。
《2》将【MySQL by Zabbix agent 2 active】模板链接到安装了MySQL的主机上(即:打开zabbix的web界面左侧的导航栏【数据采集】-->【主机】-->选择安装了MySQL服务的主机(如:192.168.1.42)-->【主机】-->模板选择【MySQL by Zabbix agent 2 active】-->【更新】)即可。
《3》监测给MySQL服务所在主机配置的MySQL监测模板数据是否采集到进行监控(即:打开zabbix的web界面左侧的导航栏【监测】-->【主机】-->选择安装了MySQL服务的主机(如:192.168.1.10)-->【最新数据】-->使用【名称】过滤 Command、Connection、Created、InnoDB、status、Queries、Threads)
详细操作如下:











到这里恭喜你配置zabbix监控MySQL状态成功了。
1.2、使用zabbix监控Redis实操流程
1.2.1、下载安装部署Redis
1.2.2、在被监控的redis服务器上安装agent2并配置
            
            
              bash
              
              
            
          
          #直接使用dnf/yum方式在线安装zabbix-agent2实操流程
 
#1-查看系统当前版本
cat /etc/os-release
 
 
#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
 
dnf clean all
 
 
#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y
            
            
              bash
              
              
            
          
          #编辑安装好的agent2配置文件并实现连接上zabbix-server(192.168.1.38)
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.1.38
ServerActive=192.168.1.38
Hostname=192.168.1.36
HostMetadata=linux zabbix.ck
#重启agent2服务并查看其状态
systemctl restart zabbix-agent2.service
systemctl status zabbix-agent2.service1.2.3、修改配置zabbix的web监控界面
《1》打开zabbix的web界面左侧的导航栏【数据采集】-->【模板】-->在模板界面顶部的【名称】输入框中输入redis后点击-->【应用】即可过滤出所有mysql的相关模板;我们这里就选择主动模式的模板【Redis by Zabbix agent 2】打开-->选择【宏】需要对其中的所有宏特别是【{REDIS.CONN.URI}】【{REDIS.MEM.PUSED.MAX.WARN}】根据实际情况修改(注意:正常情况下我们的redis数据库都会设置访问密码,因此需要修改宏【{$REDIS.CONN.URI}】的值为【RedisServer1】;然后在被监控redis的服务器修改agent2的配置文件新增上【redis-server的账号密码】内容)。
            
            
              bash
              
              
            
          
          #被监控的redis服务器端的zabbix-agent2的配置文件新增的redis账号密码内容如下:
cd /etc/zabbix
vi zabbix_agent2.conf
Plugins.Redis.Sessions.RedisServer1.Uri=tcp://localhost:6379
Plugins.Redis.Sessions.RedisServer1.User=ck
Plugins.Redis.Sessions.RedisServer1.Password=Qzsd43561《2》将【Redis by Zabbix agent 2】模板链接到安装了redis的主机上(即:打开zabbix的web界面左侧的导航栏【数据采集】-->【主机】-->选择安装了MySQL服务的主机(如:192.168.1.36)-->【主机】-->模板选择【Redis by Zabbix agent 2】-->【更新】)即可。
《3》监测给redis服务所在主机配置的redis监测模板数据是否采集到进行监控(即:打开zabbix的web界面左侧的导航栏【监测】-->【主机】-->选择安装了redis服务的主机(如:192.168.1.36)-->【最新数据】-->使用【名称】过滤 AOF、Connected、Memory、RDB、Replication、redis)
详细操作如下:






解决zabbix-server监控redis我们查看redis的监控最新数据时提示"Connection failed: NOAUTH Authentication required."错误,无法获取到redis数据问题 (需要先在zabbix的web界面的【Redis by Zabbix agent 2】模板宏上将【{$REDIS.CONN.URI}】的值为【RedisServer1】;然后在被监控redis的服务器修改agent2的配置文件新增上【
Plugins.Redis.Sessions.RedisServer1.Uri=tcp://localhost:6379
Plugins.Redis.Sessions.RedisServer1.User=ck
Plugins.Redis.Sessions.RedisServer1.Password=Qzsd43561
】)







到这里恭喜你配置zabbix监控redis状态成功了。
二、zabbix实现监控tomcat应用流程
2.1、zabbix-server实现监控java应用程序的数据流程
zabbix监控tomcat,需要zabbix_server开启java poller, zabbx_java开启JavaGateway,端口为10052,Tomcat JMX开启12345端口,提供性能数据。
当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavaGateway收到请求后使用"JMXmanagementAPI"去查询特定的应用程序,而前提是应用程序这端在开启时需要"-Dcom.sun.management.jmxremote"参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据;如下图所示:

2.2、安装部署tomcat并配置tomcat的JMX
            
            
              bash
              
              
            
          
          #在Linux服务器上安装Tomcat实操步骤流程------之先安装配置tomcat所需的JDK环境
 
#0-JDK1.8包的官网地址
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
#1-安装JDK1.8版本(即:将下载好的JDK1.8压缩包文件上传到Linux服务器的/data路径上)
yum install lrzsz -y
cd /data
rz
 
#2-解压JDK压缩包到指定路径
mkdir -p /usr/java
tar -zxvf jdk-8u201-linux-x64.tar.gz -C /usr/java
 
#3-设置JDK的环境变量(这样可以让程序能够识别到JDK【即:在/etc/profile文件中添加JAVA变量】)
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
 
#4-让设置的JDK环境变量生效
source /etc/profile
 
#5-验证java是否配置成功(若执行查询java版本的命令后显示对应的版本信息则表示成功,否则失败)
java -version



            
            
              bash
              
              
            
          
          #在Linux服务器上安装Tomcat实操步骤流程------之先安装部署tomcat
#1-到Tomcat的官网(https://tomcat.apache.org/download-90.cgi)下载Tomcat9的最新版二进制压缩包
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.111/bin/apache-tomcat-9.0.111.tar.gz -c 0 -P /data
 
 
#2-将tomcat9压缩包解压到/usr/local/tomcat9目录中
cd /data
mkdir -p /usr/local/tomcat9
tar -zxvf apache-tomcat-9.0.109.tar.gz -C /usr/local/tomcat9/

            
            
              bash
              
              
            
          
          #配置tomcat的JMX实操流程
#1-进入tomcat的应用程序路径
cd /usr/local/tomcat9/apache-tomcat-9.0.111/bin
#2-获取当前tomcat所在服务器的IP地址
ip a
#3-编辑tomcat的启动程序文件【catalina.sh】中添加JMX内容
#注意:-Djava.rmi.server.hostname后的IP是当前tomcat所在的服务器IP地址(如:192.168.1.12)
vi catalina.sh
#如下是在tomcat的启动程序文件【catalina.sh】中添加的JMX完整内容
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 -Djava.rmi.server.hostname=192.168.1.12 -Dcom.sun.management.jmxremote.port=12345"
#4-启动tocat服务
cd /usr/local/tomcat9/apache-tomcat-9.0.111/bin
./startup.sh
#5-查看tomcat的进程信息(tomcat默认使用8080端口)
ps -ef | grep tomcat
netstat -antlp | grep java
#6-打开浏览器输入【tomcat服务器的IP:8080】访问验证tomcat是否成功启动
192.168.1.12:8080
#7-查看防火墙是否开启(若开启运行中则需要将8080端口放开)
systemctl status firewalld
firewall-cmd --list-port
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port






2.3、部署zabbix_java_gateway服务
            
            
              bash
              
              
            
          
          #安装zabbix-java-gateway实操流程
#1-配置zabbix的源
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
dnf clean all
#2-安装zabbix-java-gateway
dnf install zabbix-java-gateway -y
#3-启动zabbix-java-gateway服务并设置开机自启
systemctl restart zabbix-java-gateway
systemctl enable zabbix-java-gateway
            
            
              bash
              
              
            
          
          #修改zabbix server配置,增加zabbix_java_gateway服务配置实操流程
#1-进入zabbix-server的所有配置文件路径
cd /etc/zabbix/
vi zabbix_server.conf 
#2-在zabbix-server的配置文件【zabbix_server.conf】中zabbix_java_gateway服务配置的内容:
JavaGateway=zabbix-java-gateway
JavaGatewayPort=10052
StartJavaPollers=5
#3-重启zabbix-server服务让配置生效
systemctl restart zabbix-server.service
systemctl status zabbix-server.service

2.4、在被监控的tomcat服务器上安装agent2并配置
            
            
              bash
              
              
            
          
          #直接使用dnf/yum方式在线安装zabbix-agent2实操流程
 
#1-查看系统当前版本
cat /etc/os-release
 
 
#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
 
dnf clean all
 
 
#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y
            
            
              bash
              
              
            
          
          #编辑安装好的agent2配置文件并实现连接上zabbix-server(192.168.1.38)
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.1.38
ServerActive=192.168.1.38
Hostname=192.168.1.36
HostMetadata=linux zabbix.ck
#重启agent2服务并查看其状态
systemctl restart zabbix-agent2.service
systemctl status zabbix-agent2.service
#查看防火墙是否开启(若开启运行中则需要将10050端口放开)
systemctl status firewalld
firewall-cmd --list-port
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
2.5、Zabbix的web界面配置jmx监控
2.5.1、zabbix的web界面给tomcat主机添加jmx接口
打开zabbix的web界面左侧的导航栏【数据采集】-->【主机】-->点击tomcat的主机【如:192.168.1.12】-->【主机】-->【接口(添加)】JMX (输入对应的tomcat ip地址和jmx端口,这里的tomcat ip就是需要监控的tomcat服务器的ip地址;端口就是12345)-->【更新】,详细操作如下图所示:


2.5.2、zabbix的tomcat主机链接tomcat监控模板
打开zabbix的web界面左侧的导航栏【数据采集】-->【主机】-->点击tomcat的主机【如:192.168.1.12】-->【主机】-->模板选择【Apache Tomcat by JMX】【 Generic Java JMX】两个模板,将这个模板链接到此主机-->【更新】(注意:如果tomcat的JMX配置了用户和密码则需要在【Apache Tomcat by JMX】【 Generic Java JMX】模板的宏里面配置用户和密码),详细操作如下图所示:





2.5.3、验证添加的tomcat主机的JMX数据是否采集成功
监测给tomcat服务所在主机配置的tomcat监测模板数据是否采集到进行监控(即:打开zabbix的web界面左侧的导航栏【监测】-->【主机】-->选择安装了tomcat服务的主机(如:192.168.1.12)-->【最新数据】-->使用【名称】过滤JVM和选择所有jmx开头的标记)详细操作如下:


到这里恭喜你配置zabbix监控tomcat成功了。
三、zabbix官网提供的各种应用模板资料
Zabbix Integrations and Templates https://www.zabbix.com/cn/integrations
https://www.zabbix.com/cn/integrations
