11.2. snmptrapd구성
snmptrapd 데몬에 snmp-gateway 서비스를 생성할 때 지정해야 하는 auth 설정이 포함되어 있으므로 snmptrapd 데몬에서 snmp-gateway (네트워크 관리 프로토콜) 대상을 구성하는 것이 중요합니다.
SNMP 게이트웨이 기능은 Prometheus 스택에서 생성된 경고를 SNMP 관리 플랫폼에 노출하는 수단을 제공합니다. snmptrapd 툴을 기반으로 SNMP 트랩을 대상에 구성할 수 있습니다. 이 도구를 사용하면 하나 이상의 SNMP 트랩 리스너를 설정할 수 있습니다.
다음 매개변수는 구성에 중요합니다.
-
engine-id는 장치, 16진수의 고유 식별자이며 SNMPV3 게이트웨이에 필요합니다. 이 매개변수에는 '8000C53F_CLUSTER_FSID_WITHOUT_DASHES_'를 사용하는 것이 좋습니다. -
SNMP_COMMUNITY_FOR_SNMPV2 매개변수인
snmp-community는 SNMPV2c 게이트웨이에 대해공용입니다. -
AUTH_PROTOCOL 인
auth-protocol은 SNMPV3 게이트웨이의 경우 필수이며 기본적으로SHA입니다. -
PRIVACY_PROTOCOL
인 개인 정보 보호 프로토콜은 SNMPV3 게이트웨이에 필요합니다. - 암호화가 있는 SNMPV3 게이트웨이에는 PRIVACY_PASSWORD 가 필요합니다.
- SNMP_V3_AUTH_USER_NAME 은 사용자 이름이며 SNMPV3 게이트웨이에는 필수입니다.
- SNMP_V3_AUTH_PASSWORD 는 암호이며 SNMPV3 게이트웨이에는 필수입니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- 노드에 대한 루트 수준 액세스.
-
Red Hat Enterprise Linux 시스템에
firewalld를 설치합니다.
절차
SNMP 관리 호스트에서 SNMP 패키지를 설치합니다.
예제
dnf install -y net-snmp-utils net-snmp
[root@host01 ~]# dnf install -y net-snmp-utils net-snmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow SNMP에 대해 포트 162를 열어 경고를 받습니다.
예제
firewall-cmd --zone=public --add-port=162/udp firewall-cmd --zone=public --add-port=162/udp --permanent
[root@host01 ~]# firewall-cmd --zone=public --add-port=162/udp [root@host01 ~]# firewall-cmd --zone=public --add-port=162/udp --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 정보 베이스(MIB)를 구현하여 SNMP 알림을 감지하고 대상 호스트에서 SNMP 지원을 개선합니다. 기본 리포지토리에서 원시 파일을 복사합니다. https://github.com/ceph/ceph/blob/master/monitoring/snmp/CEPH-MIB.txt
예제
curl -o CEPH_MIB.txt -L https://raw.githubusercontent.com/ceph/ceph/master/monitoring/snmp/CEPH-MIB.txt scp CEPH_MIB.txt root@host02:/usr/share/snmp/mibs
[root@host01 ~]# curl -o CEPH_MIB.txt -L https://raw.githubusercontent.com/ceph/ceph/master/monitoring/snmp/CEPH-MIB.txt [root@host01 ~]# scp CEPH_MIB.txt root@host02:/usr/share/snmp/mibsCopy to Clipboard Copied! Toggle word wrap Toggle overflow snmptrapd디렉터리를 생성합니다.예제
mkdir /root/snmptrapd/
[root@host01 ~]# mkdir /root/snmptrapd/Copy to Clipboard Copied! Toggle word wrap Toggle overflow SNMP 버전을 기반으로 각 프로토콜에 대해
snmptrapd디렉터리에 구성 파일을 만듭니다.구문
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n createuser -e 0x_ENGINE_ID_ SNMPV3_AUTH_USER_NAME AUTH_PROTOCOL SNMP_V3_AUTH_PASSWORD PRIVACY_PROTOCOL PRIVACY_PASSWORD authuser log,execute SNMP_V3_AUTH_USER_NAME authCommunity log,execute,net SNMP_COMMUNITY_FOR_SNMPV2
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n createuser -e 0x_ENGINE_ID_ SNMPV3_AUTH_USER_NAME AUTH_PROTOCOL SNMP_V3_AUTH_PASSWORD PRIVACY_PROTOCOL PRIVACY_PASSWORD authuser log,execute SNMP_V3_AUTH_USER_NAME authCommunity log,execute,net SNMP_COMMUNITY_FOR_SNMPV2Copy to Clipboard Copied! Toggle word wrap Toggle overflow SNMPV2c의 경우 다음과 같이
snmptrapd_public.conf파일을 만듭니다.예제
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n authCommunity log,execute,net public
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n authCommunity log,execute,net publicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기에서
공용설정은snmp-gateway서비스를 배포할 때 사용되는snmp_community설정과 일치해야 합니다.인증을 사용하는 SNMPV3의 경우 다음과 같이
snmptrapd_auth.conf파일을 만듭니다.예제
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n createuser -e 0x8000C53Ff64f341c655d11eb8778fa163e914bcc myuser SHA mypassword authuser log,execute myuser
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n createuser -e 0x8000C53Ff64f341c655d11eb8778fa163e914bcc myuser SHA mypassword authuser log,execute myuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 0x8000C53C53Ff64f341c655d11eb8778fa163e914bcc문자열은engine_id이고myuser및mypassword는 자격 증명입니다. 암호 보안은SHA알고리즘으로 정의됩니다.이는
snmp-gateway데몬 배포 설정에 해당합니다.예제
snmp_v3_auth_username: myuser snmp_v3_auth_password: mypassword
snmp_v3_auth_username: myuser snmp_v3_auth_password: mypasswordCopy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 및 암호화를 사용하는 SNMPV3의 경우 다음과 같이
snmptrapd_authpriv.conf파일을 만듭니다.예제
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n createuser -e 0x8000C53Ff64f341c655d11eb8778fa163e914bcc myuser SHA mypassword DES mysecret authuser log,execute myuser
format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n createuser -e 0x8000C53Ff64f341c655d11eb8778fa163e914bcc myuser SHA mypassword DES mysecret authuser log,execute myuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 0x8000C53C53Ff64f341c655d11eb8778fa163e914bcc문자열은engine_id이고myuser및mypassword는 자격 증명입니다. 암호 보안은SHA알고리즘에 의해 정의되고DES는 개인 정보 암호화의 유형입니다.이는
snmp-gateway데몬 배포 설정에 해당합니다.예제
snmp_v3_auth_username: myuser snmp_v3_auth_password: mypassword snmp_v3_priv_password: mysecret
snmp_v3_auth_username: myuser snmp_v3_auth_password: mypassword snmp_v3_priv_password: mysecretCopy to Clipboard Copied! Toggle word wrap Toggle overflow
SNMP 관리 호스트에서 데몬을 실행합니다.
구문
/usr/sbin/snmptrapd -M /usr/share/snmp/mibs -m CEPH-MIB.txt -f -C -c /root/snmptrapd/CONFIGURATION_FILE -Of -Lo :162
/usr/sbin/snmptrapd -M /usr/share/snmp/mibs -m CEPH-MIB.txt -f -C -c /root/snmptrapd/CONFIGURATION_FILE -Of -Lo :162Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/usr/sbin/snmptrapd -M /usr/share/snmp/mibs -m CEPH-MIB.txt -f -C -c /root/snmptrapd/snmptrapd_auth.conf -Of -Lo :162
[root@host01 ~]# /usr/sbin/snmptrapd -M /usr/share/snmp/mibs -m CEPH-MIB.txt -f -C -c /root/snmptrapd/snmptrapd_auth.conf -Of -Lo :162Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 클러스터에서 경고가 트리거되면 SNMP 관리 호스트에서 출력을 모니터링할 수 있습니다. SNMP 트랩 및 MITB에 의해 디코딩된 트랩도 확인합니다.
예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 예에서는 Prometheus 모듈을 비활성화한 후 경고가 생성됩니다.