본문 바로가기
클라우드/ElasticStack

Elastic Stack Filebeat 설치 및 실행 가이드 (Docker 방식)

by 정권이 내 2024. 11. 14.

Elastic Stack Filebeat 설치 및 실행 가이드 (Docker 방식)

 

Elastic Stack에서 Filebeat는 로그 파일을 수집하여 Elasticsearch 또는 Logstash로 전달하는 중요한 역할을 하는 경량 데이터 수집기입니다. Docker를 사용하면 Filebeat를 효율적으로 설치하고, 설정을 쉽게 관리할 수 있습니다. 이 글에서는 Docker를 사용한 Filebeat 설치 및 실행 방법에 대해 자세히 설명합니다.

 

1. Docker로 Filebeat 설치

 

Docker 이미지 다운로드

Filebeat는 Elastic의 공식 Docker 이미지를 통해 간편하게 설치할 수 있습니다. 먼저, Filebeat의 최신 Docker 이미지를 다운로드합니다. 최신 버전은 Elastic의 공식 Docker 레지스트리에서 제공됩니다.

docker pull docker.elastic.co/beats/filebeat:8.0.0

이 명령어는 8.0.0 버전을 다운로드합니다. 필요에 따라 버전을 변경할 수 있습니다.

 

2. Filebeat 설정 파일 준비

Docker에서 실행하기 전에 Filebeat 설정 파일(filebeat.yml)을 준비해야 합니다. 이 설정 파일은 Filebeat가 수집할 로그 파일의 경로와 로그를 전송할 목적지를 설정합니다. 설정 파일을 Docker 컨테이너에 마운트하여 사용할 수 있습니다.

 

filebeat.yml 설정 예시

filebeat.yml 파일을 아래와 같이 작성합니다. 이 파일에서 로그의 경로와 Elasticsearch의 호스트를 설정할 수 있습니다.

inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/*.log  # 로그 파일 경로

output.elasticsearch:
  hosts: ["http://localhost:9200"]  # Elasticsearch 주소

이 예시는 /var/log/*.log 경로의 로그 파일을 수집하고, 수집된 데이터를 로컬 Elasticsearch(9200 포트)로 전송합니다. 다른 경로에 로그 파일이 있을 경우 paths 항목을 수정하면 됩니다.

이 파일을 호스트 시스템에 저장한 후, Docker에서 마운트하여 사용할 수 있습니다.

 

3. Docker로 Filebeat 실행

설정 파일이 준비되면, Docker에서 Filebeat를 실행할 수 있습니다. 이때, 설정 파일과 로그 파일이 포함된 디렉토리를 Docker 컨테이너에 마운트해야 합니다.

 

Filebeat 실행 명령어

아래 명령어를 사용하여 Docker에서 Filebeat를 실행합니다.

docker run --name=filebeat \
  -v /path/to/your/filebeat.yml:/usr/share/filebeat/filebeat.yml \
  -v /var/log:/var/log \
  docker.elastic.co/beats/filebeat:8.0.0 filebeat -e

각각의 옵션에 대한 설명은 다음과 같습니다:

  • --name=filebeat: 컨테이너의 이름을 "filebeat"로 지정합니다.
  • -v /path/to/your/filebeat.yml:/usr/share/filebeat/filebeat.yml: 호스트 시스템에 저장된 filebeat.yml 설정 파일을 Docker 컨테이너 내부의 Filebeat 설정 파일로 마운트합니다. /path/to/your/filebeat.yml은 실제 설정 파일의 경로로 교체해야 합니다.
  • -v /var/log:/var/log: 호스트 시스템의 /var/log 디렉토리를 Docker 컨테이너에 마운트하여, Filebeat가 로그 파일을 수집할 수 있게 합니다.
  • filebeat -e: Filebeat를 실행하면서, 로그를 Elasticsearch로 전송하도록 합니다. -e 옵션은 로그를 표준 출력으로 출력하도록 설정합니다.

참고: filebeat.yml 파일의 경로와 로그 파일의 경로(/var/log)는 실제 환경에 맞게 조정해야 합니다.

 

4. Filebeat 실행 확인

Filebeat가 정상적으로 실행되는지 확인하려면, Docker 로그를 통해 상태를 점검할 수 있습니다. 아래 명령어로 Filebeat의 실행 상태를 모니터링합니다.

docker logs -f filebeat

이 명령어는 Filebeat 컨테이너에서 출력되는 실시간 로그를 보여줍니다. 로그에 오류가 없다면 Filebeat가 정상적으로 작동하고 있다는 의미입니다.

 

자동 시작 설정

Filebeat 컨테이너가 서버 재부팅 시 자동으로 시작되도록 설정하려면, Docker의 restart 정책을 활용할 수 있습니다. 예를 들어, always 옵션을 사용하면 Docker가 자동으로 컨테이너를 재시작합니다.

docker run --name=filebeat \
  --restart=always \
  -v /path/to/your/filebeat.yml:/usr/share/filebeat/filebeat.yml \
  -v /var/log:/var/log \
  docker.elastic.co/beats/filebeat:8.0.0 filebeat -e

 

5. Kibana에서 Filebeat 데이터 확인

Filebeat가 정상적으로 실행되면, Elasticsearch에 로그 데이터가 저장됩니다. Kibana에서 Discover 탭을 사용하여 수집된 로그 데이터를 실시간으로 확인할 수 있습니다. Kibana에서 Filebeat 데이터셋을 선택하여 로그를 분석하고, 필요한 대로 대시보드를 구성할 수 있습니다.

 

6. 추가적인 설정

 

로그 파일 경로 변경

로그 파일 경로가 /var/log 외에도 다른 위치에 있다면, filebeat.yml에서 paths 값을 변경해줍니다.

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /custom/log/path/*.log

 

Elasticsearch 보안 설정

보안이 활성화된 Elasticsearch로 데이터를 전송하려면, filebeat.yml 파일에서 인증 정보를 설정해야 할 수 있습니다. 예를 들어, 사용자 이름과 비밀번호를 설정하는 방법은 아래와 같습니다.

output.elasticsearch:
  hosts: ["https://localhost:9200"]
  username: "elastic"
  password: "your_password"

 

결론

Docker를 사용한 Filebeat 설치 및 실행은 빠르고 효율적인 방법입니다. 이 방식은 환경을 손쉽게 설정하고 관리할 수 있으며, 설정 파일을 수정하고 재배포하는 것이 간편합니다.

이 과정을 통해 로그 파일을 실시간으로 수집하고, ElasticsearchKibana를 통해 데이터를 분석할 수 있습니다. Docker와 Elastic Stack을 활용한 로그 관리 시스템을 구축하면, 시스템 모니터링과 문제 해결에 큰 도움이 될 것입니다.

반응형

댓글