注意

本文档适用于 Ceph 的开发版本。

SNMP 网关服务

SNMP 是一种广泛用于监控分布式系统和设备的协议。Ceph 的 SNMP 集成侧重于将警报从其 Prometheus Alertmanager 集群转发到网关守护程序。网关守护程序将警报转换为 SNMP 通知并将其发送到指定的 SNMP 管理平台。网关守护程序来自 snmp_notifier 项目,该项目提供 SNMP V2c 和 V3 支持(身份验证和加密)。

Ceph 的 SNMP 网关服务默认部署一个网关实例。您可以通过提供位置信息来增加此数量。但是请记住,如果您启用多个 SNMP 网关守护程序,您的 SNMP 管理平台将为同一事件接收到多个通知。

兼容性

下表显示了网关实现支持的 SNMP 版本

SNMP 版本

已支持

注意事项

V1

不支持 snmp_notifier

V2c

V3 authNoPriv

使用用户名/密码身份验证,不带加密(NoPriv = 无隐私)

V3 authPriv

使用用户名/密码身份验证以及对 SNMP 管理平台的加密

部署 SNMP 网关

SNMP V2c 和 V3 都提供凭证支持。对于 V2c,这只是社区字符串 - 但对于 V3 环境,您必须提供额外的身份验证信息。在部署服务时,命令行不支持这些凭证。相反,您必须使用凭证文件(YAML 格式)创建服务,或在 YAML 文件中指定完整的服务定义。

命令格式

ceph orch apply snmp-gateway <snmp_version:V2c|V3> <destination> [<port:int>] [<engine_id>] [<auth_protocol: MD5|SHA>] [<privacy_protocol:DES|AES>] [<placement>] ...

使用注意事项

  • 您必须提供 --snmp-version 参数

  • --destination 参数的格式必须为 hostname:port(无默认值)

  • 您可以省略 --port。它默认为 9464

  • --engine-id 是设备的唯一标识符(十六进制),仅 SNMP v3 需要。建议值:8000C53F<fsid>,其中 fsid 来自您的集群,不带“-”符号

  • 对于 SNMP V3,--auth-protocol 设置默认为 SHA

  • 对于 SNMP V3,如果启用加密,您必须定义 --privacy-protocol

  • 必须提供 -i <filename> 将密钥/密码传递给协调器

部署示例

SNMP V2c

这是 V2c 的示例,展示了 CLI 和基于服务的部署

ceph orch apply snmp-gateway --port 9464 --snmp_version=V2c --destination=192.168.122.73:162 -i ./snmp_creds.yaml

包含以下内容的凭证文件:

---
snmp_community: public

或者,您可以为网关创建 YAML 定义并从单个文件应用它

ceph orch apply -i snmp-gateway.yml

文件包含以下配置

service_type: snmp-gateway
service_name: snmp-gateway
placement:
  count: 1
spec:
  credentials:
    snmp_community: public
  port: 9464
  snmp_destination: 192.168.122.73:162
  snmp_version: V2c

SNMP V3 (authNoPriv)

部署仅支持 SNMP V3 身份验证的 snmp-gateway 服务如下所示

ceph orch apply snmp-gateway --snmp-version=V3 --engine-id=800C53F000000 --destination=192.168.122.1:162 -i ./snmpv3_creds.yml

具有以下形式的凭证文件

---
snmp_v3_auth_username: myuser
snmp_v3_auth_password: mypassword

或者具有以下形式的 ceph orch 服务配置文件

service_type: snmp-gateway
service_name: snmp-gateway
placement:
  count: 1
spec:
  credentials:
    snmp_v3_auth_password: mypassword
    snmp_v3_auth_username: myuser
  engine_id: 800C53F000000
  port: 9464
  snmp_destination: 192.168.122.1:162
  snmp_version: V3

SNMP V3 (authPriv)

要定义实现身份验证和隐私(加密)的 SNMP V3 网关服务,请提供两个附加值

ceph orch apply snmp-gateway --snmp-version=V3 --engine-id=800C53F000000 --destination=192.168.122.1:162 --privacy-protocol=AES -i ./snmpv3_creds.yml

具有以下形式的凭证文件

---
snmp_v3_auth_username: myuser
snmp_v3_auth_password: mypassword
snmp_v3_priv_password: mysecret

注意

凭证存储在主机上,仅限于 root 用户,并作为环境变量文件 (--env-file) 传递给 snmp_notifier 守护程序,以限制暴露。

AlertManager 集成

当部署或更新 SNMP 网关服务时,Prometheus Alertmanager 配置会自动更新,以将任何带有 OID 标签的警报转发到 SNMP 网关守护程序进行处理。

实现 MIB

为了理解 SNMP 通知和陷阱,您需要将 MIB 应用到您的 SNMP 管理平台。MIB (CEPH-MIB.txt) 可以从主要的 Ceph GitHub 仓库下载

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入