인프라,데이터/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를 누르면 아까 아무렇게나 입력한 항목들이 보이는 걸 확인할 수 있다.

도커 컨테이너를 확인해보면 각각 컨테이너가 생성된 것을 볼 수 있다.