ELK 구축해보기
이번에는 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}" } } |
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를 설정을 마치고 키바나에 들어오면 다음과 같이 로그 데이터가 들어오는 것을 볼 수 있습니다.