目录
Zabbix原理与部署
一、zabbix简介:
-
zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
-
zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
-
zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
-
zabbix server 可以通过 zabbix agent,SNMP协议,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在 Linux 等平台上。
-
zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。
cacti、nagios
二、zabbix 监控原理:
zabbix agent 安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后, 将数据存储到数据库中,用户基于 Zabbix Web 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值, 当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、钉钉、短信)、发送命令(shell 命令、reboot(重启程序)、restart、 install 等)。
三、zabbix监控对象:
zabbix支持监控各种系统平台,包括linux和windows等主流操作系统,也可以借助SNMP或者SSH协议监控路由交换设备。
zabbix如果部署在服务器上,可以监控其CPU、内存、网络等硬件参数,也可以监控具体服务(中间件:web中间件、数据库中间件、语言环境)或者应用程序(论坛、OA、ERP),服务运行情况及性能。
硬件监控(zabbix IPMI interface)
-
通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控备监控的对象的物理特征,比如电压、温度、风扇状态、电源状态等。
系统监控(zabbix agent interface)
-
通过专用的代理程序进行监控,与常见的master/agent模型类型,如果监控对象支持对应的agent,推荐选这种方式。
java监控(zabbix JMX interface)
-
通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JMX虚拟机时,使用这种方法非常不错的选择。
网络设备监控(Zabbix SNMP Interface )
-
通过SNMP协议与被监控对象进行通信,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。
四、Zabbix架构:
4.1 server-client架构:
-
也就是zabbix的最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由zabbix-server和zabbix-agent之间进行数据交换。
-
适用于网络比较简单,尽量在局域网内,设备比较少的监控环境。
4.2 server-proxy-client架构:
-
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且本身并不存放数据,只是将agentd发来的数据暂时存放,然后再交给server。
-
该架构经常是和master-node-client架构做比较。一般适用于跨机房、跨网络的中型网络架构的监控。
4.3 master-node-client架构:
-
该架构是zabbix最大负载的监控架构,使用于跨机房、跨网络设备较多的大型环境。每一个node都会同步server端。相当于也是一个server端
-
node下面可以接proxy,也可以直接接clinet。
-
node有自己的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损不会对影响node节点的正常工作,但是会影响zabbix-server整体的完整性。
Rocky9部署Zabbix7
一、系统准备与环境配置
1、设置主机名,关闭防火墙,设置上下文
设置主机名
hostnamectl set-hostname zabbix-server
关闭防火墙
[root@zabbix-server ~]# systemctl disable --now firewalld
[root@zabbix-server ~]# setenforce 0
[root@zabbix-server ~]# systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: >
Active: inactive (dead)
Docs: man:firewalld(1)
2、配置安装源
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
获取https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
警告:/var/tmp/rpm-tmp.m9yDFy: 头V4 RSA/SHA512 Signature, 密钥 ID b5333005: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:zabbix-release-7.0-5.el9 ################################# [100%]
############
清理缓存
yum clean all
3、安装Zabbix server,Web前端,agent
yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
4、安装与配置mysql数据库
[root@zabbix-server ~]# yum -y install mysql-server
确保数据库启动成功,下面的直接复制不用改动
# mysql
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
适配的字符集
mysql> create user zabbix@localhost identified by 'zabbix';
创建用户设置密码
mysql> grant all privileges on zabbix.* to zabbix@localhost;
赋权
mysql> set global log_bin_trust_function_creators = 1;
二进制日志对应函数
mysql> quit;
5、导入始架构和数据,系统将提示您输入新创建的密码
密码是刚创建的用户密码:zabbix
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
6、为Zabbix server配置数据库
vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
7、为Zabbix server配置数据库
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
12 # ListenPort=10051 默认端口监听,默认关闭
131 DBPassword=zabbix 密码设置成创建用户的密码
8、为Zabbix前端配置PHP
编辑配置文件 /etc/nginx/conf.d/zabbix.conf
8.1、直接用8080端口访问 不用修改,去掉注释就行
listen 8080;
server_name example.com;
8.2、修改成80端口访问,切换到/etc/nginx/nginx.conf,将server字段下的80端口注释掉
server {
# listen 80;
# listen [::]:80;
9、启动对应服务
systemctl enable --now zabbix-server zabbix-agent nginx php-fpm
二、登录配置
1、浏览器访问:192.168.80.150
一定要和系统时间一样,如果不一样修改配置文件
点击下一步,到这个界面安装完成
2、输入密码完成登录
数据传输路径,数据传给本机,不用修改;其他服务器要改成指向这台机器
[root@zabbix nginx]# cd /etc/zabbix/
[root@zabbix zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
[root@zabbix zabbix]# vim zabbix_agentd.conf
3、再开一台虚拟机
3.1、安装配置源
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
3.2、下载zabbix-agent
[root@localhost ~]# yum -y install zabbix-agent
3.3、修改zabbix配置文件,修改两处
[root@localhost ~]# cd /etc/zabbix/
[root@localhost zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@localhost zabbix]# vim zabbix_agentd.conf
Server=192.168.80.150 #该IP指向配置主机的IP
182 Hostname=host1 #修改主机名
3.4、启动zabbix-agent;并关闭防火墙和上下文
[root@localhost zabbix]# systemctl start zabbix-agent.service
[root@localhost zabbix]# systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@localhost zabbix]# setenforce 0
3.5、添加主机监控
3.6、添加完发现模板还是没有,需要添加模板;添加主机的项目是用模板添加的,模板可以制作,也可以用默认模式
点击主机名,创建模板,点击模板选择
点击宏,会出现许多变量和值;然后点击更新,创建完成
创建完成,发现有监控项,有模板;然后刷新,
点击图形,红色代表子集模板,
3.7、观看图形,点击监测———主机,再点击主机的图形
3.8、上图发现有许多小方框 不识别字符,需要导入中文字符
从windows系统中:C:\Windows\Fonts路径下拷贝
到zabbix server中,放到/usr/share/zabbix/assets/fonts
再回到图形界面点击刷新,发现会识别到汉字
三、创建模板
1、创建模板组
2、创建模板
查看创建的模板,选择模板组,点击应用
3、创建监控项
3.1、切换目录到文件/usr/share/doc/zabbix-agent/,查看变量语法
[root@localhost ~]# cd /usr/share/doc/zabbix-agent/
[root@localhost zabbix-agent]# ls
AUTHORS ChangeLog COPYING NEWS README userparameter_mysql.conf
[root@localhost zabbix-agent]# cat userparameter_mysql.conf
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default)
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
3.2、切换到
[root@localhost ~]# cd /etc/zabbix/
[root@localhost zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@localhost zabbix]# vim zabbix_agentd.conf
3.4、切换到zabbix-agent.d,创建一个disk文件,监控磁盘使用率
root@localhost zabbix]# cd zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# vim disk.conf
3.5、在终端上测试出磁盘使用率
[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 4096 0 4096 0% /dev
tmpfs 892624 0 892624 0% /dev/shm
tmpfs 357052 7260 349792 3% /run
/dev/mapper/rl-root 73334784 6317140 67017644 9% /
/dev/mapper/rl-home 133083136 961012 132122124 1% /home
/dev/sda1 983040 310844 672196 32% /boot
tmpfs 178524 104 178420 1% /run/user/0
[root@localhost ~]# df | grep "$/"
[root@localhost ~]# df | grep "/$"
/dev/mapper/rl-root 73334784 6317148 67017636 9% /
[root@localhost ~]# df | grep "\$/"
[root@localhost ~]# df | grep "^/"
/dev/mapper/rl-root 73334784 6317148 67017636 9% /
/dev/mapper/rl-home 133083136 961012 132122124 1% /home
/dev/sda1 983040 310844 672196 32% /boot
[root@localhost ~]# df | grep "/$"
/dev/mapper/rl-root 73334784 6317148 67017636 9% /
[root@localhost ~]# df | grep "/$" | awk '{print $(NF-1)}'
9%
[root@localhost ~]# df | grep "/$" | awk '{print $(NF-1)}' | cut -d% -f1
9
[root@localhost ~]# df | grep "/home$" | awk '{print $(NF-1)}' | cut -d% -f1
1
[root@localhost ~]# df | grep "/boot$" | awk '{print $(NF-1)}' | cut -d% -f1
32
3.6、回到disk文件中,将磁盘使用率的代码写进去
UserParameter=disk_use[*],df | grep "$1$" | awk '{print $(NF-1)}' | cut -d% -f1
3.7、重启zabbix-agent服务
[root@localhost zabbix_agentd.d]# systemctl restart zabbix-agent.service
3.8、在服务端测试客户端输入的值是否可用,zabbix_get 命令使用,zabbix-get 命令下载
[root@zabbix ~]# yum -y install zabbix-get
[root@zabbix ~]# zabbix_get -s 192.168.80.151 -p 10050 -k disk_use[/]
9
[root@zabbix ~]# zabbix_get -s 192.168.80.151 -p 10050 -k disk_use[home]
1
[root@zabbix ~]# zabbix_get -s 192.168.80.151 -p 10050 -k disk_use[boot]
32
zabbix_get命令
zabbix_get [选项] -s <Agent主机IP或主机名> -p <端口> -k <监控项Key>
选项说明
-s <host>指定目标 Agent 的 IP 或主机名(默认 localhost)。
-p <port>指定 Agent 的端口(默认 10050)。
-k <key>指定监控项 Key(必须参数)。
-I <IP>指定 Zabbix Server 的源 IP(用于多网卡环境)。
-h 显示帮助信息。-V显示版本信息。
3.9、打开刚才创建的模板,点击监控项,创建监控项
添加成功,然后点击图形创建图形
4、创建触发器
5、查看自己创建的模板图表,清理默认模板时一定要选择 取消模板并清理
1.2、测试数据传输,在192.168.80.151主机上创建测试文件
[root@localhost zabbix_agentd.d]# dd if=/dev/zero of=/test.txt bs=100M count=10
记录了10+0 的读入
记录了10+0 的写出
1048576000字节(1.0 GB,1000 MiB)已复制,3.0927 s,339 MB/s
[root@localhost zabbix_agentd.d]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 4096 0 4096 0% /dev
tmpfs 892624 0 892624 0% /dev/shm
tmpfs 357052 7260 349792 3% /run
/dev/mapper/rl-root 73334784 7344408 65990376 11% /
/dev/mapper/rl-home 133083136 961012 132122124 1% /home
/dev/sda1 983040 310844 672196 32% /boot
tmpfs 178524 104 178420 1% /run/user/0
然后观察监控是否有变化
5、增加监控项,增加用户登陆次数的监控
5.1、在终端测试
[root@localhost zabbix_agentd.d]# last | grep -v wtmp | grep -v "^$" | awk '{print $(NF+1-NF)}' | sort | uniq -c |grep root | awk '{print $(NF+1-NF)}'
13
[root@localhost zabbix_agentd.d]# last | grep -v wtmp | grep -v "^$" | awk '{print $(NF+1-NF)}' | sort | uniq -c |grep reboot | awk '{print $(NF+1-NF)}'
4
5.2、在配置文件中添加键值,并重启
[root@localhost zabbix_agentd.d]# cat disk.conf
UserParameter=disk_use[*],df | grep "$1$" | awk '{print $(NF-1)}' | cut -d% -f1
UserParameter=count_use[*],last | grep -v wtmp | grep -v "^$" | awk '{print $(NF+1-NF)}' | sort | uniq -c |grep "$1" | awk '{print $(NF+1-NF)}'
[root@localhost zabbix_agentd.d]# systemctl restart zabbix-agent.service
5.3、接下来的添加步骤和上面添加监控项是一样的,下为图形监控
四、添加监控windows主机
1、关闭windows主机防火墙
打开安全中心
2、解压软件包
zabbix_agent(windows),放在D盘或其他,然后解压后进入conf文件夹,修改server为监控机ip
3、打开powershell以管理员身份打开
3.2、回到zabbix添加群组
五、网络设备监控
1、安装GNS模拟器的使用
1.1、先创建路由器,点击编辑,点击首选项
安装完,添加路由器,点击开机,右击console,进去刷新
刷新完成后,点击ldle-PC,计算一下,完成之后选择带 * 号最高的,点击ok完成创建
1.2、创建交换机
前面步骤参照路由器
安装完成,开启交换机,和路由器步骤一样,也是选择带星号最高的
1.3、用GNS3做路由实验
1.3.1、添加两台主机,和一台路由器
1.3.2、准备两台虚拟机
一台虚拟机连接VMnet1;另一台连接VMnet2;将两台虚拟机的DHCP关掉
1.3.3、连接路由器,2001本地连接端口,连接需要Telnet
R1#show version
查看路由器版本
R1#show interfaces
查看路由器接口
先进入全局模式,再进入接口模式
R1(config)#inter
R1(config)#interface f0/0
R1(config-if)#ip addr
R1(config-if)#ip address 192.168.100.254 255.255.255.0
R1(config-if)#no shut
R1(config-if)#no shutdown
R1(config-if)#
*Mar 1 00:00:51.143: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:00:52.143: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R1(config-if)#interface f1/0
R1(config-if)#ip addr
R1(config-if)#ip address 192.168.200.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#
*Mar 1 00:17:30.107: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
*Mar 1 00:17:31.107: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0
####
查看路由条目
R1(config-if)#do show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.200.0/24 is directly connected, FastEthernet1/0
C 192.168.100.0/24 is directly connected, FastEthernet0/0 #直连路由
2、虚拟机设置
vmnet1,vmnet2设置取消DHCP制动分配IP地址
主机一
查看IP是没有IP地址的,添加临时网关,和路由
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:df:d3:ad brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fedf:d3ad/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:35:14:f7 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:35:14:f7 brd ff:ff:ff:ff:ff:ff
#####临时添加一块网卡
[root@localhost ~]# ifconfig ens33 192.168.100.1/24
#####添加路由
[root@localhost ~]# route add -net 192.168.200.0/24 gw 192.168.100.254
[root@localhost ~]# ping 192.168.100.254
PING 192.168.100.254 (192.168.100.254) 56(84) bytes of data.
64 bytes from 192.168.100.254: icmp_seq=1 ttl=255 time=31.8 ms
64 bytes from 192.168.100.254: icmp_seq=2 ttl=255 time=9.56 ms
64 bytes from 192.168.100.254: icmp_seq=3 ttl=255 time=9.96 ms
主机二
临时添加IP 和路由
配置网关(net后加0/0是任意网关,可以单独指向地址段,也可以任意)
测试连通性
3、在添加一组主机和路由将zabbix主机连接到路由上
host3连接到VMnet8上
在192.168.80.150主机上ping是否连通
4、SNMP协议
监控网络设备要用SNMP协议(简单网络管理协议)
- SNMP协议收集目标主机,需要协议对等,有v1、v2、v3
- 协议传输需要验证密钥,成为共同体,共同体必须保持一致
- 目标主机必须开启SNMP协议
5、添加路由器监控器
创建共同体,必须在全局模式下
R2(config)#snmp-server community c2505
创建主机组
添加主机
修改宏点击添加
点击主机添加模板
等待一会,点击监测,R2主机图形
六、添加中间件监控
1、MySQL数据库监控
1.1、下载MySQL数据库
[root@localhost ~]# yum -y install mysql-server
1.2、将mysql的监控文件复制到zabbix_agentd.d的目录里,
[root@localhost ~]# cd /usr/share/doc/zabbix-agent/
[root@localhost zabbix-agent]# ls
AUTHORS ChangeLog COPYING NEWS README userparameter_mysql.conf
[root@localhost zabbix-agent]# cp userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix-agent]# cd /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# ls
disk.conf userparameter_mysql.conf
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default)
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
####
-sNX让当前命令查看到的数据变成可进行数据展示的文档结构,会变成xml文档
[root@localhost ~]# mysql -sNX -e "show global status"
<?xml version="1.0"?>
<resultset statement="show global status
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="Variable_name">Aborted_clients</field>
<field name="Value">0</field>
</row>
<row>
<field name="Variable_name">Aborted_connects</field>
<field name="Value">0</field>
</row>
# <row> 代表行
[root@localhost ~]# mysql -sN -e "show databases"
information_schema
mysql
performance_schema
sys
-s 或 --silent
作用:使 mysql 客户端以“静默模式”运行,减少输出信息,只输出查询结果。
用法:mysql -s
-N 或 --skip-column-names*
作用:在输出结果中跳过列名和 footer 信息,仅输出数据行。这对于脚本处理非常有用,因为可以避免解析多余的元数据。
用法:mysql -N
-X 或 --xml*
作用:以 XML 格式输出查询结果。这在需要将结果以结构化格式(如 XML)传递给其他工具或系统时非常有用。
用法:mysql -X
1.3、测试userparameter_mysql.conf文件里的MySQL命令
mysql> show global status\G;
*************************** 1. row ***************************
Variable_name: Aborted_clients
Value: 0
*************************** 2. row ***************************
Variable_name: Aborted_connects
Value: 0
*************************** 3. row ***************************
1.4、重启监控服务
[root@localhost zabbix_agentd.d]# systemctl restart zabbix-agent.service
1.5、创建模板
查看模板,查看模板说明
1.6、创建主机监控项
1.7、回到终端
进入到mysql里面创建用户和赋权
mysql
create user root@'192.168.151.%' identified by '123.com';
grant all on *.* to root@'192.168.151.%';
将下面的内容复制到/etc/my.cnf
vim /etc/my.cnf
[client]
protocol=tcp
user='root'
password='123.com'
重启
systemctl restart zabbix-agent.service
回到服务端测试
[root@zabbix ~]# zabbix_get -s 192.168.80.151 -p 10050 -k "mysql.ping[192.168.80.151,3306]"
mysqld is alive
表示用户存在
获取变量状态
[root@zabbix ~]# zabbix_get -s 192.168.80.151 -p 10050 -k mysql.get_status_variables[192.168.80.151,3306]
<?xml version="1.0"?>
<resultset statement="show global status
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="Variable_name">Aborted_clients</field>
<field name="Value">0</field>
</row>
1.7、回到监控网页
点击刷新,会出现MySQL模板,点击主机,点击宏,更改IP,点击更新
然后去查看监测本台主机的图形,是否有数据产生
2、nginx数据库监控
安装nginx
2.1、修改nginx配置文件
[root@localhost nginx]# vim nginx.conf
在server字段中添加
server
location = /basic_status {
stub_status;
}
#####测试是否成功
[root@localhost nginx]# curl -s http://localhost/basic_status
Active connections: 1
server accepts handled requests
17 17 17
Reading: 0 Writing: 1 Waiting: 0
2.2、回到zabbix监控,添加nginx模板
3、redis数据库监控
redis模板在zabbix_agent2中需要下载
在另一台主机需要配置仓库
[root@agent2 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-1.el9.noarch.rpm
[root@agent2 ~]# yum -y install zabbix-agent2
下载redis
查看是否有redis插件
[root@agent2 ~]# zabbix_agent2 -p | grep redis
3.1、