elasticsearch query

mkhome·2021년 9월 27일
0
  • 지난주 Kibana Slack 연동을 통해 서버 내 에러가 발생할 시에 일정 주기마다 슬랙에 메시지를 보내는 기능을 구현하였다.

Kibana Alerting

  • 해당 기능은 kibana에서 제공하는 Alerting을 통해 구현하였다.
  1. Create Monitor
    해당 버튼을 통해 우선 Monitor를 생성한다. 나 같은 경우는 실 서버는 1분간격으로 진행할 계획이기아 interval, 1 Minutes으로 설정을 하였다. 이후 Define Monitor에선 query, Index를 설정하였다. (현 회사에선 운영 서버는 일자별로 하나의 인덱스가 만들어지기에 index*와 같은 형태를 사용)

    이후 아래에 Define extraction query를 통해 찾을 내용을 입력하였다.
    쿼리는 여러 쿼리를 조합하기 위해 Bool option을 선택했다.

     "query": {
        "bool": {
            "must": [
                {
                    "range": {
                    },
                {
                    "match": 
                    }
                }
            ],
            "adjust_pure_negative": true,
            "boost": 1
        }

    이런 형태를 통해 필요한 값들만 추출함.

  2. Triggers
    해당 부분에서 Triggers 설정

    해당 사진에서 Destination에 slack을 연동
    이후 Triggers의 Configure Actions에서 해당 부분을 연동 시켜 준다.
    message 부분은 slack에 어떤식으로 보내질 지를 선택
    현재 위와 같은 인자들을 받아서 보내는 중
    하지만 추석동안 확인 결과 log의 status_code만을 판별해서 외부 API, 내부 에러를 잡지 못하기에 levelname으로 수정해야할 듯

Bool 인자

  1. must : 쿼리가 참인 도큐먼트 검색
  2. must_not : 쿼리가 거짓인 도큐먼트 검색
  3. should : 검색 결과 중 이 쿼리에 해당하는 도큐먼트의 "점수"를 증대
  4. filter : 쿼리가 참인 도큐먼트를 검색하나 "점수" 계산 X, must보다 검색 속도 빠르고 캐싱이 가능함.

0개의 댓글