4.3. 通过 SNMP 监视存储群集对象

可以通过简单网络管理协议 (SNMP) 监视群集对象。实施遵循与标准 SNMP 上下文中的数据相同的管理信息结构 (SMI) 规则:所有对象都在树中组织;每个对象标识符 (OID) 是一系列对应于树节点的整数,并由点分隔。

一般信息:

  • 具有可以监视的所有对象的根子树的 OID 是 1.3.6.1.4.1.8072.161.1。

  • 需要 VSTORAGE-MIB.txt 信息基础文件来监视对象。可以在 https://<admin_panel_IP>:8888/api/v2/snmp/mibs/ 上下载文件。

以下子节描述了启用和使用 SNMP 监视群集对象的方法。

4.3.1. 启用 SNMP 访问

要监视群集对象,请在节点上启用 SNMP 访问。在管理面板中执行以下操作:

  1. 在管理节点上打开 UDP 端口 161,如下所述:

    1. 基础架构 > 网络屏幕上,然后单击编辑

    2. 通过勾选相应的复选框,将 SNMP 流量类型添加到公共网络。

    3. 单击保存以应用更改。

  2. 转至设置 > 高级设置 > SNMP 选项卡,选中在管理节点上启用 SNMP。将启用网络管理系统(SNMP 监视器),这将给予您通过 SNMP 协议访问群集的权限。

    ../_images/snmp1_ac.png
  3. 单击提供的链接以下载 MIB 文件,然后在 SNMP 监视器中设置它。

  4. (可选)发送 SNMP 陷阱到 SNMP 监视器,如下所示:

    1. 选择将 SNMP 陷阱发送至此网络管理系统

    2. 指定网络管理系统的 IP 地址端口社区

      默认情况下,snmptrapd 监控程序使用端口 162。默认社区是公用。

    3. 如果需要,则单击发送测试陷阱以测试服务。

  5. 单击保存以应用更改。

4.3.2. 通过 SNMP 访问存储群集信息对象

可以使用所选的 SNMP 工具(例如免费的适用于 Linux 的 Net-SNMP 套件)访问存储群集信息对象。

要通过管理面板获取存储群集信息,请将 MIB 文件放置到 /usr/share/snmp/mibs 并运行 snmpwalk 命令。例如:

# snmpwalk  -M /usr/share/snmp/mibs -m VSTORAGE-MIB -v 2c -c public localhost:161 VSTORAGE-MIB:cluster

典型输出可能如下所示:

VSTORAGE-MIB::clusterName.0 = STRING: "cluster1"
VSTORAGE-MIB::healthStatus.0 = STRING: "healthy"
VSTORAGE-MIB::usedLogicalSpace.0 = Counter64: 173732322
VSTORAGE-MIB::totalLogicalSpace.0 = Counter64: 1337665179648
VSTORAGE-MIB::freeLogicalSpace.0 = Counter64: 1318963253248
VSTORAGE-MIB::licenseStatus.0 = STRING: "unknown"
VSTORAGE-MIB::licenseCapacity.0 = Counter64: 1099511627776
VSTORAGE-MIB::licenseExpirationStatus.0 = STRING: "None"
VSTORAGE-MIB::ioReadOpS.0 = Counter64: 0
VSTORAGE-MIB::ioWriteOpS.0 = Counter64: 0
VSTORAGE-MIB::ioReads.0 = Counter64: 0
VSTORAGE-MIB::ioWrites.0 = Counter64: 0
VSTORAGE-MIB::csActive.0 = Counter64: 11
VSTORAGE-MIB::csTotal.0 = Counter64: 11
VSTORAGE-MIB::mdsAvail.0 = Counter64: 4
VSTORAGE-MIB::mdsTotal.0 = Counter64: 4
<...>

4.3.2.1. 侦听 SNMP 陷阱

要开始侦听 SNMP 陷阱,请执行以下操作:

  1. 配置 snmptrapd 监控程序以记录 SNMP 陷阱,允许它们触发可执行操作,并将数据重新发送到网络。要执行此操作,请在 /etc/snmp/snmptrapd.conf 文件中取消注释以下公用社区字符串:

    authCommunity log,execute,net public
    
  2. 配置防火墙以允许 UDP 端口 162 上的入站流量。

  3. 下载 VSTORAGE-MIB.txt 文件并将其放置到 /usr/share/snmp/mibs 目录中。

  4. 启动监控程序并指定 MIB 文件:

    # snmptrapd -M /usr/share/snmp/mibs -m VSTORAGE-MIB -n -f
    

    默认情况下,陷阱将记录到 /var/log/messages。可以使用 -Lf <path> 选项将它们重定向到自定义日志文件。例如:

    # snmptrapd -M /usr/share/snmp/mibs -m VSTORAGE-MIB -n -f -Lf /tmp/traps.log
    
  5. 从管理面板中的设置 > 高级设置 > SNMP 选项卡发送测试陷阱。

  6. 查看日志文件:

    # tail -f /tmp/traps.log
    2019-10-14 12:51:50 node001.vstoragedomain [UDP: [10.94.80.22]:40029->\
    [10.94.80.22]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: \
    (111150521) 12 days, 20:45:05.21#011SNMPv2-MIB::snmpTrapOID.0 = OID: \
    NET-SNMP-MIB::netSnmp.161.3.100#011NET-SNMP-MIB::netSnmp.161.2.1 = STRING: "TestTrap"\
    #011NET-SNMP-MIB::netSnmp.161.2.2 = STRING: "It is the test trap from VStorage"\
    #011NET-SNMP-MIB::netSnmp.161.2.3 = Counter64: 0
    

4.3.3. 使用 Zabbix 监视存储群集

要在 Zabbix 中配置群集监视,请执行以下操作:

  1. 设置 > 高级设置 > SNMP 选项卡上,单击提供的链接以为 Zabbix 下载模板。

    注解

    该模板与 Zabbix 3.x 兼容。

  2. 在 Zabbix 中,单击配置 > 模板 > 导入浏览

    ../_images/zabbix1.png
  3. 导航到模板、选择它并单击导入

  4. 单击配置 > 主机 > 创建主机

    ../_images/zabbix2.png
  5. 主机选项卡上,执行以下操作:

    1. 在 Zabbix 中指定管理节点的主机名及其可见名称

    2. 新建组字段中指定 vstorage

    3. 删除代理程序接口部分。

    4. 添加 SNMP 接口部分并指定管理节点 IP 地址。

  6. 模板选项卡上,单击链接新模板字段旁边的选择

  7. Zabbix 服务器:模板窗口中,选中模板 VStorageSNMP 模板,然后单击选择

    ../_images/zabbix3.png
  8. 回到模板选项卡上,在链接新模板部分中单击添加链接。VStorageSNMP 模板将显示在链接的模板组中。

    ../_images/zabbix4.png
  9. 配置了主机并添加了其模板后,单击添加按钮。

    ../_images/zabbix5.png

在几分钟内,配置> 主机屏幕上的可用性列中群集的 SNMP标签将变为绿色。

../_images/zabbix6.png

要监视群集的参数,请打开监视 > 最新的数据屏幕,将过滤器的主机组设置为 vstorage,然后单击应用

可以在配置 > 主机 > <cluster> > 选项卡上以及在监视 > 屏幕选项卡的工作区中创建性能图表。

4.3.4. 存储群集对象和陷阱

可以监视的与群集相关的对象:

VSTORAGE-MIB:cluster

一般群集信息。

VSTORAGE-MIB:csStatTable

区块服务器统计数据表。

VSTORAGE-MIB:mdsStatTable

元数据服务器统计数据表。

VSTORAGE-MIB::clusterName

群集名称。

VSTORAGE-MIB::healthStatus

群集运行状况。

VSTORAGE-MIB::usedLogicalSpace

由所有数据区块及其副本占用的空间,再加上由存储在群集节点磁盘上的任意其他数据占用的空间。

VSTORAGE-MIB::totalLogicalSpace

所有群集节点磁盘上的总空间。

VSTORAGE-MIB::freeLogicalSpace

所有群集节点磁盘上的未使用空间。

VSTORAGE-MIB::licenseStatus

许可状态。

VSTORAGE-MIB::licenseCapacity

由许可定义为可用的最大磁盘空间。

VSTORAGE-MIB::licenseExpirationStatus

许可过期状态。

VSTORAGE-MIB::ioReadOpS

当前读取速度(每秒操作数)。

VSTORAGE-MIB::ioWriteOpS

当前写入速度(每秒操作数)。

VSTORAGE-MIB::ioReads

当前读取速度(每秒字节数)。

VSTORAGE-MIB::ioWrites

当前写入速度(每秒字节数)。

VSTORAGE-MIB::csActive

活动区块服务器的数量。

VSTORAGE-MIB::csTotal

区块服务器的总数。

VSTORAGE-MIB::mdsAvail

运行的元数据服务器的数量。

VSTORAGE-MIB::mdsTotal

元数据服务器的总数。

VSTORAGE-MIB::s3OsAvail

运行的 S3 对象服务器的数量。

VSTORAGE-MIB::s3OsTotal

S3 对象服务器的总数。

VSTORAGE-MIB::s3NsAvail

运行的 S3 名称服务器的数量。

VSTORAGE-MIB::s3NsTotal

S3 名称服务器的总数。

VSTORAGE-MIB::s3GwAvail

运行的 S3 网关的数量。

VSTORAGE-MIB::s3GwTotal

S3 网关的总数。

可以监视的与 CS 相关的对象:

VSTORAGE-MIB::csId

区块服务器标识符。

VSTORAGE-MIB::csStatus

当前区块服务器状态。

VSTORAGE-MIB::csIoReadOpS

区块服务器的当前读取速度(每秒操作数)。

VSTORAGE-MIB::csIoWriteOpS

区块服务器的当前写入速度(每秒操作数)。

VSTORAGE-MIB::csIoWait

等待 I/O 操作所花费时间的百分比。包括等待同步所花费的时间。

VSTORAGE-MIB::csIoReadS

区块服务器的当前读取速度(每秒字节数)。

VSTORAGE-MIB::csIoWriteS

区块服务器的当前写入速度(每秒字节数)。

可以监视的与 MDS 相关的对象:

VSTORAGE-MIB::mdsId

元数据服务器标识符。

VSTORAGE-MIB::mdsStatus

当前元数据服务器状态。

VSTORAGE-MIB::mdsMemUsage

由元数据服务器使用的内存量。

VSTORAGE-MIB::mdsCpuUsage

由元数据服务器使用的 CPU 容量的百分比。

VSTORAGE-MIB::mdsUpTime

元数据服务器启动以来的时间。

由指定的警告触发的 SNMP 陷阱:

license expired

许可已过期。

license_isnot_loaded

许可未载入。

too few free space

群集在逻辑空间外运行。

too_few_free_phys_space

群集在物理空间外运行。

offline node

群集节点脱机。

too few nodes

留下的群集节点太少。

too few mdses

留下的 MDS 太少。

too_much_mdses

节点上的 MDS 多于一个。

too few cses

留下的 CS 太少。

failed mds

MDS 服务已失败。

failed cs

CS 服务已失败。

cses_on_single_tier_have_different_journalling_settings

CS 有错误的日志设置。

cses_on_single_tier_have_different_encryption_settings

CS 有错误的加密设置。

smart_failed

磁盘有失败的 S.M.A.R.T. 检查。

disk_failed

磁盘已失败。

too_few_root_space

节点上的根分区空间不足。

too_few_space_on_metadata_disk

MDS 磁盘空间不足。

low_level_network_settings

网络接口缺少重要功能。

half_duplex

网络接口不是全双工模式。

low_speed

网络接口的速度低于 1 Gbps。

undefined_speed

网络接口有未定义的速度。

network link

网络接口的配置错误。

abgw_cert_expired

Backup Gateway 证书已到期或即将到期。

iscsi_redundancy_disk

为 iSCSI LUN 设置的故障域未使其高度可用。

s3_redundancy_disk

为 S3 群集设置的故障域未使其高度可用。

software_updates

存在用于节点的软件更新。

no_internet_connection

节点上无 Internet 连接。

disk_write_cache_disabled

磁盘写入缓存已禁用。

disk_write_cache_status_unknown

磁盘写入缓存有未知状态。

compute_unavailable

计算群集已失败。

oom_happened

OOM killer 已触发。

kernel_not_current

内核在节点上已过时。

no_ha

管理面板的高可用性未配置。

time_not_synced

节点上的时间未同步。

iscsi_upgrade_failed

iSCSI 主要升级已失败。

backend_backup_is_too_old

上次管理节点备份已失败、不存在或过旧。

other

其他警告。

spla_push_stats_failed

无法推送空间使用情况统计数据。

spla_license_load_failed

无法应用 SPLA 许可

spla_get_space_usage_failed

无法获取空间使用情况。

要查看生成的警告的完整列表及其描述,请参考 查看警告