SNMP OID はどこからデータを取得するのでしょうか?

SNMP OID はどこからデータを取得するのでしょうか?

SNMP を使用して Linux サーバーのネットワーク トラフィックを調べたい場合、snmpget 要求で ifOutOctets. および ifInOctets. OID を使用します。これらの OID はどこからデータを取得するのでしょうか?

答え1

Ubuntu では、ifInOctets. および ifOutOctets. OID が /proc ディレクトリからデータを収集するようです。

これは を使用して確認できますstrace -p <pid of SNMP>。Strace はプロセスのシステム コールを記録します。Strace は実行時に端末に多くの出力を生成しますが、 オプションを使用すると-e trace=open出力が SNMP が参照しているファイルにフィルタリングされます。

strace -p <pid Of SNMP> -e trace=openUbuntu デバイスで次のコマンドを実行すると、次の出力が得られます。

open("/proc/stat", O_RDONLY|O_LARGEFILE) = 13
open("/proc/vmstat", O_RDONLY|O_LARGEFILE) = 13
open("/proc/net/dev", O_RDONLY|O_LARGEFILE) = 13
open("/proc/net/if_inet6", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv4/neigh/ppp0/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv4/neigh/lo/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/neigh/lo/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/conf/lo/forwarding", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/neigh/lo/base_reachable_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv4/neigh/eth0/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/neigh/eth0/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/conf/eth0/forwarding", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/neigh/eth0/base_reachable_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv4/neigh/eth1/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/neigh/eth1/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/conf/eth1/forwarding", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv6/neigh/eth1/base_reachable_time_ms", O_RDONLY|O_LARGEFILE) = 15
open("/proc/diskstats", O_RDONLY|O_LARGEFILE) = 13
open("/proc/net/dev", O_RDONLY|O_LARGEFILE) = 13
open("/proc/net/if_inet6", O_RDONLY|O_LARGEFILE) = 15
open("/proc/sys/net/ipv4/neigh/ppp0/retrans_time_ms", O_RDONLY|O_LARGEFILE) = 15

ファイル /proc/net/dev には、すべてのインターフェースのパケットとバイトの情報が含まれています。これは、Ubuntu の ifInOctets および ifOutOctets OID のデータ ソースである可能性があります。

関連情報