먼저 폴더를 만든다.
docker-compose.yml 파일도 만들어준다.
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
ports:
- '9200:9200'
environment:
- discovery.type=single-node
ulimits:
memlock:
soft: -1
hard: -1
kibana:
image: docker.elastic.co/kibana/kibana:6.3.2
ports:
- '5601:5601'
logstash:
image: docker.elastic.co/logstash/logstash:6.3.2
ports:
- '5000:5000'
volumes:
- type: bind
source: ./logstash_pipeline/
target: /usr/share/logstash/pipeline
read_only: true
다음으로는 logstash_pipeline 이라는 폴더를 해당 폴더 내에 만들어준 후,
ports.conf 파일을 만들어준다.
input {
tcp {
port => 5000
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "hello-logstash-docker"
}
}
그리고
docker-compose up 을 한 뒤,
터미널을 하나 더 연다.
curl localhost:9200 으로 엘라스틱서치와 잘 연결되는지 확인하고
telnet localhost 5000 을 하면 로그를 입력할 수 있다.
적당히 아무거나 입력 후
웹 화면에서
localhost:5601을 입력하면 키바나와 연결되어 있다.
여기서 Management-Kibana-Index Patterns 에서 인덱스를 생성해준다.
hello* 를 입력하고 '타임스탬프를 선택하지 않음' 을 선택하면 된다.
다음으로 왼쪽 메뉴바의 Discover를 누르면 아까 아무렇게나 입력한 항목들이 보이는 걸 확인할 수 있다.
도커 컨테이너를 확인해보면 각각 컨테이너가 생성된 것을 볼 수 있다.
'인프라,데이터 > Elasticsearch, Logstash, Kibana' 카테고리의 다른 글
Logstash nested json, json in json parsing error (0) | 2022.01.04 |
---|---|
Logstash 7.16.2 버전에서 로그 파싱하기 (0) | 2021.12.30 |
엘라스틱서치를 시작할때 systemctl을 쓰지 말자! (1) | 2021.11.04 |
하나의 로컬환경(도커)에 2개의 엘라스틱서치 노드 띄우기 (0) | 2021.11.03 |
도커로 ELK 환경 만들기 - 멀티 노드 (1) | 2021.07.02 |