Kibana에서 유닉스 타임 스탬프를 사용하는 방법

개요



Kibana(Elasticsearch)인 로그 기반에 Firehose 경유로 뇌직으로 Unix timestamp를 던지면, 훌륭하게 Date 형으로서 인식해 주지 않았기 때문에 메모. number 가 되어버린다…

Autoindex가 좋은 느낌으로 처리해주도록 템플릿을 쓰는 느낌.

아래 준비



이미 존재하는 index는 지워진다.


템플릿 설정


typeindex 를 알면 설정할 수 있다.

색인 정보



특히 신경 쓸 필요는 없고, hoge-*라든지 hoge-error-*라든지 hoge-error-log-*라든지로 좋을 것 같다.

type 정보



type이 파악되지 않은 경우는 Kinesis의 설정 화면을 보면 좋을 것 같다.

Amazon Kinesis -> Data Firehose -> 해당하는 스트림명 」으로 도착하는 페이지의 Amazon Elasticsearch Service destination 를 보면 알 수 있다.



이상을 근거로 한 설정치




PUT _template/hoge_template
{
  "template": "hoge-error-log-*",
  "mappings": {
    "log": {
      "properties":{
        "timestamp": {
          "type": "date",
          "format": "epoch_second"
        }
      }
    }
  }
}

데이터 던지기



적용 가능하게. 예를 들어 이런 데이터.

{
    "host": "ip.ap-northeast-1.compute.internal",
    "message": "test",
    "level": "err",
    "timestamp": 1560762549
}

동작 확인 (Create index pattern을 시도)



와우! 제대로 date로 인식하고 있습니다.





보충



부동 소수점인 데이터( date +%s.%3N 커맨드로 취할 수 있는 밀리 세컨드 첨부의 값)에서도 동작은 하지만, 내부 처리계로 정수형으로 반올림되고 있는 것 같다.

그래서, 해석에 밀리 세컨드가 필요한 때는, 제대로 밀리 세컨드 단위의 unix epoch(13 자리수)를 던지도록 하고, formatepoch_millis 를 지정하면 좋을 것 같다.

사용 가능한 format 정보는 아래를 참조하십시오.

format | Elasticsearch Reference [7.1] | Elastic

덧붙여서 epoch_millis||basic_ordinal_date_time_no_millis 같은 지정도 가능한 것 같다. 시도하지 않지만.

참고문헌



Elasticsearch에서 SORACOM Funnel 타임 스탬프를 자동 매핑하는 방법 - Qiita
Elasticsearch 자동 매핑의 일부를 덮어쓰는 방법 - Qiita

좋은 웹페이지 즐겨찾기