▶ Elastic Search
-> Apache 기반의 Java 오픈소스 분산 검색 엔진
▶ Kibana
-> 엘라스틱 서치에서 색인된 데이터를 검색하고 시각화한다.
▶ Logstash
-> 로그 등의 데이터를 수집하여 엘라스틱서치로 전달한다.
▶ Beats
-> 오픈소스 데이터 수집기
▶ Snort
-> IDS 방식의 침입방지 시스템
▶ Suricata
-> IPS 방식의 침입차단 시스템
CentOS 7 ELK 서버 구축
Elasticsearch 설치 및 설정
# java 설치 확인 (없으면 설치하기)
java -version
# Elasticsearch 설치를 위한 저장소 등록
gedit /etc/yum.repos.d/CentOS-Base.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
# 저장 후 CMD에서 Elasticsearch 설치
yum install --enablerepo=elasticsearch elasticsearch
# 설치 확인
rpm -qa | grep elasticsearch
# Elasticsearch 환경설정
gedit /etc/elasticsearch/elasticsearch.yml
# 23라인 주석제거
node.name: node-1
# 56라인 주석제거 및 구문수정
network.host: 0.0.0.0
# 61라인 주석제거
http.port: 9200
# 74라인 주석제거 및 구문수정
cluster.initial_master_nodes: ["node-1"]
저장 후 elasticsearch 데몬을 재시작 해줍니다.
systemctl restart elasticsearch
# Elasticsearch 동작 확인
curl http://127.0.0.1:9200
Kibana 설치 및 설정
# Kibana 설치를 위한 저장소 등록
gedit /etc/yum.repos.d/CentOS-Base.repo
# 마지막 줄에 구문 추가
[kibana]
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
# 저장 후 CMD에서 Kibana 설치
yum install -y kibana
# 설치 확인
rpm -qa | grep kibana
# Kibana 환경설정
gedit /etc/kibana/kibana.yml
# 2라인 주석해제
server.port: 5601
# 7라인 주석해제 후 구문수정
server.host: "0.0.0.0"
# 32라인 주석해제 후 구문수정
elasticsearch.hosts: ["http://localhos:9200"]
# 45라인 46라인 주석해제 후 구문수정
elasticsearch.username: "유저이름"
elasticsearch.password: "암호"
# kibana 실행 및 동작확인
systemctl restart kibana
# 이후 웹 브라우저에서
http://서버IP:5601
로 접속
elastic 페이지가 출력되면 열리면 설치완료입니다.
Logstash 설치
# Logstash 설치를 위한 저장소 등록
gedit /etc/yum.repos.d/CentOS-Base.repo
# 마지막 줄에 구문 추가
[logstash]
name=logstash 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
# 저장 후 CMD에서 logstash 설치
yum install -y logstash
# 설치 확인
rpm -qa | grep logstash
# Logstash를 이용하여 Filebeat와 Elasticsearch 연동
gedit /etc/logstash/conf.d/first-pipeline.conf
input {
beats {
port => 5044
host => "0.0.0.0"
}
}
filter {
if [system][process] {
if [system][process][cmdline] {
grok {
match => {
"[system][process][cmdline]" => "^%{PATH:[system][process][cmdline_path]}"
}
remove_field => "[system][process][cmdline]"
}
}
}
}
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
다음과 같이 입력후 저장하면 완료
Filebeat 설치
# Filebeat 설치
yum install -y filebeat
# Filebeat 환경설정
gedit /etc/filebeat/filebeat.yml
# 135라인 주석처리
#output.elasticsearch:
# 137라인 주석처리
#hosts: ["localhost:9200"]
# 148라인 주석제거
output.logstash:
# 150라인 주석제거
hosts: ["192.168.5.120:5044"]
# Filebeat 활성화
filebeat modules enable system
# Filebeat 모듈 활성화 확인
filebeat modules list
system 모듈이 Enabled 되어있으면 실행이 잘 된 것입니다.
ELKF 설치 완료 확인
# ELKF 전체 데몬 재실행
systemctl restart elasticsearch
systemctl restart logstash
systemctl restart kibana
systemctl restart filebeat
# ELKF 실행 확인
curl http://서버IP:9200/_cat/indices?v
filebeat와 kibana의 상태가 잘 보이면 설치와 구동에 성공한 것입니다.
Elastic에서 Filebeat 패턴 수집 설정
# Elastic 접속. 웹 브라우저에서 접속
http://서버IP:5601/
-> 왼쪽 상단 메뉴 선택
-> 메뉴 맨 하단 Stack Management 선택
왼쪽 상단 작은 메뉴 버튼 선택
-> Kibana 밑의 Index Patterns 선택
# Create index Pattern 선택 후 정보 입력
Name
=> filebeat-*
Timestamp field
=> @timestamp
이후 Create index pattern 선택
이후 상단 메뉴 선택
-> Discover를 선택하여
로그가 수집되고 있는게 확인되면 ELK 설치 성공입니다.
Ubuntu에 ELK 서버 구축하기
# 기본 환경설정
apt update -y
apt install -y apt-transport-https
apt install -y openjdk-11-jdk
java -version
gedit /etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
source /etc/environment
echo $JAVA_HOME
# Elasticsearch 설치
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
apt update -y
apt install -y elasticsearch
systemctl restart elasticsearch
gedit /etc/elasticsearch/elasticsearch.yml
# 56라인 주석제거 및 구문 수정
network.host: 0.0.0.0
# 60라인 주석제거
http.port: 9200
# 70라인 주석제거 후 구문수정
discovery.seed_hosts: []
apt install -y curl
curl -X get "localhost:9200"
# Logstash 설치
apt install -y logstash
systemctl start logstash
systemctl enable logstash
systemctl status logstash
# Kibana 설치
apt install -y kibana
systemctl start kibana
systemctl enable kibana
systemctl status kibana
gedit /etc/kibana/kibana.yml
# 2번라인 주석제거
server.port: 5601
# 7번라인 주석제거 및 구문수정
server.host: "0.0.0.0"
systemctl restart kibana
# Filebeat 설치
apt install -y filebeat
gedit /etc/filebeat/filebeat.yml
# 28번라인 구문수정
enabled: true
# 31번라인부터 구문 수정
paths:
- /var/log/*.log
- /var/log/syslog
- /var/log/apache2/*.log
- /var/log/snort/*.log
# 138, 140번 라인 주석처리
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
# 151번, 153번라인 주석해제
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
curl -X GET "localhost:9200/_cat/indices"