른록노트

[Elasticsearch] logstash 설치 - 4 본문

DB/[Elasticsearch]

[Elasticsearch] logstash 설치 - 4

른록 2020. 9. 27. 23:55

@ 시작하기전

Window PC에서 VMware로 Linux서버 3대로 클러스터 구성할 계획입니다.

서버사양

OS : CentOS7.4

CPU : 3 core

Memory : 4 GB

Elasticsearch Version : 7.9.1

security 적용한 상태입니다 (이전글 llnote.tistory.com/681)

kibana 설치한 상태입니다 (이전글 llnote.tistory.com/682)

 

@ 목표

apache 서버 로그를 logstash를 이용해 elastic으로 전송하는 파이프를 만들어볼것입니다

 

@ 방법

logstash 웨비나 동영상 (웹+세미나) (www.elastic.co/kr/webinars/getting-started-logstash)

 

1. 다운로드

> curl https://artifacts.elastic.co/downloads/logstash/logstash-7.9.1.tar.gz -O

 

2. 설정

> vim conf/logstash.yml

path.config: "/root/logstash-7.9.1/config/*.conf" #logstash 파이프 실행하는 conf 위치
config.reload.automatic: true #설정 수정됐을때 자동으로 갱신
config.reload.interval: 3s #자동갱신 주기 3초

 

* path.config 경로에 확장자가 conf로 시작되는 파일들은 모두 실행되니 sample.conf를 지우는게 좋습니다

 

> vim conf/example.conf

input {
  tcp {
    port => 9900
    type => "apache"
  }
}

filter {
  if [type] == "apache"{

    grok {
      match => {
        message => "%{HTTPD_COMBINEDLOG}"
        remove_field => "message"
      }
    }

    geoip {
      source => "clientip"
      fields => ["city_name","country_name","location", "region_name"]
    }

    date {
      match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
      remove_field => "timestamp"
    }
  }
}

output {
  elasticsearch {
    hosts => ["https://server-1:9200","https://server-2:9200","https://server-3:9200"]
    user => "계정"
    password => "비밀번호"
    ssl => true
        ssl_certificate_verification => false
        keystore => "/엘라스틱경로/config/elastic-certificates.p12"
        keystore_password => ""
        truststore => "/엘라스틱경로/config/elastic-certificates.p12"
        truststore_password => ""
  }
}

*추가 (다른 ssl 인증 방법)

> echo -n | openssl s_client -connect 엘라스틱주소:9200 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ./ca_logstash.cer (인증서 만들기)

 

output {
  elasticsearch {
    hosts => ["https://엘라스틱주소:9200"]
    user => "아이디"
    password => "비밀번호"
    cacert => "인증서경로/ca_logstash.cer"
    ssl => true
    ssl_certificate_verification => false
  }
}

 

@ 테스트

> bin/logstash

 

> vi access.log

106.15.74.13 - - [13/Sep/2020:02:36:59 -0700] "GET /TP/public/index.php HTTP/1.1" 404 217 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6)"

echo access.log | nc localshot 9900

 

@ 확인

키바나에 접속해서 logstash로 시작하는 인덱스가 있는지 확인해보면 됩니다

반응형
Comments