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

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

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

2 ответа

На 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 OID на Ubuntu.

1
ответ дан 18 July 2018 в 09:29

На 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 OID на Ubuntu.

1
ответ дан 24 July 2018 в 19:21

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

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