Zabbix添加触发器(triggers)

本文介绍如何在Zabbix中创建触发器以监控交换机CPU或内存使用情况。通过设置触发条件并使用特定函数,当五次采集平均值超过阈值时会触发报警。文章包含实操步骤及参数调整技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### 创建 Zabbix 触发器以监控 TCP 监听端口数量 在 Zabbix 中创建触发器来监控 TCP 监听端口的数量并设置条件,当该数量超过 20 时发送告警,可以通过以下方式实现。 #### 配置自定义监控项 首先需要确保有一个能够获取当前服务器上所有监听状态的 TCP 端口号的监控项。如果尚未存在这样的监控项,则需手动添加: 1. **编写脚本** 编写一个简单的 Shell 脚本来统计处于 `LISTEN` 状态下的 TCP 连接数,并将其作为 Zabbix Agent 的自定义监控项返回值。 ```bash #!/bin/bash netstat -tuln | grep LISTEN | wc -l ``` 将上述脚本保存为 `/etc/zabbix/tcp_listen_count.sh` 并赋予可执行权限: ```bash chmod +x /etc/zabbix/tcp_listen_count.sh ``` 2. **更新 Zabbix Agent 配置文件** 修改 Zabbix Agent 的配置文件 (`/etc/zabbix/zabbix_agentd.conf`) 来注册新的 UserParameter 宏命令: ``` UserParameter=custom.tcp.listen.count,/etc/zabbix/tcp_listen_count.sh ``` 3. **重启 Zabbix Agent** 执行以下命令使更改生效: ```bash systemctl restart zabbix-agent ``` 4. **验证数据采集功能** 使用 `zabbix_get` 工具确认新指标是否正常工作: ```bash zabbix_get -s <目标主机IP> -k custom.tcp.listen.count ``` #### 设置触发器表达式 完成以上步骤后,在 Web UI 上继续操作如下内容: 1. 登录至 Zabbix Server 后台管理页面; 2. 导航到对应 Host 下找到 Items 页面新增刚才建立好的项目 (Key:`custom.tcp.listen.count`); 3. 接着转往 Triggers 列表页点击右上方按钮新建 Trigger;输入描述文字例如 “TCP Listen Port Count Exceeding Limit”,再设定其严重等级; 4. 构建具体逻辑判断语句 `{<Host>:custom.tcp.listen.count.last()}>20` 表达含义即最近一次收集到的结果数值超出阈值范围就会激活此事件通知机制[^1]。 通过这些流程即可达成预期效果——每当检测发现有过多开放的服务端口时便会自动触发声光提示或者邮件短信等形式提醒相关人员及时处理潜在风险隐患[^2]。 ```python def check_tcp_ports(host, threshold): """ Simulates checking the number of TCP ports that are listening on a given host. Args: host (str): The hostname or IP address to monitor. threshold (int): Maximum allowed count before triggering an alert. Returns: bool: Whether the current port count exceeds the specified limit. """ import subprocess try: result = int(subprocess.check_output(['zabbix_get', '-s', host, '-k', 'custom.tcp.listen.count'])) return result > threshold except Exception as e: print(f"Error occurred while fetching data from {host}: {e}") return False if __name__ == "__main__": HOST_TO_MONITOR = "<your_host_ip>" THRESHOLD_LIMIT = 20 is_exceeded = check_tcp_ports(HOST_TO_MONITOR, THRESHOLD_LIMIT) if is_exceeded: print("Alert! Number of TCP listen ports has exceeded the defined threshold.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值