SNMP에 관해 이야기할 때 사용되는 일부 용어, 특히 MIB(에이전트 또는 관리 스테이션)를 담당하는 사람을 이해하는 데 어려움이 있습니다.
간단한 시나리오를 살펴보겠습니다.
- 알려진 OID(예: CPU 사용률)를 기준으로 Linux 시스템을 모니터링합니다.
- 요청을 처리하는 CPU Utilization OID(에이전트 또는 관리 스테이션)에 대한 SNMP 요청을 보낼 때?
- 수행된 작업이 MIB에서 데이터를 읽는 것뿐이라면 여기서 에이전트의 역할은 무엇입니까?
- 에이전트에는 가져오기를 위한 동기화 API가 있지만 스토리지로 직접 이동하면 왜 이 가져오기가 필요한가요?
이 간단한 CPU OID 예를 이해하도록 도와줄 수 있는 사람이 있습니까? 무슨 일이 일어나고 있습니까?
답변1
실제로는 정말 간단합니다.
/proc
SNMP 에이전트는 관리하려는 시스템에서 실행되고 있으며 임의의 방법( 항목 읽기, IPC를 통해 프로세스와 통신, 파일에서 읽기 또는 누군가가 할 수 있는 기타 방법) 으로 시스템에서 데이터를 읽을 수 있습니다(및 가능한 설정). 생각해 내다). 그런 다음 하나 이상의 정의 파일인 MIB에 따라 이 데이터를 잘 구조화된 방식으로 나타냅니다.
그런 다음 관리 스테이션(또는 SNMP 클라이언트)은 에이전트와 통신하여 이 MIB에 따라 에이전트에서 데이터를 읽거나 설정할 수 있습니다.
또한 일부 에이전트(일반적으로 관리 스테이션에서 요청한 경우에만 작동)는 이에 대해 알리기 위해 일부 조건이 충족될 때 관리 스테이션에 메시지를 보내도록 구성할 수 있습니다. 이를 SNMP 트랩이라고 합니다.
CPU 예의 경우:
- 에이전트가 머신에서 실행 중이며 시스템 데이터를 읽을 수 있습니다.
- 관리 스테이션은 CPU 로드 OID에 대한 폴링 에이전트입니다.
- 에이전트는 이 OID에 대한 데이터를 가져오는 방법을 찾고 있으며 데이터 포인트(CPU 로드)를 읽고 이를 관리 스테이션으로 다시 보냈습니다.