
SNMP를 사용하여 Linux 서버의 네트워크 트래픽을 찾으려는 경우. ifOutOctets를 사용합니다. 그리고 ifInOctets. snmpget 요청의 OID입니다. 이러한 OID는 어디에서 데이터를 가져오나요?
답변1
우분투에서는 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 파일에는 모든 인터페이스에 대한 패킷 및 바이트 정보가 포함되어 있습니다. 이는 Ubuntu의 ifInOctets 및 ifOutOctets OID에 대한 데이터 소스일 가능성이 높습니다.