zabbix作业
zabbix作业
总结zabbix6.0部署过程。
范例: 在ubuntu22.04 安装 Zabbix Server 6.0,(apache)
#官网下载
[root@ubuntu:/etc/zabbix/zabbix_agentd.d]#!wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@ubuntu:/etc/zabbix/zabbix_agentd.d]# dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@zabbix-server ~]# apt update
# 安装Zabbix server,Web前端,agent
[root@ubuntu:~]# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y
#安装数据库
[root@ubuntu:~]#apt install mysql-server
#创建初始数据库
# mysql -uroot -p
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;
#导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
#修改Zabbix Server 连接MySQL
[root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf
DBPassword=123456
#启动Zabbix server和agent进程
[root@ubuntu:~]# systemctl restart zabbix-server zabbix-agent apache2
[root@ubuntu:~]# systemctl enable --now zabbix-server zabbix-agent apache2
#浏览器访问
http://server_ip_or_name/zabbix
1.1.1中文及乱码
#安装中文包
[root@zabbix-server ~]#apt -y install language-pack-zh-hans
#sudo update-locale LANG=zh_CN.UTF-8
#/etc/profile 最后中添加
export LANG=zh_CN.utf8
export LC_CTYPE="zh_CN.utf8"
root@zabbix-server fonts]#pwd
/usr/share/zabbix/assets/fonts
#支持ttf和ttc后缀的字体文件
[root@zabbix-server fonts]#mv graphfont.ttf graphfont.ttf.bak
[root@zabbix-server fonts]#mv SIMLI.TTF graphfont.ttf
[root@zabbix-server fonts]#ls
graphfont.ttf graphfont.ttf.bak
1.2.安装 Zabbix agent2 包
[root@ubuntu2004 ~]# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@ubuntu2004~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@ubuntu2004 ~]#apt update
#安装agent2
[root@ubuntu2004 ~]#apt install zabbix-agent2
#修改配置
[root@ubuntu2004 ~]#vim /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.200
[root@ubuntu2004 ~]#systemctl restart zabbix-agent2.service
[root@ubuntu2004 ~]#ss -ntlp|grep zabbix
LISTEN 0 128 *:10050 *:* users:
(("zabbix_agent2",pid=1317,fd=8))
#注意: 后续还需要在Zabbix Server 添加此主机才能实现监控
1.3.安装 Zabbix agent 包
[root@ubuntu:~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@ubuntu:~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@ubuntu:~]# apt update
[root@ubuntu:~]#apt install zabbix-agent -y
[root@ubuntu:~]#cat /etc/zabbix/zabbix_agentd.conf | grep Server=10.0.0.200
Server=10.0.0.200
2. 总结 zabbix主动模式和被动模式简介及实现
2.1 主动模式配置
2.1.1 Zabbix agent 主动模式安装
[root@agent02:~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#apt update
[root@agent02:~]#apt install zabbix-agent -y
2.1.2修改Zabbix Agent 配置文件为主动模式
[root@agent02:~]#cat /etc/zabbix/zabbix_agentd.conf | grep -v '^#' | grep -v '^$'
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.200 #被动模式指向 Zabbix Server的IP或FQDN,默认模式,在主动模式此项可选的,建议配置,否则ZBX显示红色
ServerActive=10.0.0.200#主动模式指向 Zabbix Server的IP或FQDN
Hostname=10.0.0.202-web#当前主机的IP,此项必须和Zabbix Server中设置的主机名称相同,默认使用本机的主机名
Include=/etc/zabbix/zabbix_agentd.d/*.conf
2.1.3添加主机
主机名称与配置文件中的Hostname一致,模板选择主动模式模板

2.2被动模式配置
2.2.1 Zabbix agent 被动模式安装
[root@agent02:~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#apt update
[root@agent02:~]#apt install zabbix-agent -y
2.2.2修改Zabbix Agent 配置文件为被动模式
[root@agent02:~]#cat /etc/zabbix/zabbix_agentd.conf | grep '^[^#]'
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.200#zabbix server服务器的地址
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
2.2.3添加主机

总结自定义监控,监控win, nginx, 并基于短信/微信报警。
内置模板参考链接:
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates
使用现有模板和监控项监控主机流程
- 在被监控的主机上安装Zabbix Agent ,建议和 Zabbix Server 同一个版本 配置
- Zabbix agent的配置文件关键两项,并重启服务生效
Server = <Zabbix_Server_IP>
Hostname=<本机IP
- 在Zabbix Server 上使用 zabbix_get 工具测试是否正常连接被监控主机
- 在Zabbix Server 添加被监控主机
- 在Zabbix WEB 添加已有的模板至被监控的主机
- 在Zabbix WEB 观察是否有新数据生成
2.1.1 监控 Linux 主机
2.1.1.1 添加主机,并选择模板

2.1.1.3 确认成功

2.1.1.4 查看监控数据
201

202

2.1.1.5 修改自动发现的时间间隔
模板 ---> 选择模板 -->监控项 ---> 全选 --->批量更新 --->更新时间间隔 --->更新

2.1.2 监控 Nginx 服务
2.1.2.1 安装和配置nginx服务开启状态页
#Ubuntu系统
[root@ubuntu2204 ~]#apt update && apt -y install nginx
[root@ubuntu2204 ~]#vim /etc/nginx/sites-enabled/default
server {
.....
#添加下面三行,Zabbix默认监控/basic_status,此处为/status,需要和zabbix的模板定义的路径要保持一致
location /status {
stub_status;
}
......
}
[root@ubuntu2204 ~]#nginx -s reload
#红帽系统
[root@centos8 ~]#yum -y install nginx
[root@centos8 ~]#vim /etc/nginx/nginx.conf
http {
server {
location / {
}
#添加下面三行,Zabbix默认监控/basic_status,此处为/status,需要和zabbix的模板定义的路径要保持一致
location = /status {
stub_status;
}
}
}
[root@centos8 ~]#systemctl enable --now nginx 202同理

2.1.2.2 查看 nginx 内置模板和修改宏定义
使用内置模板: Template App Nginx by HTTP (不需要安装zabbix agent.但是添加主机时,选中任意接口皆可)
Template App Nginx by Zabbix agent (需要安装zabbix agent)


Zabbix 内置宏定义{$NGINX.STUB_STATUS.PATH}默认值为 basic_status

修改模板中的宏定义值status页面的URL

2.1.2.3 修改模板的时间间隔
为方便观察结果,修改模板中监控项的更新的时间间隔为10s

3.1.3.4 添加监控的主机并关联模板
使用内置模板: Template App Nginx by HTTP 或者Template App Nginx by Zabbix agent

2.1.2.5 查看监控数据

2.2 自定义模板 Templates 和监控项 Items
自定义模板和监控项实现过程
- 在Zabbix 被监控主机上安装Agent
- 在Zabbix 被监控主机上编写自定义监控项的取值的脚本,并添加执行权限
- 在Zabbix 被监控主机上的Agent配置文件中添加自定义监控项,指定 key 和 对 key 赋值的脚本及参数
- 在Zabbix Server 上使用 zabbix_get 工具测试是否能取到自定义监控项信息
- 在Zabbix Web 创建模板,在模板中添加自定义监控项
- 在Zabbix Web 将模板关联至被监控的主机
- 导出自定义模板生成一个对应的文件,可以在其它 Zabbix Server 导入复用
除了自定义模板,也可以从zabbix网站查找适合自已的模板
https://share.zabbix.com/
2.2.1 自定义监控项
系统内置的监控项如下
https://www.zabbix.com/documentation/6.0/zh/manual/config/items/itemtypes/zabbix_agent
https://www.zabbix.com/documentation/5.0/zh/manual/config/items/itemtypes/zabbix_agent
2.2.1.1 自定义监控项配置
监控项键值的格式
https://www.zabbix.com/documentation/6.0/zh/manual/config/items/item/key
https://www.zabbix.com/documentation/5.0/zh/manual/config/items/item/key
客户端可以自定义监控项,在Zabbix Agent 配置文件添加内容,格式如下
#cat /etc/zabbix/zabbix_agentd.conf
#cat /etc/zabbix/zabbix_agent2.conf
UserParameter=<key>,<shell command>
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#或者创建独立的自定义文件
#cat /etc/zabbix/zabbix_agentd.d/*.conf
#cat /etc/zabbix/zabbix_agent2.d/*.conf
#格式1:一般形式的自定义监控项
UserParameter=<key>,<shell command>
#格式2:参数形式的自定义监控项
UserParameter=<key>[*],<shell command> $1 $2 ....
说明:
- key 必须整个系统唯一。注意大小写是敏感的, Key名允许的字符如下
0-9a-zA-Z_-.
key 使用 [*] 用于定义该key接受括号内的参数。参数需在配置监控项时给出;参数禁止使用下列字符:
\ ’ ” ` * ? [ ] { } ~ $ ! & ; ( ) <>
- Command:命令用于生成key对应的值。
可以在命令中使用位置引用$1 … $9来引用监控项Key中的相应参数。Zabbix解析监控项Key的[]中 包含的参数,并相应地替换$1,…,$9。$0会替换为完整的原始命令(在对$0,…,$9执行替换之 前的命令)运行。不管位置参数($0,…,$9)是用双引号( “ )还是单引号( ’ )括起来,都会解析位置引用
**测试监控项 **
在Zabbix Agent 上执行测试
#不需要重启服务:
zabbix_agentd -t "在客户端定义的key名[arg1,arg2,...]"
zabbix_agent2 -t "在客户端定义的key名[arg1,arg2,...]"
在Zabbix Server上可以使用zabbix_get工具获取自定义监控项
#需要重启服务:systemctl restart zabbix-agent2.service
zabbix_get -s 客户端IP -p 10050 -k "在客户端定义的key名[arg1,arg2,...]"
注意:
如果用脚本实现首行必须加shebang机制
如果编译安装的程序,需要写程序的完整路径
3.2.1.3 自定义监控项配置案例
范例:取根文件系统的空间利用率
[root@ubuntu:/etc/zabbix/zabbix_agent2.d]#cat test.conf
UserParameter=root_filesystem_use,df|awk -F' +|%' '$7 == "/" {print $5 }'
#客户端测试
[root@ubuntu:/etc/zabbix/zabbix_agent2.d]#zabbix_agent2 -t root_filesystem_use
root_filesystem_use [s|15]
#重启服务后服务器端才能获取数据
[root@ubuntu:/etc/zabbix/zabbix_agent2.d]#systemctl restart zabbix-agent2.service
[root@ubuntu:~]#zabbix_get -s 10.0.0.201 -p 10050 -k "root_filesystem_use"
15
3.2.2 自定义模板
3.2.2.1 什么是模板
所谓模板,就是一些相关的监控项的集合,还可以在模板中包括图形,触发器等
为什么需要模板?
- 为每个主机单独添加相同的一组监控项比较麻烦,例如:100台主机增加一个tcp80的监控项
- 修改监控项比较麻烦,例如:100台服务器的监控项将80改成8080
- 删除每个主机的同一组监控项,例如:100台服务器的监控项删除
- 删除主机会连同主机的监控项一起被删除;不能复用监控项
所以可以使用模板的方式,来解决上述的一些问题
3.2.2.2 自定义模板使用流程
- 创建模板,模板必须属于某个主机组(一般属于主机组Templates)
- 在模板中创建监控项、图形、触发器
- 创建需要监控的主机,然后关联对应的模板
- 更改模板的监控项目,所以使用模板的都会自动更改
- 导出模板,后期可以至其他系统继续使用
3.3 监控项的值映射 Value Mapping
3.3.1 什么是值映射
为了接收到的值能更“人性化”的显示,可以通过值映射方式,将数值与字符串之间进行关系绑定
示例:
http 响应码 '200' → 'OK'
'403' → 'Forbidden'
'404' → 'Not Found'
3.3.2 创建值映射
Zabbix 6.0 以上版本配置
要定义一个值映射:
- 打开对应主机或者指定的模板配置表单
- 前往 值映射 标签
- 点击 增加 来增加一个新映射
- 点击一个已存在的值映射名字来进行编辑
范例: 将net.tcp.listen[80]内置的监控项为1时,映射为up,为0时,映射为down

3.3.3 使用值映射
添加监控项时,在查看值处选中上面创建的值映射名称

查看结果


3.8 邮件告警
3.8.1.1 邮箱开启 SMTP 功能
在邮箱上开启SMTP功能,利用此邮箱实现发送报警邮件
3.8.1.1.1 QQ邮箱开启邮件通知功能

获取授权码

3.8.1.1.2 网易邮箱开启邮件通知功能



3.8.1.2 创建报警媒介类型实现发信人功能
报警媒介类型是一种给运维工程师发送消息通知的渠道,即当zabbix的触发器触发一个事件后,怎么才 能把这个事件通过某些方式通知给运维工程师呢? 媒介类型就起到此作用,如果想要实现邮件告警功 能,那么对应的媒介类型就是配置用来发送告警邮件的发件人邮箱。
管理-->报警媒介类型-->创建报警媒介类型


必须添加消息模板Message Templates用于发送信息
注意:如果Message Templates没有添加,会提示No message defined for media type.错误
#可以修改两个消息模板
# 问题
主题: 告警: {EVENT.NAME}
告警主机:{HOST.NAME1} <br>
告警服务: {ITEM.NAME1} <br>
告警Key1: {ITEM.KEY1}:{ITEM.VALUE1}<br>
告警Key2: {ITEM.KEY2}:{ITEM.VALUE2}<br>
严重级别: {TRIGGER.SEVERITY}<br>
# 恢复 Problem Recovery
主题: 恢复: {EVENT.DURATION}: {EVENT.NAME}
恢复主机:{HOST.NAME1}<br>
恢复服务: {ITEM.NAME1}<br>
恢复Key1:{ITEM.KEY1}:{ITEM.VALUE1}<br>
恢复Key2: {ITEM.KEY2}:{ITEM.VALUE2}<br>
创建完成,可以看到下面信息
测试是否邮件正常,有时QQ邮箱不成功,可以尝试其它邮箱,如163邮箱

3.8.1.3 给指定用户添加报警媒介实现收件人功能
媒介类型创建好之后,还需要在每个zabbix账户里面添加相应的收件配置,比如邮件类型的媒介类型要 给zabbix账户添加邮箱,如果是微信类型的媒介类型那么就要在zabbix账户设置微信号,短信类型的媒 介类型那就得给zabbix账户设置手机号用于接收报警消息内容。 在zabbix用户中添加报警媒介时,需要指定告警信息的收件人的邮件地址

注意:下面图中一定要点击“更新”才能生效
3.8.1.4 创建和配置动作 动作可以实现当触发器被触发后可以执行哪些操作,一般可以是发送告警或执行命令 关于宏,即一些在Zabbix 中可以调用的变量 宏分为三种系统内置的宏变量: {MACRO} 用户自定义的宏变量: {$MACRO} 低级别自动发现宏变量: {#MACRO}
3.8.1.4.1 创建动作 指定动作即条件为事件的严重度为信息时就触发动作


步骤设为0时,表示会不停的持续发送警报,一般建议1到3表示执行三次。 步骤持续时间表示如果有后续步骤执行时的间隔时长,默认为0表示使用默认时间1h后才会执行后续步 骤,此值最低不能低于60s,最大不能超过604800s,可以设为1到5m(分钟)比较合适

3 总结 zabbix proxy主动及被动
3.1 Zabbix Proxy 工作原理
3.1.1 Zabbix Proxy 概述
zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据,然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy 可以代替zabbix server 收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担了zabbix server的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。
**官方文档: **
https://www.zabbix.com/documentation/6.0/zh/manual/distributed_monitoring
https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring
https://www.zabbix.com/documentation/4.0/zh/manual/distributed_monitoring
3.1.2 Zabbix Proxy 使用场景
- 监控远程区域设备,尤其是多机房和多个云环境时
- 监控网络不稳定区域,避免跨网段监控的告警不及时
- 当需要监控设备众多时,使用它来减轻 Zabbix Server 的压力
- 简化分布式监控的维护,无需各位创建 Zabbix Server,统一管理策略
5.1.6 Zabbix Proxy 的主动模式和被动模式
Zabbix Proxy 也分主动模式和被动模式,通信方式与zabbix server主动模式和被动模式一样
Zabbix Proxy的模式是从Zabbix Proxy 角度来说的
zabbix proxy在主动模式下要主动地向zabbix server周期性的申请获取zabbix agent的监控项信息,此模 式可以大幅降低Zabbix Server的压力,生产推荐使用
Zabbix Proxy在被动模式下要被动地等待zabbix server的连接,并接受zabbix server发送的监控项指 令,然后再由zabbix proxy向zabbix agent发起请求获取数据。
注意:
Zabbix Proxy 的主动模式和被动模式和Agent的主动被动模式没有关系
Zabbix Proxy 的主动模式要求ZabbixServer 需要有公网地址
Zabbix Proxy 的被动模式要求Zabbix Proxy 需要有公网地址
5.2 Zabbix Proxy 安装和配置(ubuntu22.04)

| 地址 | 角色 | 安装方法 |
|---|---|---|
| 10.0.0.200 | zabbix server | 包安装 |
| 10.0.0.101 | zabbix proxy passive | |
| 10.0.0.102 | zabbix proxy active | |
| 10.0.0.201 | zabbix agent | |
| 10.0.0.202 | zabbix agent |
5.2.3 主动模式配置
5.2.3.1 Zabbix agent 主动模式安装
[root@agent02:~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#apt update
[root@agent02:~]#apt install zabbix-agent -y
5.2.3.2修改Zabbix Agent 配置文件为主动模式
[root@agent02:~]#cat /etc/zabbix/zabbix_agentd.conf | grep -v '^#' | grep -v '^$'
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.200 #被动模式指向 Zabbix Server的IP或FQDN,默认模式,在主动模式此项可选的,建议配置,否则ZBX显示红色
ServerActive=10.0.0.200#主动模式指向 Zabbix Server的IP或FQDN
Hostname=10.0.0.202-web#当前主机的IP,此项必须和Zabbix Server中设置的主机名称相同,默认使用本机的主机名
Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.2.3.3添加主机
主机名称与配置文件中的Hostname一致,模板选择主动模式模板

查看数据

5.2.3.4 安装zabbix proxy和mysql-server
[root@proxy-active:~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@proxy-active:~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@proxy-active:~]#apt update -y
[root@proxy-active:~]#apt install zabbix-proxy-mysql zabbix-sql-scripts mysql-server -y
5.2.3.5 修改proxy配置文件
[root@proxy-active:~]#cat /etc/zabbix/zabbix_proxy.conf | grep -v '^#' | grep -v '^$'
ProxyMode=0#主动模式为0,被动模式为1,默认为0即主动模式
Server=10.0.0.200#指向Zabbix Server
Hostname=proxy-active#此名称必须和后面Web管理页的agent代理程序名称相同
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
5.2.3.6 修改Zabbix Agent 配置文件为主动模式的 Zabbix Proxy
[root@agent02:~]#grep '^[^#]' /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.200#(可选)指向Zabbix Server和Zabbix Proxy
ServerActive=10.0.0.102#指向Zabbix Proxy(必选)
Hostname=10.0.0.202-web#要标和Zabbix Server 添加主机的主机名称相同
Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.2.3.7 在 Zabbix Server 上添加代理 proxy

5.2.3.8 在Zabbix Server 上配置 Zabbix Agent 使用主动代理

5.2.3.9 查看数据

5.2.4 被动模式配置
5.2.4.1 Zabbix agent 被动模式安装
[root@agent02:~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@agent02:~]#apt update
[root@agent02:~]#apt install zabbix-agent -y
5.2.4.2修改Zabbix Agent 配置文件为被动模式
[root@agent02:~]#cat /etc/zabbix/zabbix_agentd.conf | grep '^[^#]'
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.200#zabbix server服务器的地址
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.2.4.3添加主机

5.2.4.4 安装zabbix proxy和mysql-server,被动模式
[root@proxy-active:~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@proxy-active:~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@proxy-active:~]#apt update -y
[root@proxy-active:~]#apt install zabbix-proxy-mysql zabbix-sql-scripts mysql-server -y
5.2.4.5 修改proxy配置文件
[root@proxy-passive:~]#cat /etc/zabbix/zabbix_proxy.conf | grep -v '^#' | grep -v '^$'
ProxyMode=1#被动模式为1
Server=10.0.0.200#指向zabbix server的地址
Hostname=Zabbix proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
5.2.4.6修改Zabbix Agent 配置文件为被动模式的 Zabbix Proxy
[root@agent02:~]#grep '^[^#]' /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.101#必须指向Proxy代理地址,否则Proxy无法监控,Zabbix Server地址则是可选项
Hostname=Zabbix server
#ServerActive=127.0.0.1 #注释此行
Include=/etc/zabbix/zabbix_agentd.d/*.conf
5.2.4.7 在 Zabbix Server 上添加代理 proxy

5.2.4.8 在Zabbix Server 上配置 Zabbix Agent 使用主动代理

5.2.4.9查看数据

4 Zabbix 高可用
4.1 实战案例:实现 Zabbix Server 6.0 的高可用

| ip | 角色 | |
|---|---|---|
| 10.0.0.200 | mysql | |
| zabbix server | ||
| 10.0.0.210 | zabbix slave | |
| 10.0.0.201 | zabbix agent | |
| 10.0.0.202 | zabbix agent |
8.2.1 在MySQL创建用户并授权
#如果原有的数据库用户无远程连接权限,需要进行授权
[root@zabbix-server ~]#vi /etc/mysql/mysql.conf.d/mysqld.cnf
#注释下面两行
#bind-address = 127.0.0.1
#mysqlx-bind-address = 127.0.0.1
[root@zabbix-server ~]#systemctl restart mysql
[root@zabbix-server ~]#mysql
mysql> create user zabbix@'10.0.0.%' identified by '123456';
mysql> grant all on zabbix.* to zabbix@'10.0.0.%';
8.2.2 两个Zabbix Server 节点都修改配置文件
#主节点配置
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
## 以下两个参数是HA配置的参数
# HANodeName设置为当前节点主机名或者IP地址,需保证同一集群中唯一
HANodeName=zabbix-master
# NodeAddress设置为主节点自已的IP:10051
NodeAddress=10.0.0.200:10051
#重启生效
systemctl restart zabbix-server.service
#备用节点安装Zabbix server,并修改配置,指向同一个数据库
vim /etc/zabbix/zabbix_server.conf
DBHost=10.0.0.200
DBName=zabbix
DBUser=zabbix
DBPassword=123456
## 以下两个参数是HA配置的参数
# HANodeName设置为当前节点主机名或者IP地址,需保证同一集群中唯一
HANodeName=zabbix-slave
# NodeAddress设置为备用节点自已的IP:10051
NodeAddress=10.0.0.210:10051
8.2.3 修改所有Agent的配置指向主和备用Zabbix Server(被动模式)
#配置Agent,Zabbix HA的方案需要在agent配置文件中将所有的Server节点地址同时都配置到Server和ServerActive中
[root@ubuntu2204 ~]#vim /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.200,10.0.0.210
#重启生效
[root@ubuntu2204 ~]#systemctl restart zabbix-agent2.service
8.2.4 查看状态
[root@ubuntu:~]#zabbix_server -R ha_status
Failover delay: 60 seconds
Cluster status:
# ID Name Address Status Last Access
1. cmb0jh0yp00012rjxclz2pxu5 NODE1 10.0.0.200:10051 active 5s
2. cmb0k66yr0001w3jx1m40yf8d NODE2 10.0.0.210:10051 standby 8s

浙公网安备 33010602011771号