要从装有 Windows 的设备获取高级统计信息,您需要安装 WMI 控制台应用程序。
可选功能
WMI 不需要轮询 Windows 设备,但有助于收集有关 Exchange 和 MSSQL 的一些附加数据。
在使用 WMI 轮询器之前,您需要将 WMIC 安装到您的 Observium 主机上。
WMI 源代码相当陈旧,许多包会导致 Python 依赖项出现问题,因此使用预编译的静态二进制文件是最简单的。下载以下文件,解压并将 wmic 二进制文件放入 /usr/bin
wget https://www.observium.org/files/wmic_1.3.16_static_64bit.tar.gz
tar zxvf wmic_1.3.16_static_64bit.tar.gz
mv wmic winexe /usr/bin
您可以通过 rtunning 测试它是否可以在您的系统上执行wmic --version
:
root@dev:~# ./wmic --version
Version 4.0.0tp4-SVN-build-UNKNOWN
root@dev:~#
有几种方法可以解决这个问题:
选择 (1) 或 (2) 是测试 WMI 的首选,因为它是最快的。默认情况下,WMI 安全性允许系统的任何管理员进行控制。如果您是域管理员,您可以测试以确保 WMIC 在安装后立即正常工作(说明如下)。
另一方面,选择 (3) 是更安全但更复杂的选项。建议您采取此路线以降低安全风险。
远程启用。
如果尚未检查该权限,请单击“允许”框启用该权限。应该已经选择了启用帐户权限,但需要选择远程启用权限。13. 单击“确定”关闭“ROOT\CIMV2 的安全性”对话框。
现在应该为代理数据收集用户帐户正确设置权限。
wmic --domain=DOMAIN --user=USER --password=PASSWORD //SERVER.DOMAIN.COM "SELECT * FROM Win32_ComputerSystem"
仅适用于命令行:请注意,如果您的密码包含在 Ubuntu 命令行中使用的任何字符,则必须对其进行转义(即,如果您的密码是Bob!1000
您需要输入的Bob\!1000
)。
当 WMIC 正确安装并且 WMI 用户具有正确的权限时,您应该会看到如下所示的有效输出:
$ /usr/bin/wmic --user='user' --password='password' --workgroup='OBSERVIUM' --delimiter=## --namespace='root\CIMV2' //win.server "SELECT Name FROM Win32_ComputerSystem"
CLASS: Win32_ComputerSystem
Name
WIN
如果 WMI 用户无权读取 WMI 监控参数,您将看到如下错误:
$ /usr/bin/wmic --user='user' --password='password' --workgroup='OBSERVIUM' --delimiter=## --namespace='root\CIMV2' //win.server "SELECT Name FROM Win32_ComputerSystem"
[librpc/rpc/dcerpc_util.c:1290:dcerpc_pipe_auth_recv()] Failed to bind to uuid 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 - NT_STATUS_NET_WRITE_FAULT
[librpc/rpc/dcerpc_connect.c:790:dcerpc_pipe_connect_b_recv()] failed NT status (c0000022) in dcerpc_pipe_connect_b_recv
[wmi/wmic.c:196:main()] ERROR: Login to remote object.
NTSTATUS: NT_STATUS_ACCESS_DENIED - Access denied
检查用户名、密码、域参数和 WMI 用户权限!
nano /opt/observium/config.php
// Enable default WMI Paramaters
$config['wmi']['domain'] = "domainname"; // NetBIOS Name Shorthand Domain/Workgroup (ie. notdomain.local.com)
$config['wmi']['user'] = "username";
$config['wmi']['pass'] = "passw0rd";
$config['poller_modules']['wmi'] = 1;
如果您需要选择特定的 WMI 模块进行轮询或为设备传递特定的用户/密码,您可以在设备编辑页面上更改它。