注意
本文档适用于 Ceph 的开发版本。
SNMP 网关服务
SNMP 是一种广泛用于监控分布式系统和设备的协议。Ceph 的 SNMP 集成侧重于将警报从其 Prometheus Alertmanager 集群转发到网关守护程序。网关守护程序将警报转换为 SNMP 通知并将其发送到指定的 SNMP 管理平台。网关守护程序来自 snmp_notifier 项目,该项目提供 SNMP V2c 和 V3 支持(身份验证和加密)。
Ceph 的 SNMP 网关服务默认部署一个网关实例。您可以通过提供位置信息来增加此数量。但是请记住,如果您启用多个 SNMP 网关守护程序,您的 SNMP 管理平台将为同一事件接收到多个通知。
兼容性
下表显示了网关实现支持的 SNMP 版本
SNMP 版本 |
已支持 |
注意事项 |
|---|---|---|
V1 |
❌ |
不支持 |
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 仓库下载