InfoSec / / 2024. 9. 27. 13:43

ELK를 통한 모니터링 서버 구축

▶ 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 데몬을 재시작 해줍니다.

 

# 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"

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유