Linux에서 SNMP를 사용하여 MongoDB 모니터링
참고
엔터프라이즈 기능(사용 중단됨)
MongoDB 6.0 부터 시작됩니다. SNMP는 더 이상 사용되지 않으며 다음 릴리스에서 제거될 예정입니다. 배포서버를 모니터링하려면 MongoDB Ops Manager 를 사용합니다.
SNMP는 MongoDB Enterprise 에서만 사용할 수 있습니다.
개요
MongoDB Enterprise 는 중앙 집중식 데이터 컬렉션 및 집계 을 지원 SNMP를 통해 데이터베이스 지표 을 제공할 수 있습니다. 이 절차에서는 mongod
인스턴스 를 SNMP 하위 에이전트로 설정 및 구성하는 방법, MongoDB Enterprise 를 사용하여 SNMP 지원 을 초기화하고 테스트하는 방법에 대해 설명합니다.
팁
다음도 참조하세요.
Windows 시스템에서 SNMP와 함께 MongoDB를 사용하는 방법에 대한 전체 지침은 SNMP 문제 해결 및 SNMP 로 MongoDB Windows 모니터링 을 참조하세요.
고려 사항
구성 파일
MongoDB Enterprise에는 다음과 같은 SNMP 구성 파일이 포함되어 있습니다.
MONGOD-MIB.txt
:MongoDB의 SNMP 출력을 정의하는 MIB(Management Information Base) 파일입니다. Ubuntu 및 Debian 플랫폼에서 이 파일은
MONGOD-MIB.txt.gz
으로 압축되어 배송되며gunzip
로 압축을 풀어야 합니다.mongod.conf.subagent
:mongod
을(를) SNMP 하위 에이전트로 실행하기 위한 구성 파일입니다. 이 파일은 SNMP 마스터에 연결하기 위한agentXSocket
을(를) 포함하여 SNMP 런타임 구성 옵션을 설정합니다.mongod.conf.master
:mongod
을(를) SNMP 마스터로 실행하기 위한 구성 파일입니다. 이 파일은 실행할agentaddress
을(를) 포함하여 SNMP 런타임 구성 옵션을 설정합니다.
MongoDB SNMP 구성 파일은 다음과 같이 MongoDB Enterprise 설치와 함께 제공됩니다.
패키지 관리자를 통해 MongoDB Enterprise를 설치한 경우 이러한 파일은 패키지 설치 프로세스의 일부로 다음 디렉토리에 설치됩니다.
플랫폼경로RHEL / CentOS/usr/share/doc/mongodb-enterprise-server-6.0.17
Ubuntu/Debian/usr/share/doc/mongodb-enterprise-server
SUSE/usr/share/doc/packages/mongodb-enterprise-server
.tgz
tarball에서 MongoDB Enterprise를 설치한 경우 이러한 파일이 tarball에 포함되었습니다.
절차
구성 파일을 복사합니다.
플랫폼에 따라 MongoDB SNMP 구성 파일을 설치 위치에서 대상 디렉토리로 복사합니다.
SNMP 파일이 설치된 위치로 이동합니다. 예를 들어
yum
패키지 관리자를 통해 최신 버전의 MongoDB를 설치한 경우입니다.cd /usr/share/doc/mongodb-enterprise-server-6.0.17 두 개의 MongoDB SNMP 파일을 대상 디렉토리에 복사합니다.
sudo cp MONGOD-MIB.txt /usr/share/snmp/mibs/ sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
SNMP 파일이 설치된 위치로 이동합니다. 예를 들어
apt
패키지 관리자를 통해 MongoDB를 설치한 경우입니다.cd /usr/share/doc/mongodb-enterprise-server MONGOD-MIB.txt.gz
파일 을 대상 디렉토리 에 복사하고 압축을 풉니다.sudo cp MONGOD-MIB.txt.gz /usr/share/snmp/mibs/ sudo gunzip /usr/share/snmp/mibs/MONGOD-MIB.txt.gz mongod.conf.subagent
파일 을 대상 디렉토리 에 복사합니다.sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
SNMP 파일이 설치된 위치로 이동합니다. 예를 들어
zypper
패키지 관리자를 통해 최신 버전의 MongoDB를 설치한 경우입니다.cd /usr/share/doc/packages/mongodb-enterprise-server 두 개의 MongoDB SNMP 파일을 대상 디렉토리에 복사합니다.
sudo cp MONGOD-MIB.txt /usr/share/snmp/mibs/ sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
SNMP를 구성합니다.
/etc/snmp/snmpd.conf
파일을 편집하고 다음을 추가합니다:
# sec.name source community com2sec local localhost mongodb # group.name sec.model sec.name group MyRWGroup any local # incl/excl subtree mask view all included .1 80 # context sec.model sec.level prefix read write notif access MyRWGroup "" any noauth 0 all all all master agentx AgentXSocket /tmp/agentx/master AgentXPerms 0777 0777 mongod mongod
snmpd
이(가) 아직 설치되지 않은 경우 설치합니다.sudo apt-get install snmpd /etc/snmp/snmpd.conf
파일을 편집하고 다음을 추가합니다:# sec.name source community com2sec local localhost mongodb # group.name sec.model sec.name group MyRWGroup any local # incl/excl subtree mask view all included .1 80 # context sec.model sec.level prefix read write notif access MyRWGroup "" any noauth 0 all all all AgentXSocket /tmp/agentx/master AgentXPerms 0777 0777 mongodb mongodb
/etc/snmp/snmpd.conf
파일을 편집하고 다음을 추가합니다:
# sec.name source community com2sec local localhost mongodb # group.name sec.model sec.name group MyRWGroup any local # incl/excl subtree mask view all included .1 80 # context sec.model sec.level prefix read write notif access MyRWGroup "" any noauth 0 all all all master agentx AgentXSocket /tmp/agentx/master AgentXPerms 0777 0777 mongod mongod
이 구성은 마스터 (snmpd
)와 하위 에이전트 (MongoDB) 간의 통신을 위한 UNIX 도메인 소켓을 정의하고 관련 MongoDB SNMP 필드에 액세스하기 위한 기본 SNMP 권한을 정의합니다.
참고
마스터를 로컬 호스트가 아닌 IP 주소에 바인딩하려면 해당 IP 주소를 /etc/snmp/snmpd.conf
파일의 agentaddress
필드에 추가하고 유효한 주소 범위를 허용하도록 적절한 네트워크 보안 ACL을 업데이트합니다. 주소 범위가 10.0.0.0/8이고 보안 이름이 "mynetwork"인 경우 mongod.conf.master
구성 파일에 예시로 제공되었습니다.
위의 구성은 예시로만 제공됩니다. 사이트 보안 요구 사항에 따라 권한을 사용자 지정할 수 있습니다. MongoDB 지원팀에서는 SNMP용 MongoDB 구성에 대한 지침을 제공할 수 있지만 운영 체제에서 SNMP를 구성하는 것은 지원 범위를 벗어납니다.
MongoDB를 시작합니다.
mongod
snmp-subagent
SNMP 마스터에 데이터를 전송하려면 로 를 시작합니다.
mongod --snmp-subagent
SNMP 데이터 조회를 확인합니다.
snmpwalk
테스트 명령을 사용하여 SNMP 쿼리에 MongoDB에 액세스할 수 있는지 확인합니다.
시스템에
snmpwalk
을(를) 설치합니다.sudo yum install net-snmp-utils 다음 매개변수를 사용하여
snmpwalk
를 실행하여mongod
에서 데이터를 수집할 수 있는지 확인합니다.snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
Debian 전용: 필요한 경우
/etc/apt/sources.list
파일 에non-free
리포지토리 를 추가하여snmp-mibs-downloader
패키지 에 액세스 합니다. 예를 예시 Debian 9 "Stretch"에서 프라이머리 리포지토리 항목은 다음과 같습니다.deb http://deb.debian.org/debian stretch main non-free deb-src http://deb.debian.org/debian stretch main non-free Debian / Ubuntu:
snmp-mibs-downloader
패키지 를 설치하여 필요한 MIB 파일을 제공한 다음snmpd
서비스를 다시 시작하여 새 MIB 파일을 다시 로드합니다.sudo apt-get update sudo apt-get -y install snmp-mibs-downloader sudo service snmpd restart Debian / Ubuntu: 다음 매개 변수를 사용하여
snmpwalk
를 실행하여mongod
에서 데이터를 수집 기능 있는지 확인합니다.snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
snmpwalk
명령은 특히 sysUpTime
및 memoryResident
와 같은 SNMP 필드의 현재 값을 표시해야 합니다.
선택 사항: MongoDB를 SNMP 마스터로 실행
테스트 목적으로 옵션과 함께 를 snmp-master
실행할 mongod
수 있습니다. 이렇게 하려면 하위 에이전트 구성 파일 대신 SNMP 마스터 구성 파일을 사용합니다. 압축을 푼 MongoDB 설치 파일이 포함된 디렉토리에서 다음을 수행합니다.
cp mongod.conf.master /etc/snmp/mongod.conf
참고
마스터를 로컬 호스트가 아닌 IP 주소에 바인딩하려면 해당 IP 주소를 /etc/snmp/mongod.conf
파일의 agentaddress
필드에 추가하고 유효한 주소 범위를 허용하도록 적절한 네트워크 보안 ACL을 업데이트합니다. 마스터 구성 파일에는 보안 이름이 "mynetwork"인 주소 범위가 예제로 제공되었습니다.
그런 다음 mongod
snmp-master
옵션으로 를 시작합니다.
mongod --snmp-master