使用Zabbix 实现通过 SSH 采集方式对交换机等网络设备进行数据采集

327 阅读2分钟

Zabbix 支持通过 SSH 采集方式对交换机等网络设备进行数据采集。以下是实现这一功能的步骤和注意事项:

1. 配置 Zabbix Server 支持 SSH

确保 Zabbix Server 安装了必要的库来支持 SSH 连接。如果从源代码编译 Zabbix,需要确保在编译时链接了 libssh2 库。

2. 创建 SSH 监控项

在 Zabbix Web 界面中,可以创建 SSH 类型的监控项来执行特定的命令并获取输出。以下是创建 SSH 监控项的步骤:

  1. 导航到“配置” > “主机” :选择需要监控的主机。

  2. 添加监控项:点击“监控项”选项卡,然后点击“创建监控项”。

  3. 设置监控项类型为“SSH 客户端”

    • 名称:自定义监控项名称。
    • 键值ssh.run[命令,设备IP,端口],其中命令是你希望在设备上执行的命令。
    • 认证方法:可以选择“密码”或“密钥文件”。
    • 用户名:SSH 用户名。
    • 密码:SSH 密码(如果使用密码认证)。
    • 私钥文件:SSH 私钥文件路径(如果使用密钥认证)。
    • 公钥文件:SSH 公钥文件路径(如果使用密钥认证)。
    • 已执行脚本:需要在设备上执行的命令。

3. 处理返回数据

通过 SSH 执行命令后,返回的数据通常是字符串。如果需要将这些数据转换为 Zabbix 可以处理的格式(如 JSON),可能需要使用 JavaScript 对监控项的值进行处理。

4. 自动发现

如果需要监控多个接口或模块,可以使用 Zabbix 的自动发现功能。自动发现可以帮助你动态地发现并监控设备上的多个接口。

5. 示例

假设你需要监控交换机的某个接口的电压信息,可以通过以下命令获取:

display interface gigabitethernet 0/0/1 | include Voltage

在 Zabbix 中,创建一个 SSH 监控项,键值为:

ssh.run[display interface gigabitethernet 0/0/1 | include Voltage,设备IP]

注意事项

  • 命令输出:某些命令的输出可能需要进一步处理才能被 Zabbix 正确解析。
  • 安全性:使用密钥认证比密码认证更安全,因此应优先使用密钥认证。

通过以上步骤,就可以使用 Zabbix 通过 SSH 采集方式对交换机的相关数据进行采集。

这种做法采集少量key时没有问题,但是如果量比较大, 这种方式是否会产生性能影响需要研究。比如zabbix是否会一个key创建一次ssh连接,还是会智能复用。 另外如果采集大量交换机,这种方式是否能自动的创建key,也需要确认。