본문 바로가기

⭐ AWS/AWS ELK

AWS ELK를 구성해보자(3)

이번에는 metricbeat와 filebeat에서 생성된 데이터를 logstash로 보내서 전처리 작업이후 elasticsearch로 적재한 뒤 kibana에서 데이터를 시각화해서 보는 작업을 진행해보겠습니다.

# 메트릭비트 설치하기

rpm을 다운받아서 설치한다.

cd
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.2-x86_64.rpm
sudo rpm -vi metricbeat-7.10.2-x86_64.rpm

# 설정파일 수정하기

메트릭비트의 설정파일을 수정해준다.

sudo vi /etc/metricbeat/metricbeat.yml

아래처럼 메트릭비트의 출력값들이 엘라스틱서치가 아니라 로그스태시로 전송될 수 있도록 지정해준다.

그리고 키바나 대시보드를 사용하기 위해 키바나 IP주소와 포트번호를 지정한다.

AWS의 Public IP와 포트 번호를 적어주면 된다.

# Logstash 설정 및 실행하기

# 로그스태시 설정파일 수정

로그스태시의 conf파일을 수정해준다.

ec2-user 홈디렉터리에 파일을 생성한다. 이때 output에 elasticsearch에 로그스태시로 들어오는 데이터가 저장되도록 하고 index를 설정해주어야지 kibana discover에서 실시간으로 데이터를 시각화해서 볼 수 있다.
index는 아래와 같이 적어주면 된다.

cd
vi logstash-metricbeat.conf
input {
  beats {
    port => 5044
  }
}

filter {
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

 # 로그스태시 및 메트릭비트 실행하기

로그스태시 먼저 실행해서 대기시켜놓는다. 뒤에 automatic속성값은 로그스태시가 실행도중에 conf파일이 바뀌면 자동으로 바뀐 conf파일로 저절로 적용시킨다는 내용의 명령어 이다.

sudo /usr/share/logstash/bin/logstash -f /home/ec2-user/logstash-metricbeat.conf --config.reload.automatic

# 메트릭비트 실행하기

sudo /etc/init.d/metricbeat start

종료하는 명령어는 뒤에 start를 지우고 stop을 붙여주면 된다. 

# 엘라스틱서치 데이터 적재여부 확인

이제 로그스태시에서 엘라스틱서치로 넘어가는 데이터가 잘 적재되고 있는지 확인해보자.

먼저 인덱스 생성여부를 확인한다.

curl localhost:9200/_cat/indices?v

위 명령어를 계속입력하면 아래의 네모칸의 docs.count가 증가하는 것을 확인할 수 있을 것이다.

(나는 이상하게 증가가 안되는데;; 뭔가가 잘못되었나...)

해당 인덱스의 데이터를 살펴보자. 엘라스틱서치에서도 데이터가 잘 적재되고 있는 것을 확인할 수 있다.

curl -XGET localhost:9200/logstash-2021.07.04-000001/_search?pretty

# 키바나에서 데이터 확인하기 

이제 키바나 웹UI의 discover 메뉴에 들어가본다.

아래처럼 데이터가 시각화되어서 나타나는 것을 확인할 수 있다.

키바나에서 데이터 확인이 안됨... 일단 패스하자...

# Filebeat 설치하기

# 파일비트 설치하기 > 파일비트도 yum으로 설치한다.

# 예제파일 다운로드

예제로 사용할 로그 데이터를 다운받는다.

cd
wget https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz
gzip -d logstash-tutorial.log.gz

# 파일비트 설정파일 수정

sudo vi /etc/filebeat/filebeat.yml

먼저 타입을 log로 해주고 위에서 다운받은 예제 파일의 경로를 설정해준다. 이때 enabled는 true로 해준다.

키바나 공인IP와 포트번호를 적어준다.

filebeat의 결과는 로그스태시로 향하게 설정하고 이때 엘라스틱서치로 가지 않도록 주의한다.

파일비트 서비스를 재시작해준다.

sudo service filebeat restart

# 로그스태시 conf파일 수정

파일비트에 맞는 로그스태시conf파일을 사용자 홈디렉터리에 만들어준다.

cd
vi logstash-beat.conf
nput {
  beats {
    port => 5044
  }
}

filter {
        grok {
                match => { "message" => "%{COMBINEDAPACHELOG}"}
        }
}

output {
  stdout {
        codec => rubydebug
  }
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

# 로그스태시와 파일비트 실행하기

먼저 로그스태시부터 실행시켜서 대기시킨다.

sudo /usr/share/logstash/bin/logstash -f /home/ec2-user/logstash-beat.conf --config.reload.automatic

참고사이트 : https://earthconquest.tistory.com/267?category=945864 

 

[Elastic Stack] AWS 리눅스 단일서버에서 ELK 사용하기(Metricbeat, Filebeat로부터 Logstash > elasticsearch > kiban

저번 게시글에 이어서 이번에는 metricbeat와 filebeat에서 생성된 데이터를 logstash로 보내서 전처리 작업이후 elasticsearch로 적재된 뒤 kibana에서 데이터를 시각화해서 보는 작업들을 진행해보려고 한

earthconquest.tistory.com

해당 부분부터 다시시작... 오류 해결해보자...

'⭐ AWS > AWS ELK' 카테고리의 다른 글

AWS ELK를 구성해보자(2)  (0) 2021.08.14
AWS ELK를 구성해보자(1)  (0) 2021.08.14