른록노트
[Elasticsearch] logstash 설치 - 4 본문
@ 시작하기전
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로 시작하는 인덱스가 있는지 확인해보면 됩니다