Откуда SNMP OID берут данные? [закрыто]

Если я хочу узнать сетевой трафик на своих серверах Linux с помощью SNMP. Я использую ifOutOctets. и ifInOctets. OID в запросе snmpget. Откуда эти OID берут данные?

-1
задан 28 July 2017 в 12:58

1 ответ

На Ubuntu это казалось бы ifInOctets. и ifOutOctets. OIDs собирают данные из/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 OIDs на Ubuntu.

1
ответ дан 2 November 2019 в 20:59

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

Похожие вопросы: