目录
前言
1. 动作的基本概念
2. 动作的常见用途
一. 环境准备
二. 创建动作
三. 添加媒介
前言
在 Zabbix 中,动作(Actions)用于在特定事件发生时执行一系列预定义的操作,比如发送通知、执行脚本等。动作通常与触发器(Triggers)结合使用,当触发器条件满足时触发动作。以下是 Zabbix 中动作的总结
1. 动作的基本概念
动作由以下几个部分组成:
- 条件(Conditions): 用于定义触发动作的条件,例如主机组、触发器严重性等。
- 操作(Operations): 定义在条件满足时执行的操作,例如发送通知、执行远程命令等。
- 恢复操作(Recovery operations): 定义在问题解决后执行的操作。
- 通知(Notifications): 发送给用户或用户组的消息。
2. 动作的常见用途
- 通知: 发送电子邮件、短信、即时消息等。
- 自动化操作: 执行远程命令或脚本,例如重启服务、清理日志等。
- 集成: 与其他系统进行集成,例如调用 API、触发 Webhook 等。
通过配置动作,Zabbix 可以在监控到问题时自动采取相应的措施,从而提高监控系统的响应效率和自动化程度。
一. 环境准备
本实验使用两台虚拟机
主机名 | IP | C/S | 系统版本 | 软件版本 |
zabbix | 192.168.226.28 | Server端 | Rocky_linux9.4 | zabbix6.4 |
web1 | 192.168.226.29 | Agent端 | Rocky_linux9.4 | zabbix-agent6.4 |
本博文基于之前做好的环境下载与配置,然后再进行的本篇的动作与媒介实验,安装步骤参考下述博文。
Zabbix6.4安装教程-CSDN博客
Agent下载安装步骤-CSDN博客
二. 创建动作
首先我们添加一个触发器用来实验
在Agent端下载一个nginx并启动
yum install -y nginx
systemctl enable --now nginx
l现在来到监控页面添加一个监控80端口的触发器
键值代码:
net.tcp.listen[80]
然后创建一个触发器
现在去创建脚本,在6.4版本中需要先创建脚本再添加动作
在 Zabbix 中,当触发器触发并执行动作时,执行脚本或命令的用户通常是运行 Zabbix Server 或 Zabbix Agent 的系统服务用户。默认情况下,这个用户是 zabbix
那么我们需要到Agent端去授权给zabbix
[root@web1 ~]# visudo
zabbix ALL=(ALL) NOPASSWD: ALL
开启Agent的配置文件中的远程命令
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
LogRemoteCommands=1
重启Agent服务
[root@web1 ~]# systemctl restart zabbix-agent
现在去停止nginx服务
[root@web1 ~]# systemctl stop nginx
[root@web1 ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:10050 0.0.0.0:* users:(("zabbix_agentd",pid=2178,fd=4),("zabbix_agentd",pid=2177,fd=4),("zabbix_agentd",pid=2176,fd=4),("zabbix_agentd",pid=2175,fd=4),("zabbix_agentd",pid=2174,fd=4),("zabbix_agentd",pid=2173,fd=4))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=825,fd=3))
LISTEN 0 4096 [::]:10050 [::]:* users:(("zabbix_agentd",pid=2178,fd=5),("zabbix_agentd",pid=2177,fd=5),("zabbix_agentd",pid=2176,fd=5),("zabbix_agentd",pid=2175,fd=5),("zabbix_agentd",pid=2174,fd=5),("zabbix_agentd",pid=2173,fd=5))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=825,fd=4))
回到监控页面观察,会有略微延迟,稍微等待会。
[root@web1 ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:10050 0.0.0.0:* users:(("zabbix_agentd",pid=3878,fd=4),("zabbix_agentd",pid=3877,fd=4),("zabbix_agentd",pid=3876,fd=4),("zabbix_agentd",pid=3875,fd=4),("zabbix_agentd",pid=3874,fd=4),("zabbix_agentd",pid=3873,fd=4))
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3923,fd=6),("nginx",pid=3922,fd=6),("nginx",pid=3921,fd=6))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=825,fd=3))
LISTEN 0 4096 [::]:10050 [::]:* users:(("zabbix_agentd",pid=3878,fd=5),("zabbix_agentd",pid=3877,fd=5),("zabbix_agentd",pid=3876,fd=5),("zabbix_agentd",pid=3875,fd=5),("zabbix_agentd",pid=3874,fd=5),("zabbix_agentd",pid=3873,fd=5))
LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=3923,fd=7),("nginx",pid=3922,fd=7),("nginx",pid=3921,fd=7))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=825,fd=4))
三. 添加媒介
现在就开启邮箱配置成功了
再给用户配置一个邮箱
现在去动作中添加邮箱报警动作
现在去停止nginx服务测试邮件是否发送。
[root@web1 ~]# systemctl stop nginx
[root@web1 ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:10050 0.0.0.0:* users:(("zabbix_agentd",pid=3878,fd=4),("zabbix_agentd",pid=3877,fd=4),("zabbix_agentd",pid=3876,fd=4),("zabbix_agentd",pid=3875,fd=4),("zabbix_agentd",pid=3874,fd=4),("zabbix_agentd",pid=3873,fd=4))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=825,fd=3))
LISTEN 0 4096 [::]:10050 [::]:* users:(("zabbix_agentd",pid=3878,fd=5),("zabbix_agentd",pid=3877,fd=5),("zabbix_agentd",pid=3876,fd=5),("zabbix_agentd",pid=3875,fd=5),("zabbix_agentd",pid=3874,fd=5),("zabbix_agentd",pid=3873,fd=5))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=825,fd=4))
到此就完成了邮件报警。