기본 전제 조건
- docker 설치
- java 설치
git clone https://github.com/deviantony/docker-elk.git
다운로드 해온 경로에 'docker-compose.yml' 파일이 존재할텐데 해당 파일을 열면 기본적으로 작성되어져있다.
기본 구성대로 설치하려면 이대로 진행하면 되고, 이미 구성된 docker에 추가로 작성하려면 기본 구성에 컨테이너 내용만 추가로 작성해주면된다.
추가로 redis를 통해 log를 받아올거기 때문에 redis를 추가로 작성해준다.
아래는 실제 docker-compose 내용으로 기본 구성된 내용과 약간 다를 수 있다.
version: '1.0'
services:
redis:
container_name: redis
image: redis:7-alpine
restart: unless-stopped
hostname: redis
ports:
- 6379:6379
volumes:
- ./redis/data:/data
labels:
- "name=redis"
- "mode=standalone"
networks:
- default
elasticsearch:
container_name: elasticsearch
image: elasticsearch:8.3.2
volumes:
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro,Z
- elasticsearch:/usr/share/elasticsearch/data:Z
ports:
- 9200:9200
- 9300:9300
environment:
node.name: elasticsearch
ES_JAVA_OPTS: -Xms512m -Xmx512m
ELASTIC_PASSWORD: changeme
discovery.type: single-node
networks:
- default
restart: unless-stopped
logstash:
container_name: logstash
image: logstash:8.3.2
volumes:
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro,Z
- ./logstash/pipeline:/usr/share/logstash/pipeline:ro,Z
ports:
- 5044:5044
- 50000:50000/tcp
- 50000:50000/udp
- 9600:9600
environment:
LS_JAVA_OPTS: -Xms256m -Xmx256m
LOGSTASH_INTERNAL_PASSWORD: changeme
networks:
- default
depends_on:
- elasticsearch
restart: unless-stopped
kibana:
container_name: kibana
image: kibana:8.3.2
volumes:
- ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro,Z
ports:
- 5601:5601
environment:
KIBANA_SYSTEM_PASSWORD: changeme
networks:
- default
depends_on:
- elasticsearch
restart: unless-stopped
volumes:
setup:
elasticsearch:
networks:
default:
xpack.license.self_generated.type: basic
기본 값으로 trial로 작성되어 있기 때문에 basic으로 수정해준다.
---
## Default Elasticsearch configuration from Elasticsearch base image.
## https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/config/elasticsearch.yml
#
cluster.name: docker-cluster
network.host: 0.0.0.0
## X-Pack settings
## see https://www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html
#
xpack.license.self_generated.type: basic
xpack.security:
enabled: true
input {
redis {
host => "redis"
port => 6379
password => '1234'
codec => "json"
data_type => "list"
key => "logstash"
}
}
## Add your filters / logstash plugins configuration here
output {
elasticsearch {
hosts => "elasticsearch:9200"
index => "%{type}-%{+YYYY.MM.dd}"
user => "logstash_internal"
password => "changeme"
}
}
sudo docker-compose up --build -d
docker가 정상적으로 빌드되었다면 localhost:5601 접속 시 (혹은 해당 host로) 아래와 같은 로그인 화면이 뜨면 정상적으로 접속된 것이다.
혹시 'Kibana server is not ready yet.' 해당 에러가 발생하면 처음부터 다시 빌드한 뒤 아래 명령어를 추가적으로 입력해보자
docker-compose up setup