Откуда SNMP OID получают данные?

Если я хочу узнать сетевой трафик на моих Linux-серверах, используя SNMP. Я использую ifOutOctets. и ifInOctets. OID в запросе snmpget. Откуда эти 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=open на моем устройстве Ubuntu выводит:

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 содержит информацию о пакетах и ​​байтах на всех интерфейсах. Это вероятный источник данных для идентификаторов ifInOctets и ifOutOctets в Ubuntu.

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