가상머신 환경 세팅

ELK 구축해보기

evans 2017. 12. 8. 13:51

이번에는 ELK를 구축해봅시다. ELK는 Elasticsearch Logstash Kibana의 줄임말로 로그를 웹상에서 분석할 수 있게 해주는 툴 들입니다.




일단은 ELK를 구축하기 전에 자바가 설치되어있는지 확인합니다 자바는 최소 1.8 이상의 버전을 추천합니다. 

java -version 입력하면 설치유뮤와 버전을 알 수 있습니다.


자바는 대부분 CentOS를 설치하면 기본적으로 설치되어있습니다. 확인을 했으면 일단 Elasticsearch부터 설치를 하겠습니다.



Elasticsearch의 레퍼지토리를 설정하기 위해서 다음과 같이 입력합니다.

vi /etc/yum.repos.d/elasticsearch.repo



vi 창으로 들어오시면 설정을 입력하고 저장하고 나옵니다

[elasticsearch-5.x]

name=Elasticsearch repository for 5.x packages

baseurl=https://artifacts.elastic.co/packages/5.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md 




다음은 yum을 이용해서 elasticsearch를 설치합니다

yum -y install elasticsearch


설치가 완료되면 elasticsearch를 실행하고 자동실행이 되게 설정을 해주자.

systemctl start elasticsearch 

 systemctl enable elasticsearch



 curl http://127.0.0.1:9200 라고 입력해서 다음과 같은 화면이 나오면 무사히 설치가 된 것이다.

 curl http://127.0.0.1:9200 


다음은 logstash설치.



yum을 이용해서 logstash를 설치해줍시다.

yum -y install logstash



sshd컨프를 설정합니다.

vi /etc/logstash/conf.d/sshd.conf



# create new

# extract sshd fail logs from [/var/log/secure] and output to index [sshd_fail-yyyy.mm] in elasticsearch

input {

  file {

    type => "seucure_log"

    path => "/var/log/secure"

  }

}

filter {

  grok {

    add_tag => [ "sshd_fail" ]

    match => { "message" => "Failed %{WORD:sshd_auth_type} for %{USERNAME:sshd_invalid_user} from %{IP:sshd_client_ip} port %{NUMBER:sshd_port} %{GREEDYDATA:sshd_protocol}" }

  }

}


output {

  elasticsearch {

    index => "sshd_fail-%{+YYYY.MM}"

  }


입력하고 wq입력하고 나옵니다.



logstash에 로그 권한을 줍시다.


 chgrp logstash /var/log/secure 

 chmod 640 /var/log/secure 




설정이 다됬으니 logstash를 실행합시다.

systemctl start logstash 

systemctl enable logstash


이러면 logstash 설정 끝. kibana를 설치합니다


kibana는 yum으로 설치합니다.

yum -y install kibana



다음은 kibana의 설정을 해줍니다.

vi /etc/kibana/kibana.yml





7번째 줄에 server.host에 자신의 IP주소를 적어줍니다.

21번 줄에 elasticsearch.url: "http://localhost:9200" 라고 바꿔줍니다



kibana의 설정은 끝났으니 시작을 해줍니다.

systemctl start kibana 

systemctl enable kibana



다음은 5601포트의 방화벽을 열어줍시다.

firewall-cmd --add-port=5601/tcp --permanent 




localhost:5601을 입력해서 다음과 같은 화면이 나오면 kibana까지 설치가 완료된 것입니다.



다음은 로그파일을 보내주는 filebeat를 설치하면 kibana에서 로그 기록들을 볼수있습니다



yum을 사용 해서 filebeat를 설치합니다.

yum -y install filebeat



filebeat.yml 설정파일에서 수정을 합시다

 vi /etc/filebeat/filebeat.yml




21-22번째 줄에서

- /var/log/httpd/* 라고 수정해줍니다.



80-81번재 줄에  output.elasticsearch: 애서 hosts부분을 바꿔줍니다.

hosts: ["localhost:9200"]



설정이 끝났으면 filebeat를 시작해줍니다.

systemctl start filebeat 

systemctl enable filebeat



filebeat를 설정을 마치고 키바나에 들어오면 다음과 같이 로그 데이터가 들어오는 것을 볼 수 있습니다.