Zabbix 4.2 4.4에서 사용할 수 있는 Prometheus의 exporter 값을 완전 자동으로 연계하여 모니터링하는 방법

3314 단어 zabbixprometheus
제목대로 Zabbix 4.2 및 4.4에서 사용할 수 있는 Promehteus의 exporter 값을 검색하여 전자동으로 감시 연계하는 방법을 소개합니다.

공식 문서

Prometheus의 exporter는 매우 폭넓게 다양한 제품에 대응하고 있으므로 편리합니다.
Prometheus만으로 완결하는 운용 현장이라면 이런 일을 할 필요는 없습니다만, Zabbix에 제휴해 통합적으로 관리하고 싶다고 할 때에는 이 방법을 사용하면 조금 편해질지도 하는 이야기입니다.

협력 절차



다음과 같은 3단계로 실행하면 OK입니다.
  • ① exporter로부터 정보 취득하는 HTTP 에이전트 아이템을 등록
  • ② ①의 아이템을 부모로 한 의존 아이템의 디스커버리 룰을 작성
  • (Prometheus → JSON 변환, LLD 매크로 화 수행)

  • ③ ②의 아이템 프로토 타입으로 의존 아이템을 LLD 매크로를 사용하여 등록

    절차 1 expoerter에서 정보를 얻을 HTTP 에이전트 항목 등록





    유형을 HTTP 에이전트로 설정하고 URL에 exporter 엔드포인트 URL을 지정합니다. (http://hostname/metrics라든지)
    설정을 템플릿화한다면, 이 URL 부분은 템플릿의 매크로화해 두면 좋다고 생각합니다.
    취득 결과는 Prometheus의 포맷의 텍스트 형식으로 돌아오므로 「텍스트」로 해 둡니다.



    취득 결과는 상기와 같은 느낌으로/metrics에 액세스했을 때의 원시 데이터입니다.

    2단계 종속 항목에 대한 검색 규칙 만들기



    디스커버리 룰 자체를 HTTP 에이전트로 해도 상관없습니다만, 그렇게 하면 3단계에서 설정하는 아이템 프로토타입도 HTTP 에이전트로 하지 않으면 안 되기도 하고, exporter에의 호출 기회가 증가해 버리기 때문에, 1단계에서 정리 가져와 그 값을 활용하도록 종속 항목으로 대응합니다.





    Preprocessing에서 Promehteus 형식에서 특정 메트릭 정보를 검색하여 JSON 변환합니다.
    여기의 Parameters의 지정 방법은 여러가지 가능합니다만, 이 후의 아이템 프로토타입과 페어로 묶도록(듯이) 메트릭스의 이름 마다 디스커버리 시키는 것 같은 느낌의 필터 지정이 좋다고 생각합니다.
    위의 예는 KONG API의 exporter에서 kong_http_status라는 메트릭 부분을 검색하는 예입니다.



    LLD 매크로로 이름이 지정된 매크로로 JSON 변환된 부분의 값을 등록할지 여부를 지정합니다.

    3단계 종속 항목의 항목 프로토타입 만들기



    마지막으로 LLD 매크로를 사용하여 항목 프로토타입을 만듭니다. 여기에서도 1단계에서 만든 항목을 부모로 만든 종속 항목으로 설정합니다.




    Preprocessing에서 2단계에서 설정한 LLD 매크로를 활용하여 여러 항목이 있을 때 검색 결과를 확장하여 자동으로 생성되도록 정의합니다.

    이번에는 http의 상태 코드 마다나 서비스 마다 exporter로 취득할 수 있는 메트릭이었으므로, {#CODE}나 {#SERVICE}라는 명칭을 라벨로서 지정해 취득할 수 있도록 하고 있습니다.

    요약



    절차는 이것뿐입니다. exporter마다 메트릭스의 사양은 정해져 있다고 생각하기 때문에, 사양에 맞추어 템플릿화해 두면, Zabbix Agent도 필요없이 여러가지 감시를 할 수 있군요.

    좋은 웹페이지 즐겨찾기