공부/EFK

curl을 이용한 Kibana index 패턴 생성

토고미 2021. 3. 11. 15:25

Kibana UI에 접속하지 않고 인덱스를 만들 수 있다.

curl로 API 콜을 날리는 것이다.

 

기본 형식은 아래와 같다.

curl -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' 'http://localhost:5601/api/saved_objects/index-pattern/{인덱스패턴} '-d{"attributes":{"title":"인덱스패턴","timeFieldName":"타임필드네임"}}' 

 

예시로, 가장 흔하게 사용하는 logstash 인덱스 패턴을 만들어보자.

kibana 컨테이너에 직접 들어가서 아래의 해당 curl 커맨드를 입력한다.

$ curl -f -XPOST -H 'Content-Type: application/json' -H 'kbn-xsrf: anything' \
'http://localhost:5601/api/saved_objects/index-pattern/logstash-*' \
'-d{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

아래와 같은 응답이 왔다면 성공이다

{"type":"index-pattern","id":"logstash-*","attributes":
{"title":"logstash-*","timeFieldName":"@timestamp"},"references":[],
"migrationVersion":{"index-pattern":"6.5.0"},"updated_at":"2021-03-11T06:20:49.921Z",
"version":"WzgsMV0="}

 

 

참고로 해당 인덱스 패턴을 디폴트로 설정할 수도 있다.

내 환경에서는 어째서인지 제대로 작동하는 것 같지는 않지만 올려본다.

$ curl -XPOST -H "Content-Type: application/json" -H "kbn-xsrf: true" \
localhost:5601/settings/defaultIndex -d '{"value": "logstash-*"}'

응답은 다음과 같이 온다.

{"settings":{"buildNum":{"userValue":24337},"defaultIndex":{"userValue":"logstash-*"}}}