ELK 설치 하고 실습 하기 2 - Kibana 설치
2017. 6. 16. 17:13ㆍDB&NoSQL/Elasticsearch,ELK
ELK 설치 하고 실습 하기 2 - Kibana 설치
아래 모든 설치 전에 사전에 java 최소 버전은 8이어야 한다고 당부 .
*주의!!!
이 문서는 ELK에 있는 getting started Guide을 되는대로 번역을 해 놓은 것입니다. (장담할수없어요.. 참고만 하세요)
이 문서는 ELK에 있는 getting started Guide을 되는대로 번역을 해 놓은 것입니다. (장담할수없어요.. 참고만 하세요)
- 설치
- 다운로드 : https://www.elastic.co/downloads/kibana
- 설치가이드 : https://www.elastic.co/guide/en/kibana/current/getting-started.html
- Load a sample data set into Elasticsearch
- Define an index pattern
- Explore the sample data with Discover
- Set up visualizations of the sample data
- Assemble visualizations into a Dashboard
- config/kibana.yml 을 열어서 "elasticsearch.url"에 위에서 생성한 Elasticsearch instance로 맞춘다.(기본으로 했으니 맞겠지)
- bin/kibana.bat 을 실행한다.
- 브라우저에서 http://localhost:5601 보자
- index patterns: please specify a default index pattern 이라고 나옴.
- Kibana : Loading Sample Data
- 윌리엄 세익스피어 전체 작품을 적절하게 필드로 파싱한 json
https://download.elastic.co/demos/kibana/gettingstarted/shakespeare.json
{
"index":{
"_index":"shakespeare"
,"_type":"act"
,"_id":0
}
}
{
"line_id":1
,"play_name":"Henry IV"
,"speech_number":""
,"line_number":""
,"speaker":""
,"text_entry":"ACT I"
}{
"line_id": INT,
"play_name": "String",
"speech_number": INT,
"line_number": "String",
"speaker": "String",
"text_entry": "String",
} - 무작위로 생성한 가상 계정 세트
https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip
{
"index":{
"_id":"1"
}
}
{
"account_number":1
,"balance":39225
,"firstname":"Amber"
,"lastname":"Duke"
,"age":32
,"gender":"M"
,"address":"880 Holmes Lane"
,"employer":"Pyrami"
,"email":"amberduke@pyrami.com"
,"city":"Brogan"
,"state":"IL"
}{ "account_number": INT, "balance": INT, "firstname": "String", "lastname": "String", "age": INT, "gender": "M or F", "address": "String", "employer": "String", "email": "String", "city": "String", "state": "String" }
- 랜덤으로 생성된 로그 파일들의 세트
https://download.elastic.co/demos/kibana/gettingstarted/logs.jsonl.gz
{
"index":
{
"_index":"logstash-2015.05.18"
,"_type":"log"
}
}
blablablabla...{ "memory": INT, "geo.coordinates": "geo_point" "@timestamp": "date" }
- 세익스피어 와 로그 데이터 셋을 로드 하기 전에, 우리는 필드에 대한 매핑을 세팅할 필요가 있다.
매핑은 인덱스안에 문서를 논리적 그룹으로 나누고 ,
필드의 검색가능성 또는 토큰화 되었는지, 또는 별도의 단어로 분리 되는지 와 같은 필드의 특성들을 명시합니다. - 세익스피어 데이터 셋에 매핑을 세팅하기 위해, KIbana에 Dev tools에 Console에서 아래 명령어를 치세요.
{
"line_id":1
,"play_name":"Henry IV"
,"speech_number":""
,"line_number":""
,"speaker":""
,"text_entry":"ACT I"
}PUT /shakespeare
{
"mappings" : {
"_default_" : {
"properties" : {
"speaker" : {"type": "keyword" },
"play_name" : {"type": "keyword" },
"line_id" : { "type" : "integer" },
"speech_number" : { "type" : "integer" }
}
}
}
}
- 윌리엄 세익스피어 전체 작품을 적절하게 필드로 파싱한 json
- 이 매핑은 데이터 셋에 대한 다음과 같은 특성을 지정합니다.
- speaker와 play_name 필드가 keyword 필드이기 때문에, 이 둘은 분석되지 않습니다.
문자열을 싱글 유닛으로 다뤄집니다. 다수의 단어들이 포함되어 있더라도. - line_id 와 speech_number 필드는 integer 형입니다.
- speaker와 play_name 필드가 keyword 필드이기 때문에, 이 둘은 분석되지 않습니다.
- 로그 데이터 셋은 그들의 필드들에 geo_point 타입을 적용함으로써
로그에서 위도/경도(latitude/longitude) 쌍에 지리적 위치로 레이블을 지정하는 매핑을 요구합니다.PUT /logstash-2015.05.18
{
"mappings": {
"log": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
}
}
}
}
}PUT /logstash-2015.05.19 { "mappings": { "log": { "properties": { "geo": { "properties": { "coordinates": { "type": "geo_point" } } } } } } }
PUT /logstash-2015.05.20 { "mappings": { "log": { "properties": { "geo": { "properties": { "coordinates": { "type": "geo_point" } } } } } } }
- account data 셋은 매핑을 요구하지 않습니다.
그래서, 이 시점에, 아래 명령으로 데이터 셋을 로드 하는 Elasticsearch bulk를 사용할 준비가 되었습니다.curl -H "Content-Type:application/x-ndjson" -XPOST "localhost:9200/bank/account/_bulk?pretty" --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary '@shakespeare.json'
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary '@logs.jsonl'
- account data 셋은 매핑을 요구하지 않습니다.
- 등록 확인은...
GET /_cat/indices?v
- 등록 확인은...
- 그럼 아래와 같이 등록된 정보가 잘 나온다고 합니다.health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open bank 5 1 1000 0 418.2kb 418.2kb
yellow open shakespeare 5 1 111396 0 17.6mb 17.6mb
yellow open logstash-2015.05.18 5 1 4631 0 15.6mb 15.6mb
yellow open logstash-2015.05.19 5 1 4624 0 15.7mb 15.7mb
yellow open logstash-2015.05.20 5 1 4750 0 16.4mb 16.4mb
- 그럼 아래와 같이 등록된 정보가 잘 나온다고 합니다.
- Kibana : Define Index Pattern
- Elasticsearch에 로드된 각각의 데이터 셋은 index pattern을 가지고 있습니다.
- index pattern은 다수의 지시자들과 매칭할수 있는 optional wildcards를 갖는 문자열 입니다.
- 공통로깅에서는 일반적인 인덱스 이름은 날자를 포함합니다. (YYYY.MM.DD 포멧으로)
5월을 위한 인덱스 패턴은 "logstash-2015-05*" 이 겠죠. - management > index pattern > Add New
위의 shakespeare plays 와 financial accounts 같은 데이터 셋은 time-series data를 포함하지 않습니다.
index contains time-bases evenets box 를 uncheck.(위 데이터셋에 인덱스 패턴을 생성할때) - 기본적인 것이지만, 인덱스 패턴을 정의할 때 해당 패턴에 일치하는 인덱스가 Elasticsearch에 존재 해야 함.
- Kibana : Define Index Pattern
'DB&NoSQL > Elasticsearch,ELK' 카테고리의 다른 글
Spring Boot + Spring Data + Elasticsearch 구현과 고찰 (0) | 2017.07.07 |
---|---|
ElasticSearch Getting Started - with RESTClient on Java (1) | 2017.06.29 |
ElasticSearch Getting Started - 3 (0) | 2017.06.28 |
ElasticSearch Getting Started - 2 (0) | 2017.06.28 |
ElasticSearch Getting Started - 1 (0) | 2017.06.23 |
ELK 설치 하고 실습 하기 4- logstash 와 Filebeats 그리고 Elasticsearch 가지고 놀기 (434) | 2017.06.16 |
ELK 설치 하고 실습 하기 3 - logstash & Filebeats 설치 (0) | 2017.06.16 |
ELK 설치 하고 실습 하기 1 - Elasticsearch 설치 (0) | 2017.06.16 |
ELK Stack(Elasticsearch + Logstash+Kibana+FileBeats) 개요 (0) | 2017.06.16 |