目录
一、zabbix自定义监控数据库
1、编写监控脚本
2、服务端测试
3、web页面配置
①创建自定义监控项
②创建触发器
③创建图形
④测试自定义监控是否成功
二、zabbix自动注册
1、什么是自动注册
2、环境准备
3、 zabbix客户端配置
4、web页面配置自动注册
5、验证自动注册
三、代理服务器部署
1、代理服务器作用
2、部署环境
3、代理服务器配置
4、客户端配置
5、web页面配置
①删除原环境
② 添加代理
③创建主机
④重启服务
6、验证结果
首先在被监控服务器的子配置文件路径中编写监控脚本
cd /etc/zabbix/zabbix_agent2.d
#进入agent2的子配置文件,本实验为yum安装为zabbix_zagent2客户端
vim mysql.conf
#创建一个新的mysql.conf子配置文件,名称无所谓但是结尾必须以.conf结尾,主配置文件中有规定,yum安装的主配置文件目录为 /etc/zabbix/zabbix_agent2.conf
#添加内容如下
UserParameter=lhj.user,netstat -antp | grep 3306 |wc -l
#UserParameter为键名,此键名不可随意更改主配置文件中有要求
#lhj.user为键值,键值可以自定义
#,后的为此键值的内容,可以是一个有标准输出的命令也可以直接写执行某个脚本,执行脚本注意权限问题
systemctl restart zabbix-agent2.service
#保存脚本内容后重启zabbix客户端
服务端测试是否可以监控到自定义键值的内容
服务端:
yum install -y zabbix-get
#安装zabbix主动获取命令
zabbix_get -s '192.168.30.12' -p 10050 -k 'lhj.user'
#-s表示指定客户端ip -p表示指定客户端端口 -k 指定测试那个键值,返回结果为脚本命令输出结果即可以进行监控
选择要监控的主机创建监控项,如何添加主机请看此博客分布式系统监控zabbix安装部署及使用_阿杰。159的博客-CSDN博客 在配置--主机中找到要监控的主机,点击监控项然后点击创建监控项
在配置--主机中找到要监控的主机,点击触发器然后点击创建触发器添加规则
点击监测--主机--选择被监控的主机--单击后选择图形找到自己创图形的名称,有数据则表示正常
zabbix 自动注册(对于 agent2 是主动模式)
zabbix agent2 会主动上报自己的信息,发给 zabbix server。
缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。
点击左边菜单栏【配置】中的【自动发现】,勾选发现规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
vim /etc/hosts
192.168.30.1 zbx-server
192.168.30.12 zbx-agent01
#添加hosts,注意要更改对应主机名且bash刷新使得主机名生效
vim /etc/zabbix/zabbix_agent2.conf
#修改客户端配置文件
HostnameItem=system.hostname
#139行,取消注释即可保存退出
grep -Ev "^#|^$" /etc/zabbix/zabbix_agent2.conf
#过滤出客户端配置文件不以#开头且不是空行的内容,内容展示如下
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.30.11
ServerActive=192.168.10.11
Hostname=zbx-agent01
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
登录界面点击配置--动作--左上角点击--选择自动注册动作--创建动作--添加完成动作名称和条件后--点击右上角操作--添加一个操作类型为主机名称的然后add--再添加一个操作类型为添加到主机群组,群组选择linux serversadd后--再添加一个与模板关联模板选择Template OS Linux by Zabbix agent--点击add后添加
服务端:
tail -f /var/log/zabbix/zabbix_server.log
#实时查看server日志
web页面点击配置--主机-然后刷新等待自动注册内容出现且zbx亮起
①分担 server 的集中式压力
②解决多机房之间的网络延时问题
在原有zabbix server和zabbix agent2上再添加一台代理服务器
主机名 | 服务 | ip地址 |
zbx-server | zabbix-server | 192.168.30.11 |
zbx-agent0 | zabbix-agent2 | 192.168.30.12 |
zbx-proxy | zabbix-proxy | 192.168.30.13 |
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-proxy
bash
#关闭防火墙selinux并修改主机名刷新
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#配置zabbix的yum源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#更改为国内阿里源
yum install -y zabbix-proxy-mysql zabbix-get
#设置zabbix的下载源,然后改为国内源,安装zabbix-proxy 和zabbix-get工具
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
#安装zabbix需要的数据库开启并设置开机自启
mysql_secure_installation
#初始化数据库设置密码为abc123,当前密码为空第一个直接回车,然后输入y回车,输入abc123回车,确认设置abc123位密码回车,然后一直y到最后
mysql -u root -pabc123
#登录数据
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
exit
#创建zabbix_proxy库并设置为utf-8模式,创建远程登录用户zabbix_proyx并设置密码为zabbix,刷新配置,退出数据库
rpm -ql zabbix-proxy-mysql
#查询数据库sql文件位置,/usr/share/doc/zabbix-proxy-mysql-5.0.33/schema.sql.gz一般为这个,若版本号不同则看最后的文件
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.33/schema.sql.gz | mysql -uroot -pabc123 zabbix_proxy
#将查到的数据文件导入zabbix_proxy库中
vim /etc/zabbix/zabbix_proxy.conf
#编辑zabbix配置文件
Server=192.168.10.22
#30行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy
#49行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix
#196行,去掉注释指定当前数据库 zabbix 用户的密码
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
#启动zabbix-proxy服务并设置开机自启
所有主机执行:
vim /etc/hosts
192.168.10.22 zbx-server
192.168.10.21 zbx-agent01
192.168.10.13 zbx-proxy
#添加hosts文件
客户端本身配置文件中服务器地址配置是zabbix server的地址,需要改为代理服务器的地址。
客户端执行:
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.30.13
#80行,指定 zabbix 代理服务器的 IP 地址
ServerActive=192.168.30.13
#120行,指定 zabbix 代理服务器的 IP 地址
点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
【agent代理程序名称】设置为 zbx-proxy
【系统代理程序模式】选择 主动式
【代理地址】设置为 192.168.30.13
点击 【添加】
在 Web 页面配置
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】设置成 zbx-agent01
【可见的名称】设置成 zbx-agent01
【群组】选择 Linux server
【Interfaces】的【IP地址】设置成 192.168.30.12
【由agent代理程序监测】选择 zbx-proxy
客户端:
systemctl restart zabbix-agent2
代理服务器:
systemctl restart zabbix-proxy
①点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常
②上图为正常,若不正常请在代理服务器查看日志报错: tail -f /var/log/zabbix/zabbix_proxy.log
图中报错cannot send proxy data to server at "192.168.30.11": proxy "zabbix-proxy" not found表示zabbix-proxy配置文件中写的主机名不存在,即配置文件中主机名和代理服务器本身的主机名不一致,更改一致即可