- OS : CentOS Linux release 7.9.2009 (Core)
- Kernel : 3.10.0-1160.21.1.el7.x86_64
- Java : 1.8.0_282
- ELK Stack : elasticsearch 7.12.x, logstash 7.12.x, kibana 7.12.x, filebeat 7.12.x
1. OS와 설치 버전 호환성 체크
- https://www.elastic.co/kr/support/matrix 접속하여 OS별 설치 가능 버전 확인
- 현 시점 기준 최신 버전인 7.12.x 버전으로 진행
2. JAVA 설치 확인
- Elasticsearch 설치 전 JAVA 가 설치 되어 있는지 확인
- # java -version
- 참고 : CentOS 7.9에 Java 설치하기 (comengx.tistory.com/37)
ELK Stack 구성은 홈페이지를 참고하여 root 계정으로 설치 진행
- Elasticsearch : https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html
- Logstash : https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
- Kibana : https://www.elastic.co/guide/en/kibana/current/rpm.html
- Filebeat : https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation-configuration.html
3. 공통 설정
- elasticsearch, logstash, kibana 구성 시 모두 사용 (한번만 설정하면 됨)
- GPG 키 가져오기
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch - elasticsearch.repo 생성
# cd /etc/yum.repos.d/
# vi elasticsearch.repo
아래 내용을 등록 후 저장
---------------------------------------------------------------
[elasticsearch]
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=0
autorefresh=1
type=rpm-md
---------------------------------------------------------------
- GPG 키 가져오기
4. Elasticsearch 설치
- elasticsearch 설치
# yum install -y --enablerepo=elasticsearch elasticsearch - 환경 설정
- 설정파일 : /etc/elasticsearch/elasticsearch.yml
- elasticsearch 환경 설정
- 클러스터 이름, Data/Log 파일 위치, 네트워크 바인딩 설정값 변경
# vi /etc/elasticsearch/elasticsearch.yml
--------------------------------------------------------------
cluster.name: elkstack // 클러스터 이름
path.logs: /ELK/logs/elasticsearch // elasticsearch 로그 저장 위치
path.data: /ELK/data/elasticsearch // elasticsearch 데이터 저장 위치
network.host: 0.0.0.0 // elasticsearch 바인딩 네트워크
http.port: 9200 // elasticsearch 서비스 포트 (default 9200)
--------------------------------------------------------------- - 추가 - elasticsearch 7.x 부터는 elasticsearch.yml 아래 3가지 값 중 하나를 설정해야 서비스 실행이 됨
- 설정값
- discovery.seed_hosts
- discovery.seed_providers
- cluster.initial_master_nodes -> 결국은 이넘을 설정해야 정상 가동 됨
- 오류 내역
- [ERROR][o.e.b.Bootstrap] node validation exceptioin
[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] ust be configured
- [ERROR][o.e.b.Bootstrap] node validation exceptioin
- 참고 - Important Elasticsearch configuration
- https://www.elastic.co/guide/en/elasticsearch/reference/master/important-settings.html
- 설정값
- 클러스터 이름, Data/Log 파일 위치, 네트워크 바인딩 설정값 변경
- elasticsearch 디렉토리 생성 및 소유권 변경(elasticsearch)
- Data 디렉토리 :
# mkdir -p /ELK/data/elasticsearch
# chown -R elasticsearch:elasticsearch /ELK/data/elasticsearch - Log 디렉토리 : /ELK/logs/elasticsearch
# mkdir -p /ELK/logs/elasticsearch
# chown -R elasticsearch:elasticsearch /ELK/logs/elasticsearch
- Data 디렉토리 :
- elasticsearch 실행 및 자동 실행 구성
# systemctl start elasticsearch
# systemctl enable elasticsearch - elasticsearch 상태 확인
# systemctl status elasticsearch
5. Logstash 설치
- logstash 설치
# yum install -y --enablerepo=elasticsearch logstash
- 환경 설정
- 설정파일 : /etc/logstash/logstash.yml
- logstash 환경 설정
- Data/Log 파일 위치 설정값 변경
# vi /etc/logstash/logstash.yml
--------------------------------------------------------------
path.logs: /ELK/logs/logstash // logstash 로그 저장 위치
path.data: /ELK/data/logstash // logstash 데이터 저장 위치
--------------------------------------------------------------- - logstash 디렉토리 생성 및 소유권 변경(logstash)
- Data 디렉토리 :
# mkdir -p /ELK/data/logstash
# chown -R logstash:logstash /ELK/data/logstash - Log 디렉토리 : /ELK/logs/logstash
# mkdir -p /ELK/logs/logstash
# chown -R logstash:logstash /ELK/logs/logstash
- Data 디렉토리 :
- logstash 필터 생성
- logstash 실행 시 데이터 수집 및 변환 출력을 위한 필터가 필요함.
- 설정파일 : /etc/logstash/conf.d/logstash-filter.conf // logstash-filter.conf 파일명은 사용자가 임의 생성
- 기본구조
- 필터 파일 기본 구조
--------------------------------------------------------
input {
// 로그데이터를 수신할 프로토콜 및 포트, 코덱 등을 정의
}
filter {
// (옵션) 수신한 로그에 대한 파싱, 인덱싱 및 변환 작업
}
output {
// 변환한 데이터를 elasticsearch 등 외부 저장소로 출력
}
----------------------------------------------------------
- 필터 파일 기본 구조
- Data/Log 파일 위치 설정값 변경
- logstash 실행 및 자동 실행 구성
# systemctl start logstash
# systemctl enable logstash - logstash 상태 확인
# systemctl status logstash
6. Kibana 설치
- elasticsearch 설치
# yum install -y --enablerepo=elasticsearch kibana - 환경 설정
- 설정파일 : /etc/kibana/kibana.yml
-----------------------------------------------------
server.port: 5601
server.host: 0.0.0.0
elasticsearch.hosts: "http://localhost:9200"
-----------------------------------------------------
- 설정파일 : /etc/kibana/kibana.yml
- kibana 실행 및 자동 실행 구성
# systemctl start kibana
# systemctl enable kibana - kibana 상태 확인
# systemctl status kibana - web 접속 테스트
- 웹브라우저에서 http://elk_IP:5601 로 접속
7. Filebeat 설치
- 오늘은 여기까지~~~~~