ifInOctets、ifOutOctetsのoidを取得するツール。
$ vi check_ifIn_OutOctets.rb
#!/usr/bin/ruby
hostip = ARGV[0]
comm = ARGV[1]
ifInOctets_mib = ".1.3.6.1.2.1.2.2.1.10"
ifOutOctets_mib = ".1.3.6.1.2.1.2.2.1.16"
ifDescr = ".1.3.6.1.2.1.2.2.1.2"
if ARGV.length != 2
puts("[hostip] [community]")
exit 1
end
`snmpwalk -v 1 -c #{comm} #{hostip} IF-MIB::ifOperStatus`.each do |line|
if line =~ /ifOperStatus\.(\d*) =.*up/
index = $1
eth = `snmpwalk -v 1 -Ovq -c #{comm} #{hostip} IF-MIB::ifDescr.#{index}`.chomp!
`snmpwalk -v 1 -c #{comm} #{hostip} IF-MIB::ifInOctets.#{index}`.each do
print("ifInOctets #{eth} #{ifInOctets_mib}.#{index}\n")
end
`snmpwalk -v 1 -c #{comm} #{hostip} IF-MIB::ifOutOctets.#{index}`.each do
print("ifOutOctets #{eth} #{ifOutOctets_mib}.#{index}\n")
end
end
end
実行する
$ ./check_ifIn_OutOctets.rb 10.0.0.1 public
ifInOctets Vlan1 .1.3.6.1.2.1.2.2.1.10.1
ifOutOctets Vlan1 .1.3.6.1.2.1.2.2.1.16.1
ifInOctets Port-channel1 .1.3.6.1.2.1.2.2.1.10.5001
ifOutOctets Port-channel1 .1.3.6.1.2.1.2.2.1.16.5001
ifInOctets GigabitEthernet1/0/1 .1.3.6.1.2.1.2.2.1.10.10101
ifOutOctets GigabitEthernet1/0/1 .1.3.6.1.2.1.2.2.1.16.10101
ifInOctets GigabitEthernet1/0/2 .1.3.6.1.2.1.2.2.1.10.10102
ifOutOctets GigabitEthernet1/0/2 .1.3.6.1.2.1.2.2.1.16.10102
ifInOctets GigabitEthernet1/0/3 .1.3.6.1.2.1.2.2.1.10.10103
(略)