Skip to main content

使用 SNMP 进行监视

GitHub Enterprise 通过 SNMP 提供关于磁盘使用情况、CPU 利用率和内存使用情况等方面的数据。

SNMP 是一种用于通过网络监视设备的公共标准。 强烈建议启用 SNMP,以便监视 your GitHub Enterprise Server instance 的运行状况,并了解何时向主机增加更多内存、存储空间或处理器能力。

GitHub Enterprise 具有标准 SNMP 安装,因此你可以利用可用于 Nagios 或任何其他监视系统的多种插件

配置 SNMP v2c

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“管理控制台”。 左侧边栏中的 管理控制台 选项卡 1. 在左侧边栏中,单击“监视”。 “监视”选项卡 1. 在“监视”下,选择“启用 SNMP”。 启用 SNMP 的按钮

  3. 在“社区字符串”字段中,输入新的社区字符串。 如果留空,则默认为 public用于添加社区字符串的字段 1. 在左侧边栏下,单击“保存设置”。

    管理控制台 中的“保存设置”按钮的屏幕截图

    注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  4. 等待配置运行完毕。

    配置实例

  5. 要测试 SNMP 配置,请在网络中支持 SNMP 的单独工作站上运行以下命令:

    # community-string is your community string
    # hostname is the IP or domain of your Enterprise instance
    $ snmpget -v 2c -c community-string -O e hostname hrSystemDate.0

这应该返回 your GitHub Enterprise Server instance 主机上的系统时间。

基于用户的安全性

如果您启用 SNMP v3,则可以通过用户安全模型 (USM) 充分利用提升的基于用户的安全性。 对于每个唯一的用户,您可以指定一个安全等级:

  • noAuthNoPriv:此安全等级不提供任何身份验证和隐私保护。
  • authNoPriv:此安全级别提供身份验证,但不提供隐私保护。 要查询设备,您需要用户名和密码(长度必须至少为八个字符)。 与 SNMPv2 相似,发送的信息不会进行加密。 身份验证协议可以是 MD5 或 SHA,默认为 SHA。
  • authPriv:此安全级别提供身份验证和隐私保护。 要求进行身份验证(包含一个长度至少为八个字符的身份验证密码),并且会对响应进行加密。 不需要隐私密码,但如果提供隐私密码,其长度必须至少为八个字符。 如果不提供隐私密码,将使用身份验证密码。 隐私协议可以是 DES 或 AES,默认为 AES。

配置 SNMP v3 的用户

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“管理控制台”。 左侧边栏中的 管理控制台 选项卡 1. 在左侧边栏中,单击“监视”。 “监视”选项卡 1. 在“监视”下,选择“启用 SNMP”。 启用 SNMP 的按钮

  3. 选择“SNMP v3”。 用于启用 SNMP v3 的按钮

  4. 在“Username(用户名)”中,输入 SNMP v3 用户的唯一用户名。 用于键入 SNMP v3 用户名的字段

  5. 在“安全级别”下拉菜单中,单击你的 SNMP v3 用户的安全级别。 SNMP v3 用户安全级别的下拉菜单

  6. 对于具有 authnopriv 安全级别的 SNMP v3 用户:authnopriv 安全级别的设置

    • 在“Authentication password(身份验证密码)”中,键入身份验证密码。
    • 在“身份验证密码”右侧的“协议”下拉菜单中,单击要使用的身份验证协议。
  7. 对于具有 authpriv 安全级别的 SNMP v3 用户:authpriv 安全级别的设置

    • 在“Authentication password(身份验证密码)”中,键入身份验证密码。
    • 在“身份验证密码”右侧的“协议”下拉菜单中,单击要使用的身份验证协议。
    • (可选)在“Privacy password(隐私密码)”中输入隐私保护密码。
    • 在“隐私密码”右侧的“协议”下拉菜单中,单击你要使用的隐私协议方法。
  8. 单击“添加用户” 。 用于添加 SNMP v3 用户的按钮 1. 在左侧边栏下,单击“保存设置”。

    管理控制台 中的“保存设置”按钮的屏幕截图

    注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  9. 等待配置运行完毕。

    配置实例

查询 SNMP 数据

关于您的设备的硬件和软件级信息都适用于 SNMP v3。 由于 noAuthNoPrivauthNoPriv 安全级别缺少加密和隐私,我们会将 hrSWRun 表 (1.3.6.1.2.1.25.4) 从生成的 SNMP 报告中排除。 如果你使用 authPriv 安全级别,则会包含此表。 有关详细信息,请参阅“OID 参考文档”。

如果使用 SNMP v2c,则仅会提供关于您的设备的硬件级信息。 GitHub Enterprise 中的应用程序和服务未配置 OID 来报告指标。 有多个 MIB 可用,可以通过在网络中支持 SNMP 的单独工作站上运行 snmpwalk 来查看它们:

# community-string is your community string
# hostname is the IP or domain of your Enterprise instance
$ snmpwalk -v 2c -c community-string -O e hostname

在 SNMP 的可用 MIB 中,最有用的是 HOST-RESOURCES-MIB (1.3.6.1.2.1.25)。 请参见下表,了解此 MIB 中的一些重要对象:

名称OID说明
hrSystemDate.21.3.6.1.2.1.25.1.2本地日期和时间的主机标记。
hrSystemUptime.01.3.6.1.2.1.25.1.1.0自主机上次初始化以来的时间。
hrMemorySize.01.3.6.1.2.1.25.2.2.0主机上 RAM 的大小。
hrSystemProcesses.01.3.6.1.2.1.25.1.6.0主机上当前加载或运行的进程上下文数。
hrStorageUsed.11.3.6.1.2.1.25.2.3.1.6.1主机上已占用的存储空间大小(单位为 hrStorageAllocationUnits)。
hrStorageAllocationUnits.11.3.6.1.2.1.25.2.3.1.4.1hrStorageAllocationUnit 的大小(单位为字节)

例如,若要使用 SNMP v3 查询 hrMemorySize,请在网络中支持 SNMP 的单独工作站上运行以下命令:

# username is the unique username of your SNMP v3 user
# auth password is the authentication password
# privacy password is the privacy password
# hostname is the IP or domain of your Enterprise instance
$ snmpget -v 3 -u username -l authPriv \
  -A "auth password" -a SHA \
  -X "privacy password" -x AES \
  -O e hostname HOST-RESOURCES-MIB::hrMemorySize.0

若要使用 SNMP v2c 查询 hrMemorySize,请在网络中支持 SNMP 的单独工作站上运行以下命令:

# community-string is your community string
# hostname is the IP or domain of your Enterprise instance
snmpget -v 2c -c community-string hostname HOST-RESOURCES-MIB::hrMemorySize.0

注意: 为防止泄露有关设备上运行的服务的信息,我们会将 hrSWRun 表 (1.3.6.1.2.1.25.4) 从生成的 SNMP 报告中排除,除非你对 SNMP v3 使用 authPriv 安全级别。 如果你使用 authPriv 安全级别,则会包含 hrSWRun 表。

有关 SNMP 中常见系统属性的 OID 映射的详细信息,请参阅“用于 CPU、内存和磁盘统计信息的 Linux SNMP OID”。