在不同的 Windows 服务器上配置 SNMP 代理
在 SNMP 的支持下,无代理监控您的 Windows 服务器。只需在您的服务器上安装和配置 SNMP 代理,安装 On-Premise Poller 和您的服务器进行监控。
概要
- 在 Windows 10 1803 或更高版本上安装和配置 SNMP 代理
- 在 Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2、Windows 8、Windows 8.1、Windows 10、Windows Server 2012、Windows Server 2012 R2 或 Windows Server 2016 或更高版本上配置 SNMP 代理
- 在 Windows NT 系统上配置 SNMP 代理
- 在 Windows XP、Windows 2000 和 Windows 2003 系统上配置 SNMP 代理
- 在 Windows 上测试 SNMP 代理
- 基于 PowerShell 的 SNMP 配置
在 Windows 10 1803 或更高版本上安装 SNMP 代理
SNMP 服务未列在 Windows 10 控制面板的 Windows 功能列表中。使用以下三个步骤中的任何一个直接从 Microsoft 服务器安装 SNMP 服务:
- 可选功能图形界面
- PowerShell
- DISM
使用可选功能图形界面安装
- 转到设置> 应用程序> 应用程序和功能> 管理可选功能> 添加功能。
- 从列表中选择以下内容:简单网络管理协议 (SNMP) 和 WMI SNMP 提供程序(以获取所有 SNMP 服务配置选项卡)。
使用 PowerShell 安装
- 导航到 开始> Windows PowerShell 文件夹> Windows PowerShell。
- 运行以下命令:
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
使用 DISM 安装
- 您还可以使用部署映像服务和管理 (DISM) 工具。转到开始> 命令提示符。
- 右键单击顶部结果,然后选择Run as administrator。
- 执行以下命令, 回车:
DISM /online /add-capability /capabilityname:SNMP.Client~~~~0.0.1.0
在 Windows 10 1803 或更高版本上配置 SNMP 代理
- 导航到 开始> 设置> 控制面板。
- 在管理工具下,单击服务。
- 在详细信息窗格中,右键单击SNMP Service并选择Properties。如果已停止,请单击“开始”按钮启动服务,并将“ 启动类型”更改为 “自动” 。
- 在Security 选项卡的 Accepted community names下,单击添加。
- 在Community Rights下,选择此主机的权限级别以处理来自所选社区的 SNMP 请求。
- 在Community Name中,键入区分大小写的团体字符串,然后单击添加。
- 选择是否接受来自主机的 SNMP 数据包:
- 要接受来自网络上任何主机的 SNMP 请求,无论身份如何,请单击接受来自任何主机的 SNMP 数据包。
- 要限制接受 SNMP 数据包,请单击接受来自这些主机的 SNMP 数据包,然后单击添加。然后,键入适当的 主机名、IP或IPX 地址,然后单击添加。
- 单击应用。
在 Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2、Windows 8、Windows 8.1、Windows 10、Windows Server 2012、Windows Server 2012 R2 或 Windows Server 2016 或更高版本上配置 SNMP 代理
- 转到控制面板。单击程序> 程序和功能,然后单击打开或关闭 Windows 功能。如果系统提示您使用“用户帐户控制”对话框,请单击 “继续” 或 “是”(因版本而异)。
- 在打开或关闭 Windows 功能中,选中简单网络管理协议 (SNMP) 或 SNMP 功能 (同样,因版本而异 )旁边的框 ,然后单击确定。
- 在此之后,按照上面给出的 在 Windows 10 1803 或更高版本上配置 SNMP 代理的步骤进行操作。
在 Windows NT 系统上配置 SNMP 代理
- 导航到 开始> 设置> 控制面板。
- 在管理工具下,单击服务。
- 在详细信息窗格中,右键单击SNMP 服务,然后选择属性。
- 在接受的团体字符串下,单击添加。
- 在团体字符串框中,键入团体字符串以验证 SNMP 请求。
- 单击添加以将团体字符串移动到接受的团体字符串列表中。
- 重复步骤 6 和 7 以添加更多团体字符串。
- 选择是接受来自任何主机还是只接受来自指定主机的 SNMP 数据包:
- 如果您希望接受来自任何没有 IP 限制的主机的 SNMP 数据包,请单击接受来自任何主机的 SNMP 数据包。
- 如果您希望仅接受来自特定主机的 SNMP 数据包,请单击仅接受来自这些主机的 SNMP 数据包。要输入所需的主机,请单击添加;在IP 主机或IPX 地址框中键入主机的 名称或 地址,然后单击添加。
- 重复步骤 9 添加更多主机。
- 在“ 代理” 选项卡中,指定有关用户、位置和服务的评论等信息。
- 单击确定以应用更改。
默认情况下,在 Windows NT 上运行的 SNMP 代理不响应主机资源数据。要支持这一点,您可能需要 Windows NT service pack 6 或更高版本。在执行以下步骤之前,请检查您的包装详细信息。
注意: Windows NT 4.0 服务器不附带主机资源 MIB。
如果您正在运行Windows NT Service Pack 6a并使用Windows 2000 服务器,请按照以下步骤操作:
- 将%SystemRoot%\System32\hostmib.dll文件从 Windows 2000 服务器 复制到 Windows NT 4.0 服务器上的 %SystemRoot%\System32文件夹。
- C:\WinNT是 %SystemRoot%的值
- 如果您没有 Windows 2000 Server,那么您可以下载 hostmib.dll 文件。
- 如果上述文件在您的机器上不兼容,您可以从 https://www.pconlife.com/fileinfo/hostmib.dll-info/下载兼容版本
- 运行 regedit 或 regedt32,并添加以下键和值:
- 键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HostMIB\CurrentVersion
- 值名称: 路径名
- 类型: REG_SZ
- 数据:C:\WinNT\system32\hostmib.dll
- 键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents
- 值名称: 3
- 类型:REG_SZ
- 数据:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HostMIB\CurrentVersion
- 要使用 Microsoft REGSVR 实用程序注册 DLL,请执行以下步骤:
- 将文件复制到 C:\Windows\SysWOW64\(对于 32 位)或 C:\Windows\System32\(对于 64 位)
- 要完成此步骤,您应该 以管理员身份 运行命令提示符。
- 将以下命令粘贴到打开的命令行窗口中,然后按 Enter。
%windir%\System32\regsvr32.exe hostmib.dll(用于 32 位)
%windir%\SysWoW64\regsvr32.exe hostmib.dll(用于 64 位)
- 重新启动您的 Windows NT 框。
在 Windows XP、Windows 2000 和 Windows 2003 系统上配置 SNMP 代理
- 导航到 开始> 设置> 控制面板。
- 在管理工具下,单击服务。
- 在详细信息窗格中,右键单击SNMP 服务,然后选择属性。
- 在接受的团体字符串下,单击添加。
- 在Community Rights下,选择此主机的权限级别以处理来自所选社区的 SNMP 请求。
- 在Community Name中,键入区分大小写的团体字符串,然后单击添加。
- 选择是否接受来自主机的 SNMP 数据包:
- 要接受来自网络上任何主机的 SNMP 请求,无论身份如何,请单击接受来自任何主机的 SNMP 数据包。
- 要限制接受 SNMP 数据包,请单击接受来自这些主机的 SNMP 数据包,然后单击添加。然后,键入适当的主机名、IP或 IPX 地址,然后单击添加。
- 单击应用。
在 Windows 上测试 SNMP
基于 PowerShell 的 SNMP 配置
在本节中,我们将介绍:
远程执行的先决条件
要创建远程会话并运行远程命令,本地和远程计算机必须满足以下要求。
系统要求
以下是在远程机器上执行脚本的系统要求。
- 要在 Windows PowerShell 3.0 上运行远程会话,本地和远程计算机必须具有:
- Windows PowerShell 3.0 或更高版本。
- Microsoft .NET Framework 4 或更高版本。
- Windows 远程管理 3.0。
- 要在 Windows PowerShell 2.0 上运行远程会话,本地和远程计算机必须具有:
- Windows PowerShell 2.0 或更高版本。
- Microsoft .NET Framework 2.0 或更高版本。
- Windows 远程管理 2.0。
2.用户权限
默认情况下,当前用户需要是远程计算机上管理员组的成员或提供管理员凭证。
3.Windows网络/防火墙权限
来自服务器端和客户端的远程连接不得被防火墙阻止。
4.以管理员身份运行
管理员权限是启用和配置 SNMP 所必需的。
使用 PowerShell 安装
- 导航到开始 > Windows PowerShell 文件夹 > Windows PowerShell。
- 运行以下命令:Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
注意:
- 请确认是否满足远程执行的先决条件。
- 检查主机和客户端设备是否在同一网络域中可用。
- 在将执行此特定脚本的远程设备上启用 PSRemoting。这可以通过远程桌面连接执行。
使用 PowerShell 在 Windows 设备上启用 SNMP 的步骤
- 下载SNMPEnabler.ps1 脚本。
- 以管理员身份打开 Windows PowerShell 实用程序。
- 运行 SNMPEnabler.ps1 脚本并提供所需的输入参数。
- 使用提供的输入执行脚本。它将自动在您的本地或远程设备上启用和配置 SNMP。
脚本执行的输入参数
脚本执行可以处理以下输入参数。
输入参数 | 用法 | 默认值 | 必需的? | 例子 |
---|---|---|---|---|
h | 需要启用 SNMP 服务的主机名。 |
- |
强制(如果未给出 -f) |
-h ben-3515 |
f | 包含多个主机的文件的一部分。文件格式:(XXXXX.txt) s24x7-dev1 localhost 192.21.23.1 ben-3515.zohocorpin.com |
- |
强制(如果 -h 未给出) |
-f D:\SNMP\hostlist.txt |
username | 用于远程访问的帐户的用户名 |
- |
对于远程机器是必需的,对于本地主机是可选的。 |
-username workgroup\administrator |
pass | 用于远程访问的帐户的密码 |
- |
对于本地主机是可选的。远程:它可以作为参数提供。在远程执行期间,系统会要求您输入密码。 |
-pass password@987 |
onlyConfigure | 用于在已启用 SNMP 的机器上配置 SNMP 设置。 |
错误的 |
可选的 |
-仅配置 true |
communityName | 脚本执行后将添加的 SNMP 社区字符串。 |
public |
可选的 |
-communityName networkcommunity |
snmpType | 从社区字符串添加的权限。允许的整数值:“1” - NONE “2” - NOTIFY “4” - READONLY “8” - READWRITE “16” - READCREATE |
4 |
可选的 |
-snmpType 4 |
permittedHost | 需要从远程机器进行 SNMP 访问的主机 |
执行脚本的默认本地主机的名称。 |
可选的 |
-permittedHost s24x7-dev7 |
debug | 用于调试。可能的值为“真”或“假”。 |
错误的 |
可选的 |
-debug true |
脚本命令和用法
1. 特定主机启用
使用默认或自定义选项启用和配置单个主机的选项。
命令
1.1 在本地机器上启用和配置 SNMP(使用默认选项):
执行:.\SNMPEnabler.pst1 -h localhost
1.2 在远程机器上启用和配置 SNMP(使用默认选项):
执行:.\SNMPEnabler.ps1 -h -username
1.3. 要在本地计算机上启用和配置 SNMP(使用自定义输入选项):
执行:.\SNMPEnabler.ps1 -h localhost -communityName -snmpType -permittedHost
1.4. 要在远程计算机上启用和配置 SNMP(使用自定义输入选项):
执行:.\SNMPEnabler.ps1 -h -username -communityName -snmpType -permittedHost
1.5。在启用 SNMP 的本地计算机上配置社区和允许的主机:
执行.\SNMPEnabler.ps1 -h localhost -onlyConfigure true -communityName -snmpType -permittedHost
1.6. 要在启用 SNMP 的远程计算机上配置社区和允许的主机:
执行.\SNMPEnabler.ps1 -h -username -pass -onlyConfigure true -communityName -snmpType -permittedHost
2. 批量启用(使用包含主机的输入文件)
通过传递包含主机列表的文件路径,您可以为多个服务器启用和配置 SNMP。
命令
2.1 在多台本地或远程机器上启用和配置 SNMP(使用默认选项):
执行:.\SNMPEnabler.ps1 -f -username
2.2 在多台本地或远程机器上启用和配置 SNMP(带有自定义选项):
执行:.\SNMPEnabler.ps1 -f -username -communityName -snmpType -permittedHost
2.3 在启用 SNMP 的本地或远程机器上配置社区和允许的主机:
执行:.\SNMPEnabler.ps1 -f -username -onlyConfigure true -communityName -snmpType -permittedHost