인프라,데이터/Elasticsearch, Logstash, Kibana
도커로 ELK 연결, 컨테이너 생성하기 - 싱글 노드
AimB
2021. 6. 30. 09:35
먼저 폴더를 만든다.
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를 누르면 아까 아무렇게나 입력한 항목들이 보이는 걸 확인할 수 있다.
도커 컨테이너를 확인해보면 각각 컨테이너가 생성된 것을 볼 수 있다.