콘텐츠로 이동

Zabbix API/Stream

Zabbix API/Stream 방식을 통해 Zabbix 모니터링 데이터를 수집합니다

설치 및 설정

Zabbix는 두 가지 방식으로 데이터를 전송할 수 있습니다

  • Zabbix API: 버전 요구사항 ≥ 5.0
  • Zabbix Stream: 버전 요구사항 ≥ 6.4

Guance는 두 가지 방식으로 Zabbix 모니터링 데이터를 수집할 수 있습니다

  • DataKit
  • DataFlux Function

DataKit 방식

pythond 설정 파일 구성

DataKit의 설정 파일 디렉터리 conf.d로 이동한 뒤, samples 디렉터리에서 pythond.conf.samplepythond.conf로 복사하고 아래와 같이 설정을 수정합니다

[[inputs.pythond]]
# Python 입력 이름
name = 'zabbix_collect'  # required

# Python을 실행할 시스템 환경 변수
#envs = ['LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH',]
envs = ['ZABBIX_HOST=http://127.0.0.1/zabbix', 'ZABBIX_USER=Admin', 'ZABBIX_PASSWD=zabbix', 'ZABBIX_VERSION=7.0', 'COLLECT_TYPE=api']

# Python 경로(recomment abstract Python path)
cmd = "python3" # required. python3 is recommended.

# Python 스크립트 상대 경로
dirs = ["zabbix"]
  • ZABBIX_HOST, ZABBIX_USER, ZABBIX_PASSWD, ZABBIX_VERSION에는 실제 Zabbix의 주소, 사용자명, 비밀번호, 버전, 타입을 입력합니다.
  • COLLECT_TYPEapi를 입력하면 이후 Zabbix API를 호출하여 데이터를 가져오고, 그렇지 않고 stream을 입력하면 Zabbix Stream을 호출하여 데이터를 가져옵니다.
  • 버전 요구사항상 Zabbix는 6.4 이상 버전에서만 stream 방식을 사용할 수 있습니다.

스크립트 복사

DataKit 디렉터리로 이동한 뒤 python.d 디렉터리에서 zabbix 디렉터리를 생성하고, 아래 링크를 클릭해 스크립트를 zabbix 디렉터리에 다운로드합니다

wget https://static.guance.com/integrations/zabbix/zabbix-collector.py

디렉터리 구조는 다음과 같습니다:

conf.d/
├── pythond.conf
python.d/
└── zabbix/
  └── zabbix-collector.py

설정이 끝나면 DataKit을 다시 시작합니다.

DataFlux Function 방식

Func 설치

Guance 통합 - 확장 - 호스팅 버전 Func를 개설하는 것을 권장합니다. 모든 사전 조건이 자동으로 설치되므로, 스크립트 설치를 계속 진행하면 됩니다

직접 Func를 배포하는 경우 Func 직접 배포를 참고하세요

Zabbix API 방식으로 지표 가져오기

  1. Func 콘솔에 로그인한 뒤, 【스크립트 마켓】을 클릭하여 Guance 스크립트 마켓으로 이동하고, integration_zabbix를 검색합니다

  2. 【설치】를 클릭한 뒤, 해당 파라미터를 입력합니다:

  3. zabbix host
  4. zabbix user
  5. zabbix password
  6. zabbix version

  7. 【배포 및 시작 스크립트】를 클릭하면 시스템이 자동으로 Startup 스크립트 세트를 생성하고, 해당 시작 스크립트를 자동으로 설정합니다.

  8. 활성화한 후에는 「관리 / 자동 트리거 설정」에서 해당 자동 트리거 설정을 확인할 수 있습니다. 【실행】을 클릭하면 주기 실행을 기다릴 필요 없이 즉시 한 번 실행됩니다. 잠시 후 실행 작업 기록과 해당 로그를 확인할 수 있습니다.

Zabbix Stream 방식으로 지표 가져오기

Zabbix Stream 방식으로 지표를 가져오려면 Zabbix 서버에 실행 가능한 stream url을 설정해야 하며, 현재는 Function에서 API를 생성하는 방식으로 이 url을 만듭니다.

  1. Func 콘솔에 로그인한 뒤, 【스크립트 마켓】을 클릭하여 Guance 스크립트 마켓으로 이동하고, integration_zabbix_stream을 검색한 다음 설치합니다.

  2. API를 생성합니다. func에 로그인한 뒤 관리 -> 동기 API (비동기 API 사용 권장)-> 새로 만들기를 클릭하고, 실행 항목에서 방금 가져온 스크립트의 Zabbix Receiver 메서드를 선택합니다. 파라미터 지정에서는 수집 작업과 관련된 설정을 구성해야 하며, 아래 파라미터 정보가 필요합니다:

  3. zabbix_host
  4. zabbix_user
  5. zabbix_passwd
  6. zabbix_version은 실제 값으로 설정
  7. base64는 Zabbix 입력 파라미터이며, 여기는 INPUT_BY_CALLER를 입력
    {
      "configs": {
        "zabbix_host": "<your-zabbix-host>",
        "zabbix_user": "<your-zabbix-user>",
        "zabbix_passwd": "<your-zabbix-password>",
        "zabbix_version": "7.0",
        "base64": "INPUT_BY_CALLER"
      }
    }
    
  8. Zabbix 커넥터를 생성합니다

    Zabbix에 로그인한 뒤 관리 -> 일반 -> 커넥터를 클릭하고 커넥터 생성을 클릭합니다. URL에는 앞 단계에서 생성한 url을 입력하고, 정보 유형은 숫자와 부동소수점을 선택한 뒤 추가를 클릭합니다.

  9. zabbix_server.conf를 수정하고 StartConnectors10으로 변경한 뒤 저장하고 zabbix-server 서비스를 재시작합니다.

toml StartConnectors=10

문서 평가

이 페이지가 도움이 되었나요?