본문 바로가기
DevOps

Kibana에서 Webhook으로 알람받기

by 헬로월드 2021. 9. 26.
반응형

개요

Elasticsearch 시각화 도구인 Kibana를 통해서 서버에서 전송받은 알람중 특정 패턴에 트리거를 걸어서 알람을 받을 수 있습니다.

이번 글에서는 서버에서 500에러가 발생했을때 슬랙이나 잔디등으로 알람을 받을 수 있는 Webhook으로 알람을 전달하겠습니다.

 

Elasticsearch Alerting 설정

Destinations 등록

Webhook을 등록합니다.

Webhook URL은 미리 복사해 두세요.

Webhook URL을 입력합니다.

저는 Slack을 통한 webhook을 등록했습니다.

 

Monitor 등록

어떤 대상을 모니터링 할 것인지 등록합니다. 저는 API서버에서 500에러를 모니터링 하겠습니다.

'Monitor name'에 이름을 등록합니다.

'Method of definition'에 'Define using extraction query'로 선택해서 query로 조건을 설정합니다.

Index는 특정 index를 선택하거나 'logstash-*'같이 패턴으로 등록할 수 있습니다.

 

'Define extraction query'에 쿼리를 등록합니다.

1분마다 500에러를 찾는 쿼리입니다.

{
  "size": 0,
  "query": {
    "bool": {
    "filter": [
      {
        "range": {
          "@timestamp": {
            "from": "{{period_end}}||-1m",
            "to": "{{period_end}}",
            "include_lower": true,
            "include_upper": true,
            "format": "epoch_millis",
            "boost": 1
           }
        }
      }
    ],
    "must": [
      {
        "match": {
          "status": "500"
         }
      }
    ],
    "adjust_pure_negative": true,
    "boost": 1
    }
  },
  "aggregations": {}
}

 

 

Trigger 등록

Monitor등록하면 Trigger 등록 화면으로 이동합니다.

'Trigger name'를 등록해 줍니다.

Configure actions 에서 'Action name'을 설정해주고, 'Destination'에서 미리 설정해둔 slack destination을 선택합니다. 마지막으로 'Message subject'을 입력해주면 완료됩니다.

 

정상적으로 등록되었다면 슬랙으로 위와같은 메시지를 맏을 수 있습니다.

728x90