ELK stack 설치
데이터/로그 플랫폼 운영 관점에서 ELK stack 설치의 목적, 적용 범위, 실행 전 확인할 항목을 정리한 기술 노트입니다.
핵심 요약
- 데이터/로그 플랫폼 운영 기준으로 글의 목적과 적용 범위를 먼저 확인할 수 있게 정리했습니다.
- 원문의 명령어, 로그, 절차는 보존하고 운영자가 먼저 봐야 할 맥락을 앞쪽에 배치했습니다.
- 실행형 명령은 대상 환경, 권한, 백업 또는 롤백 경로를 확인한 뒤 적용하는 것을 전제로 합니다.
적용 범위
이 글은 데이터/로그 플랫폼 운영 업무에서 ELK stack 설치를 빠르게 검토하기 위한 운영 노트입니다. 실습이나 변경 작업은 각자의 랩/운영 환경 기준으로 값과 절차를 재확인한 뒤 진행합니다.
정리된 본문
먼저, ELK 스택은 Elasticsearch, Logstash, Kibana의 약어로 로그 데이터 분석 및 시각화를 위한 오픈 소스 툴셋입니다. 이번에는 CentOS 7 기반으로 ELK 스택을 설치하는 방법을 설명해드리겠습니다.
Elasticsearch 설치
- Elasticsearch의 공식 YUM 저장소를 추가합니다.
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/elasticsearch.repo
- 아래 내용을 elasticsearch.repo 파일에 추가합니다.
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
- Elasticsearch를 설치합니다.
sudo yum install elasticsearch
- Elasticsearch 구성 파일을 엽니다.
sudo vi /etc/elasticsearch/elasticsearch.yml
- Elasticsearch 구성 파일에서 cluster.name 및 node.name을 설정합니다.
cluster.name: mycluster
node.name: mynode
- Elasticsearch 서비스를 시작하고, 부팅시 자동으로 시작하도록 설정합니다.
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Logstash 설치
- Logstash의 공식 YUM 저장소를 추가합니다.
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/logstash.repo
- 아래 내용을 logstash.repo 파일에 추가합니다.
[logstash-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
- Logstash를 설치합니다.
sudo yum install logstash
- Logstash 구성 파일을 엽니다.
sudo vi /etc/logstash/conf.d/myconfig.conf
- Logstash 구성 파일에서 input, filter, output을 설정합니다. 예제 구성 파일은 다음과 같습니다.
input {
file {
path => "/var/log/messages"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
}
syslog_pri { }
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
stdout { codec => rubydebug }
}
- Logstash를 시작하고, 부팅시 자동으로 시작하도록 설정합니다.
sudo systemctl start logstash
sudo systemctl enable logstash
Kibana 설치
- Kibana의 공식 YUM 저장소를 추가합니다.
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /etc/yum.repos.d/kibana.repo
- 아래 내용을 kibana.repo 파일에 추가합니다.
[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
- Kibana를 설치합니다.
sudo yum install kibana
- Kibana 구성 파일을 엽니다.
sudo vi /etc/kibana/kibana.yml
- Kibana 구성 파일에서 server.host를 설정합니다.
server.host: "0.0.0.0"
- Kibana 서비스를 시작하고, 부팅시 자동으로 시작하도록 설정합니다.
sudo systemctl start kibana
sudo systemctl enable kibana
위의 방법을 참고하여 ELK 스택을 설치해보세요. 각 구성 요소의 구성은 상황에 따라 달라질 수 있으므로, 필요한 구성 요소를 추가하거나 구성을 변경할 수 있습니다.
운영 체크리스트
- 대상 OS, 버전, 네트워크 구간, 권한 범위가 현재 환경과 일치하는지 확인합니다.
- 운영 장비에서 실행하기 전 테스트 환경 또는 읽기 전용 명령으로 먼저 검증합니다.
- 설정 변경, 패키지 설치, 서비스 재시작이 포함되면 백업과 롤백 절차를 준비합니다.
실무 지원이 필요하다면
이 글의 내용을 실제 환경에 맞게 검증하거나 운영 절차로 정리해야 한다면, DB/로그 플랫폼 점검과 알림/모니터링 흐름 정리를 1회성 기술 리뷰 또는 짧은 운영 개선 스프린트로 도와드릴 수 있습니다.
- 대상 환경과 현재 증상을 기준으로 실행 전 체크리스트를 정리합니다.
- 명령어, 로그, 설정 변경이 필요한 경우 안전한 검증 순서와 롤백 포인트를 분리합니다.
- ELK stack 설치와 연결된 작업을 보고서, Runbook, 자동화 초안 형태로 정리합니다.