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 설치 및 실행은 빠르고 효율적인 방법입니다. 이 방식은 환경을 손쉽게 설정하고 관리할 수 있으며, 설정 파일을 수정하고 재배포하는 것이 간편합니다.
이 과정을 통해 로그 파일을 실시간으로 수집하고, Elasticsearch와 Kibana를 통해 데이터를 분석할 수 있습니다. Docker와 Elastic Stack을 활용한 로그 관리 시스템을 구축하면, 시스템 모니터링과 문제 해결에 큰 도움이 될 것입니다.
'클라우드 > ElasticStack' 카테고리의 다른 글
Elasticsearch 알람 도구 ElastAlert 설치부터 테스트까지 (0) | 2021.12.14 |
---|---|
[ElasticStack] logstash 설치및 실행 (2) | 2021.12.14 |
[ElasticStack] Logstash 에서 Elasticsearch 로 데이터 전송하기 (0) | 2021.04.21 |
댓글