Как отслеживать удаленные машины Linux и получать установленное программное обеспечение в Perl?

У меня есть пара сценариев Perl, которые позволяют мне контролировать удаленные операции Windows через WMI. Прямо сейчас я могу проверить использование процессора, использование памяти, использование диска и установленного программного обеспечения. Но что, если я хочу сделать ту же работу на удаленной машине с Linux? Конечно, нет WMI, поэтому я думаю, что я буду использовать что-то подобное. Я прочитал другой старый вопрос Stackru, что Linux предоставляет информацию через / proc и / sys, но могу ли я запросить их с удаленного компьютера? И как я могу сделать это именно в Perl? Есть ли выделенный модуль?

РЕДАКТИРОВАТЬ: Просто чтобы уточнить, сценарий должен быть без агента.

2 ответа

Решение

Проверьте это:

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

Если вы используете Linux на основе RPM, это даст вам установленное программное обеспечение:

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

Имеет ли публичный доступ к полю, к которому вы обращаетесь, доступ к.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

Я так не думаю, возможно, вы можете использовать Net::SSH чтобы получить доступ к этим файлам, но я думаю, что было бы больше смысла, если вы установите агент snmp и использовать Net::SNMP с целью.

Мониторинг установленного программного обеспечения может стать сложнее, зависит от дистрибутива Linux и, вероятно, будет проще, чем по ssh.

РЕДАКТИРОВАТЬ: игнорировать snmp часть, так как вы хотите быть без агента.

Другие вопросы по тегам