1.客户端zabbix安装流程
1.同样先初始化服务器
#!/bin/bash
# 判断防火墙是否启动,关闭防火墙,设置开机禁止自启动
systemctl status firewalld | grep -w "active"
if [ $? -eq 0 ];then
echo "正在关闭防火墙"
systemctl stop firewalld &> /dev/null
systemctl disable firewalld &> /dev/null
# 关闭软件防火墙
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
echo "防火墙已关闭"
else
echo "防火墙已关闭"
fi
# 设置主机名
if [ $# -eq 0 ];then
hostnamectl set-hostname server1 &> /dev/null
else
hostnamectl set-hostname $1 &>/dev/null
fi
# 配置yum源
# 判断网络是否通常
ping -c1 www.baidu.com
if [ $? -eq 0 ]; then
echo "网络正常"
else
echo "网路不通请检查网络"
exit
fi
# 备份yum原有配置文件
cd /etc/yum.repos.d/ || exit
tar -zvcf repo.tar.gz *.repo &>/dev/null
# 删除原有yum配置
rm -rf *.repo
# 配置阿里源镜像,清楚并生成缓存
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all &> /dev/null
yum makecache
# 安装拓展源
yum install epel-release -y
yum install vim -y
yum install net-tools -y
yum install wget -y
yum install yum-utils -y
yum install ntp -y
systemctl enable ntpd --now
reboot
2.配置zabbix相关的yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
前期配置和服务端安装差不多
3.安装zabbix-agent
yum -y install zabbix-agent
4.配置主服务器地址
vim /etc/zabbix/zabbix_agentd.conf
# 被动模式
Server=192.168.46.152 # 被动模式 zabbix-server-ip(谁从我这里采集数据)
#主动模式
ServerActive=192.168.46.152 #主动模式zabbix-server-ip(我向谁主动发送数据)
#客户端主机名
Hostname=client
5.启动zabbix-agent
systemctl enable zabbix-agent --now
# 检查是否开启
netstat -tnlp | grep 10050

6.server验证
在server端采集客户端数据,此时回到server端
# server端使用命令进行验证,通过zabbix_get 收集客户端数据,5.0zabbix并没有默认安装zabbix-get
yum install zabbix-get -y
#获取指定客户端的系统信息
zabbix_get -s client -k system.uname
#获取客户端CPU15分钟的平均负载
zabbix_get -s client -k system.cpu.load[all,avg15]
这里获取到客户端的system.uname

获取客户端的15分钟,5分钟内,1分钟的平均负载
2.基础使用
1.专业术语
- 主机(host):要监控的设备,可以由 IP 或者是主机名(必须可解析)指定
- 主机组(host group):主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用
- 监控项(item):一个特定监控指标的相关数据,比如内存的大小、CPU 的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个 key 来标识
- 触发器(trigger):一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常
- 事件(event):触发器触发的一个特定事件,或者是 zabbix 定义的一个自动上线注册主机的事件
- 动作(action):指根据配置,zabbix 对于触发器触发的特定事件进行处理的具体措施,如执行某个脚本,或者是向管理员邮箱发送邮件等等
- 媒介(media):发送通知(告警)的手段,如微信、邮件、钉钉等等
- 通知(notification):通过指定的媒介,向用户发送的有关事件的信息
- 远程命令(remote command):指运维人员提前写好的命令,可以让被监控主机在触发事件后执行
- 模板(template):用于快速定义被监控主机的预设条目集合,通常包括了监控项、触发器、应用等,模板可以直接链接至某个主机
2.基础实验

添加一个主机群组为

进入群组添加主机,先创建主机


其中agent的IP地址就是我们创建的监听客户端的服务器IP地址
添加成功

此时这个主机还没有模版,我们需要给这个zabbix添加模版,先进入主机

添加模版




最后点击更新,发现应用集,监控项,触发器,都包含了数据


且在监测里面存在这个问题

在被监测客户端添加一个nginx,解决这个问题,安装后,再次刷新zabbix监控服务

3.自定义模版与监控项
1.概述
有的时候模板里面的监控项并不满足我们的需求,所以我们需要自定义模板与自定义监控等数据
2.需求
需求:添加一个模板,其中的监控项为:服务器启动分区剩余空间
3.创建模版

比如我们创建一个模版,其中的监控项为:服务器启动分区的剩余空间
创建了监控项之后就添加监控项目


添加好后就测试是否能够连接到到服务器

这里成功连接到测试成功,添加监控项
这里在添加一个监控项,添加CPU的平均负载

同样设置好后添加到之前创建的主机

添加选择这两项,最后更新

这里有三个监控项,我们添加图像化更还查看CPU和剩余空间的情况

进入图形点击右上角的创建图表,创建一个查看剩余空间的表,对应GET_SERVER_DISK这一项

同理在在添加一个CPU负载的图形化界面,创建成功后,在监测里面查看图形化界面

直接往被检测客户端里面写入10G数据来个测试
dd if=/dev/zero of=./demo.txt bs=10M count=1000

这里明显看到变化,也就是说监测生效了
4.自定义key
在zabbix自带的key里面很多都是关于系统的一些参数,而当我们需要监控MYSQL数据的查询数量的时候zabbix里面就没有了,因此,我们就要自定义key
自定义MYSQL数据的查询数量
1.客户端安装mysql
# 安装 wget下载工具
yum -y install wget
# 下载 mysql 官方 yum 源安装包
wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
# 安装 mysql 官方 yum 源
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
# 配置yum源秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 列出所有版本
yum repolist all | grep mysql
# 安装yum配置工具
yum -y install yum-utils
# 禁用8.0的版本
yum-config-manager --disable mysql80-community
# 启动5.7的版本
yum-config-manager --enable mysql57-community
# 检查启动版本
yum repolist enabled | grep mysql
# 安装服务端,客户端
yum -y install mysql-community-server mysql
# 设置开机自动mysql服务端
systemctl enable mysqld --now
首次登录修改密码
# 检查mysql的安装
ls /var/lib/mysql
# 获取首次登录密码
grep 'password' /var/log/mysqld.log
# 登录mysql数据库
mysql -uroot -p'123456'
# 修改mysql数据库密码
use mysql
alter user 'root'@'localhost' identified by 'Aa1234567=='
# 用新密码登录数据库
mysql -uroot -p'Aa123456='
2.查询监听MYSQL查询连接数的命令
mysqladmin -uroot -p'Aa123456==' status
3.编写获取查询数量的shell脚本
mysql -uroot -p'Aa123456==' | awk '{print $6}'

他这里查询到会有明文警告,去掉明文警告
vim /etc/my.password
[client]
user=root
password=Aa123456==
通过这样的方式读取文件
mysqladmin --defaults-extra-file=/etc/my.password status | awk '{print $6}'
4.编写自定义监控的配置文件
# 要自定义监控项都需要通过这种方式自定义监控项,需要创建配置文件
vim /etc/zabbix/zabbix_agentd.d/mysql_status_querys.conf
UserParameter=mysql.querys,mysqladmin --defaults-extra-file=/etc/my.password status | awk '{print $6}'
-----------------------------------------
# 修改完配置文件后重启服务使其生效
systemctl restart zabbix-agent
这时候在服务端可以直接查询到客户端的mysql查询数量

5.最后在zabbixUI界面添加

测试即可连接成功