zabbix 监控使用宏自动发现网卡并进行监控

本文介绍如何在Zabbix中配置自动发现网络接口并监控其进出流量的方法。主要内容包括建立探索规则、设置项目原型以及创建图形原型等步骤。

一、自动发现网卡并进行监控

首先新建一个模板

1、探索规则名称为Network interface discovery

键值为net.if.discovery

2、filter处要把宏给添加上{#IFNAME}  matches  @Network interfaces for discovery

3、新建项目原型

创建网卡进来的流量的监控项

Incoming network traffic on {#IFNAME}

zabbix代理

net.if.in[{#IFNAME}]

数字的无正负的

十进制

bps

自定倍数为8

储存值改为差量每秒速率


新建网卡出去的流量监控项

Outgoing network traffic on {#IFNAME}

net.if.out[{#IFNAME}]

数字的无正负的

十进制

bps

自定倍数为8

储存值改为差量每秒速率

新建图形原型

名称Network traffic on {#IFNAME}

项目里添加项目原型即可


创建完模板之后就可以把主机添加到模板中去了,就可以实现网卡的自动发现并进行监控了。

Zabbix 中,网络接口的自动发现功能通常用于监控主机上的网络流量和状态。默认情况下,Zabbix Agent 会报告所有网络接口的状态,包括未使用的接口。为了避免监控使用网卡,可以通过修改 Zabbix Agent 的配置文件来过滤掉这些接口。 ### 1. 修改 Zabbix Agent 配置以排除未使用网卡 Zabbix Agent 提供了一个参数 `EnableRemoteCommands`,可以启用远程命令执行,同时还可以结合 `UserParameter` 来定义自定义的网络接口发现脚本,从而过滤掉未使用网卡。 在 `/etc/zabbix/zabbix_agentd.conf` 文件中添加或修改以下配置: ```conf EnableRemoteCommands=1 UserParameter=network.if.discovery,/etc/zabbix/scripts/network_discovery.sh ``` 接下来,创建一个自定义的脚本 `/etc/zabbix/scripts/network_discovery.sh`,用于过滤未使用的网络接口。该脚本可以根据网络接口的流量状态来决定是否将其包含在自动发现中。 ```bash #!/bin/bash # network_discovery.sh - 自定义网络接口发现脚本,排除未使用网卡 # 获取所有网络接口,过滤掉未使用的接口(假设未使用的接口没有流量) # 这里使用 ifconfig 命令来检查接口的接收和发送数据包数量 interfaces=$(ifconfig | awk '/^[a-zA-Z0-9]+/{interface=$1} /RX packets: [0-9]+/{rx=$3} /TX packets: [0-9]+/{tx=$3} END {if (rx > 0 || tx > 0) print interface}') # 生成 Zabbix 自动发现所需的 JSON 格式输出 echo -n '{"data":[' first=1 for intf in $interfaces; do if [ $first -eq 1 ]; then first=0 else echo -n ',' fi echo -n "{\"{#IFNAME}\":\"$intf\"}" done echo ']}' ``` 确保脚本具有可执行权限: ```bash chmod +x /etc/zabbix/scripts/network_discovery.sh ``` ### 2. 配置 Zabbix Server 上的自动发现规则 在 Zabbix Web 界面中,配置自动发现规则以使用自定义的网络接口发现脚本。具体步骤如下: 1. 登录 Zabbix Web 界面。 2. 导航到 **Configuration > Discovery > Network discovery**。 3. 点击 **Create rule** 创建新的自动发现规则。 4. 在 **Discovery rule** 页面中,设置以下参数: - **Name**: 输入一个描述性的名称,例如 "Custom Network Interface Discovery"。 - **Discovery by proxy**: 选择适用的代理。 - **Discovery interval**: 设置发现间隔,例如 "1h"。 - **IP range**: 输入需要扫描的 IP 地址范围。 - **Check**: 选择 "Zabbix agent"。 - **Key**: 输入 `network.if.discovery`,这是在 Zabbix Agent 配置中定义的 `UserParameter`。 5. 在 **Actions** 页面中,创建一个动作以处理自动发现的主机和接口。 6. 在 **Operations** 页面中,定义如何处理新发现的主机,例如添加主机、链接模板等。 ### 3. 使用低级别自动发现(LLD)规则 Zabbix 还支持低级别自动发现(Low-Level Discovery, LLD),可以通过 Zabbix Agent 的 `UserParameter` 来动态发现网络接口。这种方法可以更灵活地控制哪些接口被发现和监控。 在 Zabbix Web 界面中,导航到 **Configuration > Hosts**,选择需要配置的主机,然后点击 **Discovery rules**。添加一个新的低级别自动发现规则,设置 Key 为 `network.if.discovery`,定义监控项原型、触发器原型等。 ### 4. 验证配置 完成上述配置后,可以通过以下命令在 Zabbix Agent 上手动测试自定义脚本的输出: ```bash /etc/zabbix/scripts/network_discovery.sh ``` 输出应为一个 JSON 格式的列表,包含所有已使用的网络接口。确保 Zabbix Server 能够正确获取这些信息,Zabbix Web 界面中看到过滤后的网络接口。 通过以上步骤,可以在 Zabbix 中调整网卡自动发现设置,避免识别未使用网卡,从而提高监控效率和准确性。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

linuxlsq

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

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

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

打赏作者

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

抵扣说明:

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

余额充值