Filebeat > Logstash > Elasticsearch> Kibana로그 수집 시스템 구축 가이드

fever·2025년 7월 21일
0

🖥️ 모니터링

목록 보기
1/1

📌 구성 요소

구성 요소역할 설명
Elasticsearch로그 데이터를 저장하고 검색할 수 있는 중앙 저장소
KibanaElasticsearch의 데이터를 시각화하는 웹 UI
Logstash로그를 수신하고 가공한 후 Elasticsearch로 전달
Filebeat서버의 로그 파일을 수집해 Logstash로 전달

🔁 가동 순서

  1. Elasticsearch
  2. Kibana
  3. Logstash
  4. Filebeat

⛔ 종료 시에는 반대 순서로: Filebeat → Logstash → Kibana → Elasticsearch


Elasticsearch

1. 설치

# Elasticsearch 컨테이너 실행
docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -e discovery.type=single-node \
  -e ELASTIC_PASSWORD=**** \
  -e xpack.security.enabled=true \
  -e xpack.security.authc.api_key.enabled=true \
  -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
  -v esdata:/usr/share/elasticsearch/data \
  docker.elastic.co/elasticsearch/elasticsearch:9.0.3

# 접속 주소: http://localhost:9200
# 기본 관리자 계정: elastic
# 비밀번호: ELASTIC_PASSWORD 설정
# 실행 모드: 단일 노드 (discovery.type=single-node)
# Kibana, Logstash, Filebeat 모두 이 주소로 연결됨

Kibana

1. 설치

docker run -d \
  --name kibana \
  -p 5601:5601 \
  -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
  -e ELASTICSEARCH_USERNAME=kibana_system \
  -e ELASTICSEARCH_PASSWORD=***** \
  -e xpack.security.encryptionKey=**** \
  -e xpack.encryptedSavedObjects.encryptionKey=**** \
  -e xpack.reporting.encryptionKey=**** \
  docker.elastic.co/kibana/kibana:9.0.3

Logstash

1. 설치

docker run -d \
  --name logstash \
  -p 5044:5044 \
  -e xpack.monitoring.elasticsearch.username=elastic \
  -e xpack.monitoring.elasticsearch.password=**** \
  -e xpack.monitoring.elasticsearch.hosts=http://elasticsearch:9200 \
  docker.elastic.co/logstash/logstash:9.0.3

2. 설정

docker exec -it logstash /bin/bash
cd /usr/share/logstash/pipeline
vi logstash.conf
input {
  beats {
    port => 5044
  }
}

filter {
  json {
    source => "message"
    remove_field => ["message"]
    tag_on_failure => ["_jsonparsefailure"]
  }
}

output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
    user => "elastic"
    password => "****"
    index => "log-%{project}-%{+YYYY.MM.dd}"
  }

  stdout {
    codec => rubydebug
  }
}

Filebeat

1. 설치

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.18.3-amd64.deb
sudo dpkg -i filebeat-8.18.3-amd64.deb
cd /etc/filebeat
vi filebeat.yml

2. 설정

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /path/to/your/logs/app.log
    fields:
      project: your-project-name
    fields_under_root: true

output.logstash:
  hosts: ["your-logstash-host:5044"]
sudo chown root:root filebeat.yml
sudo chmod 644 filebeat.yml

3. 실행

# 서비스 등록
sudo systemctl enable filebeat
# 시작
sudo systemctl start filebeat
# 시작
sudo systemctl stop filebeat
# 재시작 
sudo systemctl restart filebeat
# 로깅
sudo journalctl -u filebeat -f
profile
선명한 삶을 살기 위하여

0개의 댓글