Как отслеживать удаленные машины Linux и получать установленное программное обеспечение в Perl? - PullRequest
1 голос
/ 01 декабря 2011

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

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

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

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

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, это даст вам установленное программное обеспечение:

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

1 голос
/ 01 декабря 2011

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

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

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

...