Skip to main content

SNMP를 사용하여 모니터링

GitHub Enterprise는 SNMP를 통해 디스크 사용량, CPU 사용률, 메모리 사용량 등에 대한 데이터를 제공합니다.

SNMP는 네트워크를 통해 디바이스를 모니터링하기 위한 일반적인 표준입니다. GitHub Enterprise Server 인스턴스의 상태를 모니터링하고 호스트 머신에 메모리, 스토리지 또는 프로세서 전원을 추가할 시기를 알 수 있도록 SNMP를 사용하도록 설정하는 것이 좋습니다.

GitHub Enterprise에는 표준 SNMP가 설치되어 있으므로 Nagios 또는 기타 모니터링 시스템에서 사용할 수 있는 많은 플러그 인을 활용할 수 있습니다.

SNMP v2c 구성

  1. 페이지의 오른쪽 상단에 있는 GitHub Enterprise Server의 관리 계정에서 을 클릭합니다.

  2. “Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.

  3. " 사이트 관리자" 사이드바에서 관리 콘솔 을 클릭합니다.

  4. "설정" 사이드바에서 모니터링을 클릭합니다.

  5. “모니터링”에서 SNMP 사용을 선택합니다.

  6. 커뮤니티 문자열 필드에 새 커뮤니티 문자열을 입력합니다. 비워 두면 기본값은 public입니다.

  7. "설정" 사이드바에서 설정 저장을 클릭합니다.

    참고: 관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.

  8. 구성 실행이 완료될 때까지 기다립니다.

  9. 네트워크에서 SNMP 지원을 사용하여 별도의 워크스테이션에서 다음 명령을 실행하고 SNMP 구성을 테스트합니다.

    # community-string is your community string
    # hostname is the IP or domain of your Enterprise instance
    $ snmpget -v 2c -c COMMUNITY-STRING -O e HOSTNAME hrSystemDate.0
    

이렇게 하면 GitHub Enterprise Server 인스턴스 호스트의 시스템 시간이 반환됩니다.

사용자 기반 보안

SNMP v3를 사용하도록 설정하면 USM(사용자 보안 모델)을 통해 향상된 사용자 기반 보안을 활용할 수 있습니다. 각 고유 사용자에 대해 보안 수준을 지정할 수 있습니다.

  • noAuthNoPriv: 이 보안 수준은 인증을 제공하지 않으며 개인 정보도 제공하지 않습니다.
  • authNoPriv: 이 보안 수준은 인증을 제공하지만 개인 정보는 제공하지 않습니다. 어플라이언스 쿼리에는 사용자 이름 및 암호(8자 이상이어야 함)가 필요합니다. SNMPv2와 유사한 암호화 없이 정보가 전송됩니다. 인증 프로토콜은 MD5 또는 SHA일 수 있으며 기본값은 SHA입니다.
  • authPriv: 이 보안 수준은 인증과 개인 정보를 제공합니다. 8자 이상의 인증 암호를 포함한 인증이 필요하며 응답은 암호화됩니다. 개인 정보 암호는 필요하지 않지만 제공된 경우 8자 이상이어야 합니다. 개인 정보 암호가 제공되지 않으면 인증 암호가 사용됩니다. 개인 정보 프로토콜은 DES 또는 AES일 수 있으며 기본값은 AES입니다.

SNMP v3에 대한 사용자 구성

  1. 페이지의 오른쪽 상단에 있는 GitHub Enterprise Server의 관리 계정에서 을 클릭합니다.

  2. “Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.

  3. " 사이트 관리자" 사이드바에서 관리 콘솔 을 클릭합니다.

  4. "설정" 사이드바에서 모니터링을 클릭합니다.

  5. “모니터링”에서 SNMP 사용을 선택합니다.

  6. SNMP v3를 선택합니다.

  7. “사용자 이름”에 SNMP v3 사용자의 고유한 사용자 이름을 입력합니다.

  8. 보안 수준 드롭다운 메뉴를 선택한 다음 SNMP v3 사용자의 보안 수준을 클릭합니다.

  9. authnopriv 보안 수준이 부여된 SNMP v3 사용자의 경우 인증을 구성합니다.

    • "인증 암호"에서 인증 암호를 입력합니다.
    • "인증 암호" 옆에 있는 프로토콜 드롭다운 메뉴를 선택한 다음 사용하려는 인증 프로토콜을 클릭합니다.
    • 외부 모니터링 시스템에 SHA 알고리즘이 필요한 경우 GitHub Enterprise Server은(는) 현재 SHA-1을 사용합니다.
  10. authpriv 보안 수준이 부여된 SNMP v3 사용자의 경우 인증을 구성합니다.

    • "인증 암호"에서 인증 암호를 입력합니다.
    • "인증 암호" 옆에 있는 프로토콜 드롭다운 메뉴를 선택한 다음 사용하려는 인증 프로토콜을 클릭합니다.
    • 필요에 따라 “개인 정보 암호”에 개인 정보 암호를 입력합니다.
    • “개인 정보 암호”의 옆에 있는 프로토콜 드롭다운 메뉴를 선택한 다음 사용하려는 개인 정보 프로토콜 메서드를 클릭합니다.
    • 외부 모니터링 시스템에 AES 알고리즘이 필요한 경우 GitHub Enterprise Server은(는) 현재 AES-128을 사용합니다.
  11. 사용자 추가를 클릭합니다.

  12. "설정" 사이드바에서 설정 저장을 클릭합니다.

    참고: 관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.

  13. 구성 실행이 완료될 때까지 기다립니다.

SNMP 데이터 쿼리

어플라이언스 관련 하드웨어 및 소프트웨어 수준 정보는 SNMP v3에서 사용할 수 있습니다. noAuthNoPrivauthNoPriv 보안 수준에 대한 암호화 및 개인 정보 보호 기능이 없으므로 그에 따라 SNMP 보고서에서 hrSWRun 테이블(1.3.6.1.2.1.25.4)을 제외합니다. authPriv 보안 수준을 사용하는 경우 이 테이블이 포함됩니다. 자세한 내용은 “OID 참조 설명서”를 참조하세요.

SNMP v2c를 사용하면 어플라이언스 관련 하드웨어 수준 정보만 사용할 수 있습니다. GitHub Enterprise 내의 애플리케이션 및 서비스에는 메트릭을 보고하도록 구성된 OID가 없습니다. 네트워크에서 SNMP를 지원하는 별도의 워크스테이션에서 snmpwalk를 실행하여 볼 수 있는 여러 MIB를 사용할 수 있습니다.

# community-string is your community string
# hostname is the IP or domain of your Enterprise instance
$ snmpwalk -v 2c -c COMMUNITY-STRING -O e HOSTNAME

SNMP에 사용 가능한 MIB 중에서 가장 유용한 것은 HOST-RESOURCES-MIB(1.3.6.1.2.1.25)입니다. 이 MIB의 몇 가지 중요한 개체는 아래 테이블을 참조하세요.

속성OID설명
hrSystemDate.21.3.6.1.2.1.25.1.2현지 날짜 및 시간의 호스트 개념.
hrSystemUptime.01.3.6.1.2.1.25.1.1.0호스트가 마지막으로 초기화된 이후의 기간.
hrMemorySize.01.3.6.1.2.1.25.2.2.0호스트의 RAM 크기.
hrSystemProcesses.01.3.6.1.2.1.25.1.6.0현재 호스트에서 로드되거나 실행 중인 프로세스 컨텍스트의 수.
hrStorageUsed.11.3.6.1.2.1.25.2.3.1.6.1호스트에서 사용된 스토리지 공간의 양(hrStorageAllocationUnits).
hrStorageAllocationUnits.11.3.6.1.2.1.25.2.3.1.4.1hrStorageAllocationUnit의 크기(바이트).

예를 들어 SNMP v3로 hrMemorySize를 쿼리하려면 네트워크에서 SNMP를 지원하는 별도의 워크스테이션에서 다음 명령을 실행합니다.

# username is the unique username of your SNMP v3 user
# auth password is the authentication password
# privacy password is the privacy password
# hostname is the IP or domain of your Enterprise instance
$ snmpget -v 3 -u USERNAME -l authPriv \
  -A "AUTH PASSWORD" -a SHA \
  -X "PRIVACY PASSWORD" -x AES \
  -O e HOSTNAME HOST-RESOURCES-MIB::hrMemorySize.0

SNMP v2로 hrMemorySize를 쿼리하려면 네트워크에서 SNMP를 지원하는 별도의 워크스테이션에서 다음 명령을 실행합니다.

# community-string is your community string
# hostname is the IP or domain of your Enterprise instance
snmpget -v 2c -c COMMUNITY-STRING HOSTNAME HOST-RESOURCES-MIB::hrMemorySize.0

**참고: ** 어플라이언스에서 실행되는 서비스에 대한 정보 유출을 방지하기 위해 SNMP v3에서 authPriv 보안 수준을 사용하지 않는 한 결과 SNMP 보고서에서 hrSWRun 테이블(1.3.6.1.2.1.25.4)을 제외합니다. authPriv 보안 수준을 사용하는 경우 hrSWRun 테이블이 포함됩니다.

SNMP의 일반적인 시스템 특성에 대한 OID 매핑 관련 자세한 내용은 “Linux SNMP OID의 CPU, 메모리, 디스크 통계”를 참조하세요.