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>

创建完成,可以看到下面信息

image-20250522153537368

测试是否邮件正常,有时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
posted @ 2025-05-25 19:13  你好,运维人  阅读(46)  评论(1)    收藏  举报