1

我有几个 Perl 脚本允许我通过 WMI 监视远程 Windows 机器。现在我可以检查 CPU 使用情况、内存使用情况、磁盘使用情况和已安装的软件。但是如果我想在远程 Linux 机器上做同样的工作怎么办?当然没有 WMI,所以我想我会使用类似的东西。我读过另一个旧的StackOverflow 问题,Linux 通过/proc/sys公开信息,但我可以从远程计算机查询它们吗?我怎样才能在 Perl 中做到这一点?有专门的模块吗?

编辑:澄清一下,脚本必须是无代理的。

4

2 回答 2

3

检查这些:

http://www.net-snmp.org/docs/mibs/host.html

http://www.oidview.com/mibs/0/RFC1213-MIB.html

这将为您提供内存/磁盘使用情况:

snmptable -v1 -c public localhost hrStorageTable
snmptable -v1 -c public localhost .1.3.6.1.2.1.25.2.3

这将为您提供处理器利用率:

snmptable -v1 -c public localhost hrProcessorTable
snmptable -v1 -c public localhost .1.3.6.1.2.1.25.3.3

接口状态:

snmptable -v1 -c public localhost ifTable
snmptable -v1 -c public localhost .1.3.6.1.2.1.2.2

如果您使用基于 rpm 的 linux,这将为您提供已安装的软件:

snmptable -v1 -c public localhost hrSWInstalledTable
snmptable -v1 -c public localhost .1.3.6.1.2.1.25.6.3

您可以使这项工作适用于 .deb 风格的 linux :

http://community.zenoss.org/blogs/zenossblog/2009/02/18/tip-of-the-month-snmp-software-inventory-for-debian-and-ubuntu-machines

Sample output of `snmptable -v1 -c public localhost hrProcessorTable`

        hrProcessorFrwID hrProcessorLoad
 SNMPv2-SMI::zeroDotZero              54
 SNMPv2-SMI::zeroDotZero              22

在您查询的框中,public 是否具有对 .1.3.6.1.2.1.25 的读取权限?

您可能需要在 /etc/snmp/snmpd.conf 中添加类似的内容

com2sec monitor  default         monitor

group monitorGroup v1      monitor
group monitorGroup v2c     monitor

view hardware included .1.3.6.1.2.1.25
view hardware included .1.3.6.1.2.1.2

access monitorGroup ""      any       noauth    exact  hardware    none    none

重启 snmpd

然后-c monitor在上面的命令中指定而不是-c public

于 2011-12-01T12:54:03.043 回答
1

我不这么认为,也许您可​​以使用Net::SSH来访问这些文件,但我认为如果您安装 snmp 代理并Net::SNMP用于此目的会更有意义。

监控已安装的软件可能会变得更棘手,这将取决于 linux 发行版,并且可能通过 ssh 最简单。

编辑:忽略这snmp部分,因为您想要无代理。

于 2011-12-01T10:05:46.110 回答