zabbix-客户端部署以及基础使用

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界面添加

测试即可连接成功

相关推荐
王琦03181 小时前
Zabbix部署
zabbix
王琦03181 天前
zabbix agent 部署与使用
zabbix
Lysander.Jovian2 天前
zabbix监控实战
zabbix
fengkai45453 天前
十三、Zabbix 监控
运维·服务器·zabbix·监控·网络设备
陈聪.5 天前
Zabbix 监控系统知识总结
zabbix
暖核6 天前
企业级开源监控解决方案:Zabbix 6.0 部署与配置全流程详解
开源·zabbix
木子欢儿7 天前
Zabbix 7.4 Alpine 版 Docker Compose 部署
android·运维·docker·容器·zabbix
云运维笔记1 个月前
Zabbix 分布式监控搭建实战:基于 Proxy 实现 MySQL、Java、Nginx 监控
java·mysql·zabbix
happymade1 个月前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
云运维笔记2 个月前
Zabbix 监控实战:Nginx、MySQL 与 Java 程序配置指南
mysql·nginx·zabbix