배포 & CICD/Docker

Docker-Compose 로 ElasticStack 사용하기 - (1)

인천쓰 2024. 6. 12. 18:44
반응형

도커로 엘라스틱스택을 사용하여 로그 관리를 해야하는 상황이 생겼다

 

쓰기에앞서, 요정도는 알고가자!

 

 

엘라스틱서치(Elasticsearch) [ 주요특징 : 검색 데이터 저장소]

엘라스틱서치는 오픈 소스 검색 및 분석 엔진으로, 빠르고 확장 가능한 풀 텍스트 검색 기능을 제공합니다. 주로 대량의 데이터를 저장하고 실시간으로 검색 및 분석하는 데 사용됩니다.

주요 특징:

  • 실시간 검색 및 분석: 매우 빠른 검색 속도와 실시간 데이터 처리 능력을 갖추고 있습니다.
  • 분산 시스템: 데이터를 여러 서버에 분산 저장하여 고가용성과 확장성을 보장합니다.
  • RESTful API: HTTP를 통해 데이터를 쉽게 인덱싱하고 검색할 수 있습니다.
  • 다양한 데이터 형식 지원: 텍스트, 숫자, 날짜 등 다양한 형식을 지원합니다.
  • 스키마리스(Schemaless): 데이터 구조를 사전에 정의하지 않아도 되는 유연성을 제공합니다.

사용 예:

  • 로그 및 이벤트 데이터 분석: 로그 데이터를 실시간으로 수집하고 분석하는 데 사용됩니다.
  • 애플리케이션 검색 기능: 웹 사이트나 애플리케이션에 빠른 검색 기능을 추가하는 데 유용합니다.
  • 데이터 분석: 대량의 데이터를 빠르게 분석하고 인사이트를 얻는 데 활용됩니다.

키바나(Kibana)[ 주요특징 : 다양한 오픈소스 & 시각화 ]

키바나는 엘라스틱서치 데이터를 시각화하고 분석하기 위한 오픈 소스 분석 및 시각화 플랫폼입니다. 사용자는 웹 인터페이스를 통해 엘라스틱서치에 저장된 데이터를 쉽게 조회하고 시각화할 수 있습니다.

주요 특징:

  • 대시보드 생성: 사용자가 원하는 대로 대시보드를 생성하여 다양한 데이터를 시각화할 수 있습니다.
  • 데이터 탐색: 검색 및 필터링 기능을 통해 엘라스틱서치에 저장된 데이터를 탐색할 수 있습니다.
  • 실시간 스트림: 실시간으로 데이터 변화를 모니터링할 수 있습니다.
  • 보고서 생성 및 공유: 분석 결과를 보고서 형태로 생성하고 공유할 수 있습니다.
  • 경고 및 알림: 특정 조건이 충족되면 알림을 설정하여 통보 받을 수 있습니다.

사용 예:

  • 운영 모니터링: 시스템 성능, 애플리케이션 로그, 사용자 활동 등을 실시간으로 모니터링할 수 있습니다.
  • 보안 분석: 보안 이벤트와 위협을 시각화하고 분석하는 데 사용됩니다.
  • 비즈니스 인텔리전스: 다양한 비즈니스 데이터를 분석하여 인사이트를 도출할 수 있습니다.

엘라스틱서치와 키바나의 통합

엘라스틱서치와 키바나는 함께 사용될 때 강력한 데이터 검색, 분석 및 시각화 솔루션을 제공합니다. 데이터를 엘라스틱서치에 인덱싱하고, 키바나를 통해 이를 시각화하고 대시보드를 구성함으로써 복잡한 데이터 세트를 쉽게 이해하고 활용할 수 있습니다.

이를 통해 사용자들은 데이터 기반 의사 결정을 보다 효율적으로 내릴 수 있으며, 실시간으로 데이터를 분석하고 변화에 신속하게 대응할 수 있습니다.

 

하지만 도커컨테이너에서 편하게 관리하기위해 도커컴포즈로 통합을하면 각각 엘라스틱서치, 키바나, 파일비트, 로그스태쉬를 한공간에 넣어 작업해주면 편하지않을까를 생각해서 작업을 도커컴포즈로 시작을하였다.

 

 그중 중요기능인 로그 모니터링, 로그데이터 파싱하여 elk로 저장하여 사용할수있는 구조로 만들려고 노력 하고있었다.

 

일단 최신 버전을 사용하여 현재 최신인 8.14.0을 가지고와 사용하였고, 사실 편하게 작업하기 위해서 사용할꺼라 SSL 인증을 제외하고 사용하기로 했다 . 추후에 보안적인건 추가하면되고 일단 실행은 시켜봐야하니까!

 

1차적으로 엘라스틱서치와 키바나 세팅을 해주었다 . (일단 연결이 되야함)

도커 이미지에 일단 엘라스틱서치랑 키바나를 설치해주어야하는데 이것은 도커컴포즈에 세팅만해두면, 알아서 받아준다!

 

도커 다운이랑 도커 컴포즈 다운은 알아서 할수있을꺼라 믿습니다~

대충설명 : 도커는 이런식으로 도커안에 컨테이너로 통합하여 통신작업이 가능합니다 . 이걸 통합으로 빌드하여 사용하는걸 Docker-Compose 작업입니다~

version: '3.9'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.14.0
    environment:
      - node.name=elasticsearch
      - discovery.type=single-node
      - xpack.security.enabled=false
    ports:
      - "9200:9200"
    networks:
      - elk

  kibana:
    image: docker.elastic.co/kibana/kibana:8.14.0
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 
    ports:
      - "5601:5601"
    networks:
      - elk
      
    networks:
  elk:
    driver: bridge

 

이렇게 세팅만하고 Docker-Compose up --build 하면 쉽게 설치가되며, 도커이미지에 저장되어 다시 설치할일이없고 실행도 정상적으로 잘된다 . 필요성이 있다면 SSL 설정과 user password작업은 알아서 해주되 키바나도 같이 설정해주어야 정상작동이된다 .

여기까지 성공했으면 1단계완료다! 

이제 2단계를가기전에 로그 스태쉬와 파일비트에대해서 잠깐 공부를해보고 2탄으로넘어와라~

반응형