[ELK 스택] Docker를 이용한 ElasticSearch + Logstash + Kibana 설정

91Savage·2022년 11월 23일
0

Server

목록 보기
19/24

Elasticsearch + logstash + Kibana 설정

  • ElasticSearch : 검색 및 분석 엔진
  • Logstash : 데이터를 수집하는 동시에 변환, Elasticsearch에서 전송하는 server-side의 Data를 처리하는 pipeline역할
  • Kibana : Elasticsearch에서 chart와 graph를 이용해 데이터를 시각적 표현
  • apt-get update

깃허브에서 clone 진행

  • git clone https://github.com/deviantony/docker-elk.git

  • cd docker-elk

  • tree -f (도커 내부 트리 확인)

  • deviantony/docker-elk는 기본적으로 X-pack 설정 되어 있음 (ELK의 확장팩), 모니터링 제외하고 유료 서비스이기 떄문에 각 설정파일에서 X-pack 설정 지워준다.

X-pack 설정 해제

  • vim elasticsearch/config/elasticsearch.yml
---
## 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: false

# elasticsearch 컨테이너에서 Device or resource busy 에러가 발생하는 경우,
elasticsearch.yml 파일에서 xpack 세팅을 안지우시면 해결됩니다. 세팅의 기본값이 적용되지않는 것 같습니다.

  • vim logstash/config/logstash.yml
---
## Default Logstash configuration from Logstash base image.
## https://github.com/elastic/logstash/blob/main/docker/data/logstash/config/logstash-full.yml
#
http.host: 0.0.0.0

node.name: logstash
  • vim kibana/config/kibana.yml
---
## Default Kibana configuration from Kibana base image.
## https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts
#
server.name: kibana
server.host: 0.0.0.0
elasticsearch.hosts: [ http://elasticsearch:9200 ]

monitoring.ui.container.elasticsearch.enabled: true
monitoring.ui.container.logstash.enabled: true

## X-Pack security credentials
#

logstash 설정파일 변경

logstash는 filebeats 에이전트를 통해 수집한 로그데이터들을 elasticsearch로 전달함,
그 로그들을 어떤 형식으로 전달 할 지 설정하는 conf 파일.
아래는 필터없이 테스트 해보기 위해서 기본 셋팅만 함.

  • vim logstash/pipeline/logstash.conf
input {
        beats {
                port => 5044
        }

        tcp {
                port => 50000
        }
}

## Add your filters / logstash plugins configuration here

output {
        elasticsearch {
                hosts => "elasticsearch:9200"
                user => "logstash_internal"
                password => "비밀번호"
                ecs_compatibility => disabled
        }
}

Docker Compose 설치 및 실행

docker compose란 여러개의 컨테이너의 실행을 한 번에 관리 할 수 있도록 함.
docker-compose.yml 파일에 여러개의 컨테이너 들을 어떻게 실행할 것인지 정의해 둔 파일.

[Docker 설치]

[Docker-compose 설치 및 사용법]

1. docker compose 다운
$ sudo curl -L "https://github.com/docker/compose/releases/download/v2.13.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. 실행 가능 권한 적용
$ sudo chmod +x /usr/local/bin/docker-compose

3. 심볼릭 링크 설정
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4. 설치되었는지 테스트
$ docker-compose --version

  • vim /usr/local/src/docker-elk

ELASTIC_PASSWORD 만 변경

  • docker-compose build && docker-compose up -d

docker 올라왔는지 확인

자바 설치

// 참고: https://lsjsj92.tistory.com/394

0개의 댓글