Mac에서 docker 컨테이너를 사용하여 elasticsearch 및 kibana 시작
10078 단어 도커Elasticsearch
docker 컨테이너를 사용하여 elasticsearch 및 kibana 시작
아래를 참조하여 docker 설치
Install Compose on Linux
elasticsearch 및 kibana를 시작하기 위한 파일(docker-compose.yaml) 준비
mkdir ~/test
cd ~/test
vim docker-compose.yaml
docker-compose.yamlversion: "3"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
environment:
- discovery.type=single-node
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
volumes:
- es-data:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.6.2
ports:
- 5601:5601
volumes:
es-data:
docker 컨테이너 시작
docker-compose up -d
localhost : 5601에 브라우저에서 액세스하여 다음과 같이 kibana가 보이면 OK

평가 평가
아래를 참고로 시험으로 kibana를 이용해 보겠습니다.
Elasticsearch 6.1에서 추가된 Machine Learning의 새로운 기능을 사용해 보았다. 예측 기능이 재미있다!
뉴욕시의 택시 승강 데이터로 Machine Learning 체험
로그 데이터 얻기
wget https://s3.amazonaws.com/nyc-tlc/trip+data/yellow_tripdata_2016-11.csv
curl https://s3.amazonaws.com/nyc-tlc/misc/taxi+_zone_lookup.csv | cut -d, -f 1,3 | tail +2 > taxi.csv
elastic search에 제공하는 로그 형식으로 변환하는 logstash 설치
brew install logstash
logstash config 준비
nyc-taxi-yellow-translate-logstash.confinput {
stdin { type => "tripdata" }
}
filter {
csv {
columns => ["VendorID","tpep_pickup_datetime","tpep_dropoff_datetime","passenger_count","trip_distance","RatecodeID","store_and_fwd_flag","PULocationID","DOLocationID","payment_type","fare_amount","extra","mta_tax","tip_amount","tolls_amount","improvement_surcharge","total_amount"]
convert => {"extra" => "float"}
convert => {"fare_amount" => "float"}
convert => {"improvement_surcharge" => "float"}
convert => {"mta_tax" => "float"}
convert => {"tip_amount" => "float"}
convert => {"tolls_amount" => "float"}
convert => {"total_amount" => "float"}
convert => {"trip_distance" => "float"}
convert => {"passenger_count" => "integer"}
}
date {
match => ["tpep_pickup_datetime", "yyyy-MM-dd HH:mm:ss", "ISO8601"]
timezone => "EST"
}
date {
match => ["tpep_pickup_datetime", "yyyy-MM-dd HH:mm:ss", "ISO8601"]
target => ["@tpep_pickup_datetime"]
remove_field => ["tpep_pickup_datetime"]
timezone => "EST"
}
date {
match => ["tpep_dropoff_datetime", "yyyy-MM-dd HH:mm:ss", "ISO8601"]
target => ["@tpep_dropoff_datetime"]
remove_field => ["tpep_dropoff_datetime"]
timezone => "EST"
}
translate {
field => "RatecodeID"
destination => "RatecodeID"
dictionary => [
"1", "Standard rate",
"2", "JFK",
"3", "Newark",
"4", "Nassau or Westchester",
"5", "Negotiated fare",
"6", "Group ride"
]
}
translate {
field => "VendorID"
destination => "VendorID_t"
dictionary => [
"1", "Creative Mobile Technologies",
"2", "VeriFone Inc"
]
}
translate {
field => "payment_type"
destination => "payment_type_t"
dictionary => [
"1", "Credit card",
"2", "Cash",
"3", "No charge",
"4", "Dispute",
"5", "Unknown",
"6", "Voided trip"
]
}
translate {
field => "PULocationID"
destination => "PULocationID_t"
dictionary_path => "taxi.csv"
}
translate {
field => "DOLocationID"
destination => "DOLocationID_t"
dictionary_path => "taxi.csv"
}
mutate {
remove_field => ["message", "column18", "column19", "RatecodeID", "VendorID", "payment_type", "PULocationID", "DOLocationID"]
}
}
output {
file {
path => "./output.log"
codec => json_lines
}
}
실행
tail +2 yellow_tripdata_2016-11.csv | logstash -f nyc-taxi-yellow-translate-logstash.conf
cat output.log | head -100000 > output2.log
kibana에 업로드
Upload data from logfile

output2.log 드래그 앤 드롭

그대로 가져오기





로그 분석 결과가 출력되면 OK

Anomaly Detection
Machine learning --> Anomaly Detection에서 이상 검지를 할 수 있는 것 같습니다.
일단 같은 데이터(output2.log)를 주어 보자.

이상인지 여부를 score로 판정해 주고 있을 것 같다.
정확하게 이상 검출하기 위해서는 데이터의 부여 방법에 궁리가 필요할 것 같다.
Machine Learning shown as unavailable
Machine Learning shown as unavailable
라이센스에 의존하는 것 같습니다.
일단 Trial 라이센스로 사용할 수있었습니다.
참고
Elasticsearch + Kibana를 docker-compose로 빠르게 이동
Running Kibana on Dockeredit
Install Elasticsearch with Docker-edit
Install Compose on Linux
Mac에 ELK (Elasticsearch, Logstash, Kibana)를 설치해 보았습니다.
Reference
이 문제에 관하여(Mac에서 docker 컨테이너를 사용하여 elasticsearch 및 kibana 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seigot/items/556d9817e7d7bec5d45f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mkdir ~/test
cd ~/test
vim docker-compose.yaml
version: "3"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
environment:
- discovery.type=single-node
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
volumes:
- es-data:/usr/share/elasticsearch/data
kibana:
image: docker.elastic.co/kibana/kibana:7.6.2
ports:
- 5601:5601
volumes:
es-data:
docker-compose up -d
아래를 참고로 시험으로 kibana를 이용해 보겠습니다.
Elasticsearch 6.1에서 추가된 Machine Learning의 새로운 기능을 사용해 보았다. 예측 기능이 재미있다!
뉴욕시의 택시 승강 데이터로 Machine Learning 체험
로그 데이터 얻기
wget https://s3.amazonaws.com/nyc-tlc/trip+data/yellow_tripdata_2016-11.csv
curl https://s3.amazonaws.com/nyc-tlc/misc/taxi+_zone_lookup.csv | cut -d, -f 1,3 | tail +2 > taxi.csv
elastic search에 제공하는 로그 형식으로 변환하는 logstash 설치
brew install logstash
logstash config 준비
nyc-taxi-yellow-translate-logstash.conf
input {
stdin { type => "tripdata" }
}
filter {
csv {
columns => ["VendorID","tpep_pickup_datetime","tpep_dropoff_datetime","passenger_count","trip_distance","RatecodeID","store_and_fwd_flag","PULocationID","DOLocationID","payment_type","fare_amount","extra","mta_tax","tip_amount","tolls_amount","improvement_surcharge","total_amount"]
convert => {"extra" => "float"}
convert => {"fare_amount" => "float"}
convert => {"improvement_surcharge" => "float"}
convert => {"mta_tax" => "float"}
convert => {"tip_amount" => "float"}
convert => {"tolls_amount" => "float"}
convert => {"total_amount" => "float"}
convert => {"trip_distance" => "float"}
convert => {"passenger_count" => "integer"}
}
date {
match => ["tpep_pickup_datetime", "yyyy-MM-dd HH:mm:ss", "ISO8601"]
timezone => "EST"
}
date {
match => ["tpep_pickup_datetime", "yyyy-MM-dd HH:mm:ss", "ISO8601"]
target => ["@tpep_pickup_datetime"]
remove_field => ["tpep_pickup_datetime"]
timezone => "EST"
}
date {
match => ["tpep_dropoff_datetime", "yyyy-MM-dd HH:mm:ss", "ISO8601"]
target => ["@tpep_dropoff_datetime"]
remove_field => ["tpep_dropoff_datetime"]
timezone => "EST"
}
translate {
field => "RatecodeID"
destination => "RatecodeID"
dictionary => [
"1", "Standard rate",
"2", "JFK",
"3", "Newark",
"4", "Nassau or Westchester",
"5", "Negotiated fare",
"6", "Group ride"
]
}
translate {
field => "VendorID"
destination => "VendorID_t"
dictionary => [
"1", "Creative Mobile Technologies",
"2", "VeriFone Inc"
]
}
translate {
field => "payment_type"
destination => "payment_type_t"
dictionary => [
"1", "Credit card",
"2", "Cash",
"3", "No charge",
"4", "Dispute",
"5", "Unknown",
"6", "Voided trip"
]
}
translate {
field => "PULocationID"
destination => "PULocationID_t"
dictionary_path => "taxi.csv"
}
translate {
field => "DOLocationID"
destination => "DOLocationID_t"
dictionary_path => "taxi.csv"
}
mutate {
remove_field => ["message", "column18", "column19", "RatecodeID", "VendorID", "payment_type", "PULocationID", "DOLocationID"]
}
}
output {
file {
path => "./output.log"
codec => json_lines
}
}
실행
tail +2 yellow_tripdata_2016-11.csv | logstash -f nyc-taxi-yellow-translate-logstash.conf
cat output.log | head -100000 > output2.log
kibana에 업로드
Upload data from logfile

output2.log 드래그 앤 드롭

그대로 가져오기





로그 분석 결과가 출력되면 OK

Anomaly Detection
Machine learning --> Anomaly Detection에서 이상 검지를 할 수 있는 것 같습니다.
일단 같은 데이터(output2.log)를 주어 보자.

이상인지 여부를 score로 판정해 주고 있을 것 같다.
정확하게 이상 검출하기 위해서는 데이터의 부여 방법에 궁리가 필요할 것 같다.
Machine Learning shown as unavailable
Machine Learning shown as unavailable
라이센스에 의존하는 것 같습니다.
일단 Trial 라이센스로 사용할 수있었습니다.
참고
Elasticsearch + Kibana를 docker-compose로 빠르게 이동
Running Kibana on Dockeredit
Install Elasticsearch with Docker-edit
Install Compose on Linux
Mac에 ELK (Elasticsearch, Logstash, Kibana)를 설치해 보았습니다.
Reference
이 문제에 관하여(Mac에서 docker 컨테이너를 사용하여 elasticsearch 및 kibana 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seigot/items/556d9817e7d7bec5d45f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Machine Learning shown as unavailable
라이센스에 의존하는 것 같습니다.
일단 Trial 라이센스로 사용할 수있었습니다.
참고
Elasticsearch + Kibana를 docker-compose로 빠르게 이동
Running Kibana on Dockeredit
Install Elasticsearch with Docker-edit
Install Compose on Linux
Mac에 ELK (Elasticsearch, Logstash, Kibana)를 설치해 보았습니다.
Reference
이 문제에 관하여(Mac에서 docker 컨테이너를 사용하여 elasticsearch 및 kibana 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/seigot/items/556d9817e7d7bec5d45f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Mac에서 docker 컨테이너를 사용하여 elasticsearch 및 kibana 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/seigot/items/556d9817e7d7bec5d45f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)