SNMP 是一种用于通过网络监视设备的公共标准。 强烈建议启用 SNMP,以便监视 您的 GitHub Enterprise Server 实例 的健康状态并了解何时向主机增加更多内存、存储空间或处理器能力。
GitHub Enterprise 采用标准 SNMP 安装,因此您可以充分利用 Nagios 或其他任何监视系统可用的多种插件。
配置 SNMP v2c
- 在任何页面的右上角,单击 。
- 在左侧边栏中,单击 管理控制台。
- 在左侧边栏中,单击 Monitoring(监控)。
- 在“Monitoring(监控)”下,选择Enable SNMP(启用 SNMP)。
- 在 Community string 字段中,输入新的社区字符串。 如果留空,此字段将默认为
public
。 - 在左侧边栏下,单击 Save settings(保存设置)。
- 要测试 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
这应该返回 您的 GitHub Enterprise Server 实例 主机上的系统时间。
基于用户的安全性
如果您启用 SNMP v3,则可以通过用户安全模型 (USM) 充分利用提升的基于用户的安全性。 对于每个唯一的用户,您可以指定一个安全等级:
noAuthNoPriv
: 此安全等级不提供任何身份验证和隐私保护。authNoPriv
: 此安全等级提供身份验证,但不提供隐私保护。 要查询设备,您需要用户名和密码(长度必须至少为八个字符)。 与 SNMPv2 相似,发送的信息不会进行加密。 身份验证协议可以是 MD5 或 SHA,默认为 SHA。authPriv
: 这个安全等级提供身份验证和隐私保护。 要求进行身份验证(包含一个长度至少为八个字符的身份验证密码),并且会对响应进行加密。 不需要隐私密码,但如果提供隐私密码,其长度必须至少为八个字符。 如果不提供隐私密码,将使用身份验证密码。 隐私协议可以是 DES 或 AES,默认为 AES。
配置 SNMP v3 的用户
- 在任何页面的右上角,单击 。
- 在左侧边栏中,单击 管理控制台。
- 在左侧边栏中,单击 Monitoring(监控)。
- 在“Monitoring(监控)”下,选择Enable SNMP(启用 SNMP)。
- 选择 SNMP v3。
- 在“Username(用户名)”中,输入 SNMP v3 用户的唯一用户名。
- 在 Security Level(安全等级)下拉菜单中,单击 SNMP v3 用户的安全等级。
- 对于拥有
authnopriv
安全等级的 SNMP v3 用户:- 在“Authentication password(身份验证密码)”中,键入身份验证密码。
- 在“Authentication password(身份验证密码)”的右侧,单击 Protocol(协议)下拉菜单中要使用的身份验证协议。
- 对于拥有
authpriv
安全等级的 SNMP v3 用户:- 在“Authentication password(身份验证密码)”中,键入身份验证密码。
- 在“Authentication password(身份验证密码)”的右侧,单击 Protocol(协议)下拉菜单中要使用的身份验证协议。
- (可选)在“Privacy password(隐私密码)”中输入隐私保护密码。
- 在“Privacy password(隐私密码)”右侧,在 Protocol(协议) 下拉菜单中,单击您要使用的隐私协议方法。
- 单击 Add user(添加用户)。
- 在左侧边栏下,单击 Save settings(保存设置)。
查询 SNMP 数据
关于您的设备的硬件和软件级信息都适用于 SNMP v3。 由于 noAuthNoPriv
和 authNoPriv
安全等级缺乏加密和隐私,因此我们的结果 SNMP 报告中不包括 hrSWRun
表 (1.1.3.6.1.2.1.25.41)。 如果您使用的是 authPriv
安全等级,我们将包括此表。
如果使用 SNMP v2c,则仅会提供关于您的设备的硬件级信息。 GitHub Enterprise 中的应用程序和服务未配置 OID 来报告指标。 有多个 MIB 可用,在网络中 SNMP 的支持下,在单独的工作站上运行 smpwaste
可以看到:
# 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.2 | .1.3.6.1.2.1.25.1.2 | 本地日期和时间的主机标记。 |
hrSystemUptime.0 | .1.3.6.1.2.1.25.1.1.0 | 自主机上次初始化以来的时间。 |
hrMemorySize.0 | .1.3.6.1.2.1.25.2.2.0 | 主机上 RAM 的大小。 |
hrSystemProcesses.0 | .1.3.6.1.2.1.25.1.6.0 | 主机上当前加载或运行的进程上下文数。 |
hrStorageUsed.1 | .1.3.6.1.2.1.25.2.3.1.6.1 | 主机上已占用的存储空间大小(单位为 hrStorageAllocationUnits)。 |
hrStorageAllocationUnits.1 | .1.3.6.1.2.1.25.2.3.1.4.1 | hrStorageAllocationUnit 的大小(单位为字节) |
例如,要通过 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.1.3.6.1.2.1.25.41) 从生成的 SNMP 报告中排除,除非您对 SNMP v3 使用的是 authPriv
安全级别。 如果您使用的安全级别为 authPriv
,我们将包含 hrSWRun
表。
更多关于 SNMP 中常用系统属性的 OID 映射的信息,请参阅“CPU、内存和磁盘统计信息的 Linux SNMP OID”。