使用 SNMP 进行监视
GitHub Enterprise 通过 SNMP 提供关于磁盘使用情况、CPU 利用率和内存使用情况等方面的数据。
SNMP 是一种用于通过网络监视设备的公共标准。 强烈建议启用 SNMP,以便监视 您的 GitHub Enterprise Server 实例 的健康状态并了解何时向主机增加更多内存、存储空间或处理器能力。
GitHub Enterprise 采用标准 SNMP 安装,因此您可以充分利用 Nagios 或其他任何监视系统可用的多种插件。
配置 SNMP v2c
-
In the upper-right corner of any page, click .
-
在左侧边栏中,单击 管理控制台。
-
In the left sidebar, click Monitoring.
-
Under "Monitoring", select Enable SNMP.
-
在 Community string 字段中,输入新的社区字符串。 如果留空,此字段将默认为
public
。 -
Under the left sidebar, click 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
This should return the system time on 您的 GitHub Enterprise Server 实例 host.
User-based security
If you enable SNMP v3, you can take advantage of increased user based security through the User Security Model (USM). For each unique user, you can specify a security level:
noAuthNoPriv
: This security level provides no authentication and no privacy.authNoPriv
: This security level provides authentication but no privacy. 要查询设备,您需要用户名和密码(长度必须至少为八个字符)。 与 SNMPv2 相似,发送的信息不会进行加密。 身份验证协议可以是 MD5 或 SHA,默认为 SHA。authPriv
: This security level provides authentication with privacy. 要求进行身份验证(包含一个长度至少为八个字符的身份验证密码),并且会对响应进行加密。 不需要隐私密码,但如果提供隐私密码,其长度必须至少为八个字符。 如果不提供隐私密码,将使用身份验证密码。 隐私协议可以是 DES 或 AES,默认为 AES。
Configuring users for SNMP v3
-
In the upper-right corner of any page, click .
-
在左侧边栏中,单击 管理控制台。
-
In the left sidebar, click Monitoring.
-
Under "Monitoring", select Enable SNMP.
-
Select SNMP v3.
-
In "Username", type the unique username of your SNMP v3 user.
-
In the Security Level dropdown menu, click the security level for your SNMP v3 user.
-
For SNMP v3 users with the
authnopriv
security level:-
在“Authentication password(身份验证密码)”中,键入身份验证密码。
-
On the right side of "Authentication password", in the Protocol dropdown menu, click the authentication protocol you want to use.
-
-
For SNMP v3 users with the
authpriv
security level:-
在“Authentication password(身份验证密码)”中,键入身份验证密码。
-
On the right side of "Authentication password", in the Protocol dropdown menu, click the authentication protocol you want to use.
-
Optionally, in "Privacy password", type the privacy password.
-
On the right side of "Privacy password", in the Protocol dropdown menu, click the privacy protocol method you want to use.
-
-
Click Add user.
-
Under the left sidebar, click Save settings.
Querying SNMP data
Both hardware and software-level information about your appliance is available with SNMP v3. Due to the lack of encryption and privacy for the noAuthNoPriv
and authNoPriv
security levels, we exclude the hrSWRun
table (1.1.3.6.1.2.1.25.41) from the resulting SNMP reports. We include this table if you're using the authPriv
security level.
如果使用 SNMP v2c,则仅会提供关于您的设备的硬件级信息。 GitHub Enterprise 中的应用程序和服务未配置 OID 来报告指标。 Several MIBs are available, which you can see by running snmpwalk
on a separate workstation with SNMP support in your network:
# 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”。