Zabbix实现故障自愈

一、简介

Zabbix agent 可以运行被动检查和主动检查。

在被动检查模式中 agent 应答数据请求。Zabbix server(或 proxy)询求数据,例如 CPU load,然后 Zabbix agent 返还结果。

主动检查处理过程将相对复杂。Agent 必须首先从 Zabbix sever 索取监控项列表以进行独立处理,然后会定期发送采集到的新值给 Zabbix server。

是否执行被动或主动检查是通过选择相应的监控项类型来配置的。 Zabbix agent 处理“Zabbix agent”或“Zabbix agent(active)”类型的监控项。

主动模式与被动模式:

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

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

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

二、监控模式配置

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

Server=10.2.58.64

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

远程命令:

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

需在Zabbix Agent 配置文件中开启:

AllowKey=system.run[*]
EnableRemoteCommands=1
LogRemoteCommands=1

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

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

vi /etc/sudoes
zabbix ALL=NOPASSWD: ALL

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

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

三、Server配置

配置一个 Nginx 自动恢复,使用 zabbix agent 远程命令实现 nginx 停止自动启动。 配置一个监控项,监控 Nginx 的 80 端口。并配置一个Trigger 端口不存在时告警。再配置一个 Action动作,条件为 Trigger 名称,端口 down 之后,执行脚本重启 Nginx。然后为 Action 配置 Operations,添加一个远程执行命令。为配置命令和需要执行的主机即可。

注:被动模式远程命令,是以 zabbix 用户执行,注意配置 sudo 及权限命令后可跟参数,参数可以使用 zabbix 的内置宏。AllowKey中也可限制运行执行的命令也就是所谓命令权限的黑白名单。

模式示例
模式描述匹配不匹配
*匹配所有可能的带或不带参数的键。任何
vfs.file.contents匹配不带参数的vfs.file.contentsvfs.file.contentsvfs.file.contents[/etc/passwd]
vfs.file.contents[]匹配带有空参数的vfs.file.contentsvfs.file.contents[]vfs.file.contents
vfs.file.contents[*]匹配 vfs.file.contents 和任何参数;不匹配没有方括号的 vfs.file.contentsvfs.file.contents[]
vfs.file.contents[/path/to/file]
vfs.file.contents
vfs.file.contents[/etc/passwd,*]匹配 vfs.file.contents 与第一个参数匹配 /etc/passwd 和所有其他参数具有任何值(也可以为空)。vfs .file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd,utf8]
vfs.file.contents[/etc/passwd]
vfs. file.contents[/var/log/zabbix_server.log]
vfs.file.contents[]
vfs.file.contents[*passwd*]匹配 vfs.file.contents,第一个参数匹配 *passwd* 而没有其他参数。vfs.file.contents[/etc /passwd]vfs.file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd, utf8]
vfs.file.contents[*passwd*,*]匹配 vfs.file.contents,只有第一个参数匹配 *passwd* 和所有后续参数具有任何值(也可以为空)。vfs.file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd, utf8]
vfs.file.contents[/etc/passwd]<br >vfs.file.contents[/tmp/test]
vfs.file.contents[/var/log/zabbix_server.log,*,abc]匹配 vfs.file.contents 与第一个参数匹配 /var/log/zabbix_server.log , 第三个参数匹配 'abc' 和任何(也可以为空)第二个参数。vfs.file.contents[/var/log/zabbix_server.log,,abc]
vfs.file.contents[/ var/log/zabbix_server.log,utf8,abc]
vfs.file.contents[/var/log/zabbix_server.log,,abc,def]
vfs.file.contents[/etc/passwd,utf8]匹配 vfs.file.contents,第一个参数匹配 /etc/passwd,第二个参数匹配 'utf8',没有其他参数。vfs. file.contents[/etc/passwd,utf8]vfs.file.contents[/etc/passwd,]
vfs.file.contents[/etc/passwd,utf16]
vfs.file.*匹配任何以 vfs.file. 开头且不带任何参数的键。vfs.file.contents
vfs.file.size
vfs.file.contents[]< br>vfs.file.size[/var/log/zabbix_server.log]
vfs.file.*[*]匹配任何以 vfs.file. 开头的键和任何参数。vfs.file.size.bytes[]
vfs.file.大小[/var/log/zabbix_server.log, utf8]
vfs.file.size.bytes
vfs.*.contents匹配任何以 vfs. 开头并以 .contents 结尾且不带任何参数的键。vfs.mount.point.file.contents
vfs..contents
vfs.contents

博主可能不能及时回答疑问,如技术问题欢迎加入交流。

博主具有丰富的模板资源和开发能力及项目落地管理经验分享欢迎加入交流

微信号:king_songax

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MichaelCoCoQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值