키바나를 사용하는 이유는 시각화를 통해 유저에게 직관적인 데이터의 상태 정보를 제공하기 위함이다.
키바나(Kibana)는 브라우저 인터페이스를 이용, 많은 데이터를 쉽게 검색, 시각화, 탐색 할 수 있는 오픈소스 분석 및 시각화 도구다. 또한 키바나는 엘라스틱서치(Elasticsearch), 로그스태시(Logstash), 비츠(Beats)와 함께 엘라스틱스택의 핵심 구성요소다.
http://localhost:5601/ # 로컬 접근
https://yourdomain.com:5601/ # 도메인 접근
http://localhost:5601/status
Management > Kibana > Index Patterns
Kibana에 등록하는 Index Patterns은 wildcard(*)로 사용할 수 있다. 이유는 한 가지 패턴으로 관리하다 보면 과부하가 발생할 수 있기 때문에 과부하를 피하기 위해 일/월 단위로 나누어 index를 생성한다.
만약 index를 나누어 생성하는데 wildcard로 되어있지 않으면 매번 index pattern을 등록해야 하기 때문에 kibana에서는 편의를 위해 wildcard(*)를 제공한다. 👍
들어가기에 앞서 Kibana를 사용하기 위해서는 Elasticsearch에 대한 연결을 설정했는지 먼저 확인 후 진행해야 한다. 또한 이번 장에서 진행할 Kibana 실습은 아래 사진과 같다.
데이터 매핑을 위해 해당 사이트를 참고해주세요 😎
{
"line_id": INT,
"play_name": "String",
"speech_number": INT,
"line_number": "String",
"speaker": "String",
"text_entry": "String",
}
{
"memory": INT,
"geo.coordinates": "geo_point",
"@timestamp": "date"
}
{
"account_number": INT,
"balance": INT,
"firstname": "String",
"lastname": "String",
"age": INT,
"gender": "M or F",
"address": "String",
"employer": "String",
"email": "String",
"city": "String",
"state": "S
}
데이터를 로드하기 전에는 매핑을 먼저 수행해야 한다.
인덱스의 문서를 논리적 그룹으로 나누고 필드의 검색 가능성, 토큰화되었는지, 별도의 단어로 분리되는지와 같은 필드의 특성을 지정하는것을 의미한다.
PUT /shakespeare
{
"mappings" : {
"_default_" : {
"properties" : {
"speaker" : {"type": "keyword" },
"play_name" : {"type": "keyword" },
"line_id" : { "type" : "integer" },
"speech_number" : { "type" : "integer" }
}
}
}
}
PUT /logstash-2015.05.18
#18~20까지 세개의 인덱스 구성 필요
{
"mappings": {
"log": {
"properties": {
"geo": {
"properties": {
"coordinates": {"type": "geo_popint"}
}
}
}
}
}
}
위 데이터에서 geo type은 위도, 경도의 데이터 타입을 결정할 때 사용이된다. 만약 위도, 경도의 데이터 로드 하는 경우에 데이터 타입을 geo type으로 지정해주지 않는다면 float형 type이 데이터 타입으로 매핑되는 경우가 발생할 수 있다.
• Invoke-RestMethod "http://localhost:9200/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
• Invoke-RestMethod "http://localhost:9200/shakespeare/doc/_bulk?pretty" -Method Post -
ContentType 'application/x-ndjson' -InFile "shakespeare_6.0.json"
• Invoke-RestMethod "http://localhost:9200/_bulk?pretty" -Method Post -ContentType 'application/xndjson' -InFile "logs.jsonl"
데이터의 경우 해당 사이트를 참고 하시면 됩니다. 😎