RSS

Zabbix Agent主动被动模式配置-2

长久以来对于安装 Zabbix Agent,文章介绍基本都是需要修改一下几个地方

Server=172.16.66.20
ServerActive=172.16.66.20
Hostname=node201

启动 Zabbix Agent 即可监控。对于具体为什么是这样配置,这样配置是主动模式还是被动模式?很少提起。本文主要介绍 Zabbxi Agent 的几个关键配置。

主动模式 VS 被动模式

Zabbix Agent 这二种模式,用通俗易懂的讲:
主动模式:Zabbix Agent 启动之后,把采集的数据主动发给 Zabbix Server 或者 Zabbix Porxy。
被动模式:Zabbix Server 或者 Zabbix Proxy 被动找 Zabbix Agent 拿监控数据。

这二种模式在使用过程中有所不同,各有优势,主要有以下区别

模式 Server 压力 远程命令 日志监控
主动 不支持 支持
被动 支持 不支持

鉴于以上不同,根据实际需求,选择对应模式。

被动模式配置

要配置被动模式,只需要配置以下几个参数即可

Server=172.16.66.20

Server 配置为 Zabbix Server 或 Zabbix proxy 的地址,这里可以配置域名/ip,如需配置多个地址,多地址之间用英文逗号隔开即可,如:192.168.1.100,10.10.1.100。这里可以理解为 ACL 功能,即允许那些 Zabbix Server 及 Zabbix Proxy 访问 Zabbix Agent,因此可以配置网段和配置成所有 IP,如:192.168.1.0/24 或 0.0.0.0/0,纯被动模式下只需要配置 Server 即可 Hostname 不配置。
配置好之后重启 Zabbix Agent 查看进程如下

主机配置

被动模式配置之后,启动 zabbix agent,需要在 Zabbix Server 添加主机

Host name 可随意配置,建议按照一定规则,不与其他机器重复即可
Visible name 配置为可见名称,这里可配置为中文,主机列表会显示此名称
Agent interfaces agent 所在机器的 IP 和端口,这里一定要配置成 agent 真实的 IP,默认 zabbix agent 端口为 10050,可以通过配置文件进行修改

模版配置

zabbix 自带模版大多数为被动模式,因此直接关联模版即可进行监控。

远程命令

与主动模式不同,被动模式支持 zabbix agent 执行远程命令。在出现告警后,发送邮件的同时,可以配置远程命令实现故障“自愈”,如重启服务等

Zabbix Agent 配置

在 Zabbix Agent 配置文件中开启

EnableRemoteCommands=1
LogRemoteCommands=1

EnableRemoteCommands 配置开启远程命令
LogRemoteCommands 在日志中记录远程命令
配置之后重启 Zabbix Agent

系统配置

由于 zabbix 执行命令默认是以zabbix 系统用户执行,因此需要在操作系统上为 zabbix 用户配置 sudo。
输入

visudo

添加

zabbix ALL=NOPASSWD: ALL

配置为 ALL,这里也可以配置成具体的命令

zabbix ALL=NOPASSWD: /etc/init.d/nginx restart

Zabbix Server 配置

以下举例配置一个 Nginx 自动恢复,使用 zabbix agent 远程命令实现 nginx 停止自动启动。
配置如下 Item,监控 Nginx 的 80 端口

并配置一个 Trigger 端口不存在时告警

配置一个 Action,条件为 Trigger 名称,端口 down 之后,执行脚本重启 Nginx

为 Action 配置 Operations,添加一个远程执行命令

配置命令和执行主机

配置好之后,查看下目前 Nginx 的状态为启动状态

启动时间为 14:27
手动停止 Nginx 服务,一分钟之后在 Zabbix Problems 查看

看到 44 分故障 45 分已经恢复
查看历史数据

可以看到 44 分 Nginx 端口为 down,45 分恢复正常
查看 Nginx 状态

Nginx 运行正常,启动时间为 44 分
查看 Zabbix Agent 日志

可以看到 44 分执行了脚本,初步实现了简单故障的“自愈”。

可以看到 44 分执行了脚本,初步实现了简单故障的“自愈”。

注意事项

被动模式远程命令,是以 zabbix 用户执行,注意配置 sudo 及权限,命令后可跟参数,参数可以使用 zabbix 的内置宏。

如果觉得我的文章对您有用,请关注我的公众号,有更多技术干货!

微信