fluent-plugin-prometheus 출시

3877 단어 prometheus
소스 코드 : htps : // 기주 b. 코 m / 카제 구스 리 / f
Gem : htps : / / 루 바이 게 ms. 오 rg / 게 ms / f ぅ 엔 tp

Prometheus은 최근에 만들어진 OSS 모니터링 시스템입니다. 발표 당시에는 조금 만지고 있는 사람이 있었습니다만 지금은 그다지 듣지 않게 되었습니다. 개발 자체는 순조롭게 진행되고 있는 것 같습니다. 일본어에서는 이 근처에서 소개되고 있습니다.
  • Prometheus: Go 언어로 작성된 모니터링 시스템
  • 데이터 시각화 앱의 신성, Prometheus를 CentOS에 설치하는 방법

  • Prometheus는 Graphite와 마찬가지로 메트릭을 수집하여 그래프화나 경고 등을 할 수 있는 것입니다.
    이번에 만든 fluent-plugin-prometheus은 Fluentd에서 메트릭을 수집하여 Prometheus와 연계합니다. 약간 다른 것은 Fluentd에서 Prometheus로 보내는 것이 아니라 Prometheus에서 Fluentd로 메트릭을 얻는 것입니다.

    여담입니다만 왜 Prometheus를 사용하고 있는가 하면, Kubernetes가 시스템 내부의 메트릭스 수집에 Prometheus를 사용하고 있기 때문입니다. 아직 Prometheus 자체 미묘한 곳도 있지만, 지금부터 고조 될지도 모릅니다.

    사용법



    fluent-plugin-prometheus에는 4개의 플러그인이 내장되어 있으므로 각각 설명합니다.

    prometheus input plugin



    플러그인에서 수집한 지표를 Prometheus에 전달하기 위한 엔드포인트를 설정하는 플러그인입니다. 반드시 설정해 둘 필요가 있습니다.
    <source>
      type prometheus
    </source>
    

    이제 포트 23231에서 LISTEN되므로 Prometheus에서 메트릭을 얻을 수 있습니다.

    prometheus_monitor input plugin



    Fluentd 본체에 내장으로 들어 있다 monitor_agent 플러그인의 정보를 자동적으로 취득해 Prometheus에 건네주는 플러그인입니다.

    현재 취득할 수 있는 것은 BufferedOutput 플러그인의 다음의 정보입니다.
  • 대기열 길이
  • 전체 데이터 크기
  • 현재 재시도

  • prometheus output/filter plugin



    주요 메트릭을 수집하는 플러그인입니다. Output과 Filter를 모두 지원합니다. 사용성은 거의 동일합니다. 이 섹션에서는 Filter에서 사용하는 방법을 설명합니다.
    <filter message>
      type prometheus
    
      ## レコード中のfooの値をcounterメトリクスとして収集
      <metric>
        name message_foo_counter                 ## Prometheusのmetric名
        type counter                             ## Prometheusのmetric type
        desc The total number of foo in message. ## Prometheusのmetricの説明文
        key foo                                  ## どのkeyの値を収集するか
        <labels>                                 ## 付与するラベル
          key foo                                ## key=foo でラベルを追加
          data_type ${type}                      ## レコード中のtypeの値をラベルの値として利用
        </labels>
      </metric>
    
      ## レコード中のbarの値をcounterメトリクスとして収集
      <metric>
        name message_bar_counter
        type counter
        desc The total number of bar in message.
        key bar
        <labels>
          key foo
        </labels>
      </metric>
    
      ## 2つのメトリクスの共通のラベル
      <labels>
        host ${hostname}
        tag ${tag}
      </labels>
    </filter>
    
    <match message>
      type stdout
    </match>
    

    위와 같이 메트릭을 수집하려는 레코드에 처리를 끼우도록 Filter를 추가하기만 하면 됩니다. Filter 플러그인이지만 원래 레코드의 값을 변경하지 않습니다.

    이 상태에서 message라는 태그 이름으로 foo나 bar를 포함하는 레코드를 보내면 message_foo_countermessage_bar_counter라는 메트릭이 생성되어 Prometheus에서 수집됩니다.

    Prometheus에서 중요한 개념인 라벨도 자유롭게 설정할 수 있도록 하고 있습니다. 레코드 안에서 값을 설정할 수 있으므로, 예를 들어 HTTP의 응답 코드를 라벨의 값으로서 추가해 응답 코드 마다의 비율을 그래프화 등도 가능합니다.

    튜토리얼



    데이터를 준비하거나 Prometheus 설정이 번거롭다면 튜토리얼도 준비되어 있으므로 시도해보십시오.

    좋은 웹페이지 즐겨찾기