ELK 스택/Filebeat+ELK

[ MySQL + ELK ] Logstash과 MySQL DB 연동하기

new_challenge 2020. 1. 2. 23:59
반응형

[Filebeat+ELK] 첫번째 로그 모니터링 서버 구축기

03. MySQL DB와 연동하기

 

 

 

 

데이터 흐름 파이프라인

DB에 존재하는 파일들을 Logstash를 통해 전처리하여 엘라스틱서치에 전달하는 과정의

파이프라인을 진행, 또한 최종적으로 DB의 데이터를 키바나를 통해 시각화

 

 

 

DB-connector 다운로드 (MySQL)

 

"우선 DB와 연결하기 위해서는 연결하기 위한 connector가 필요하다"

 

Connector 다운

- 아래 링크를 타고 들어가면 최신 버전을 확인 할 수 있으니 확인 후 다운

$ wget 'https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.tar.gz'

 

 

https://dev.mysql.com/downloads/connector/j/ 

 

MySQL :: Download Connector/J

MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.

dev.mysql.com

 

압축풀기

- 다운 받은 압축 파일을 풀어준다.

tar -xvf ./mysql-connector-java-8.0.18.tar.gz

 

필요한 파일 위치 변경 후 남은 파일 삭제

- 압축해제 후 필요한 파일만 원하는 위치로 이동 후 남은 파일은 삭제한다

$ mv ./mysql-connector-java-8.0.18/mysql-connector-java-8.0.18.jar ./lib/mysql-connector
-java-8.0.18.jar

$ rm -rf ./mysql-connector-java-8.0.18*

 

 

Logstash input plugin 설치

MySQL을 로그스테이시의 인풋으로 사용하기 위한 플러그인 설치

- deb으로 logstash 설치 시 bin 폴더의 위치는 /usr/share/logstash에 존재한다

bin/logstash-plugin install logstash-input-jdbc

 

 

Logstash input conf 설정

- Input으로 jdbc를 사용

- Input 설정에 관한 자세한 사항은 공식 문서를 통해 확인 가능함

input {
    jdbc {
      jdbc_driver_library => "위에서 설치한 connector의 위치"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_connection_string => "jdbc:mysql:[MySQL_접속경로]/[데이터베이스_이름]"
      jdbc_user => "유저이름"
      jdbc_password => "비밀번호"
      statement => "쿼리문"
      schedule => "* * * * *" # Query주기 설정
    }
}

# 필터가 필요하다면 아래 설정
filter {

}

# Elasticsearch로 output 설정
output {
    elasticsearch {
      host
    }
}

 

< 공식 문서 링크 >

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html

 

Jdbc input plugin | Logstash Reference [7.5] | Elastic

Building count queries around a prepared statement is not supported at this time and because jdbc paging uses count queries under the hood, jdbc paging is not supported with prepared statements at this time either. Therefore, jdbc_paging_enabled, jdbc_page

www.elastic.co

 

반응형