📚 [Elasticsearch] jdbc 연결하기
Category: ELK | 📅 January 12, 2016
엘라스틱 서치가 2.0으로 넘어오면서 jdbc연결을 도와주던 river라는 플러그인은 제거 되었다.
공홈에서는 logstash 의 jdbc 플러그인을 이용하여 사용하는 것을 추천하고 있다.
엘라스틱서치에 쌓이는 과정
logstash 실행 -> logstash jdbc연결 -> 쿼리날림 -> 로그발생 -> 엘라스틱서치에 기록
logstash 설치
( 2016.01.12일 현재 최신버전임)
$ wget https://download.elastic.co/logstash/logstash/logstash-2.1.1.tar.gz
$ tar xvzf logstash/logstash-2.1.1.tar.gz
$ cd logstash-2.1.1
vim logstash.conf
input {
stdin {}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
stdout {
codec => rubydebug
}
}
$ bin/logstash -f logstash-simple.conf --configtest
logstash jdbc 연결
jdbc에 사용할 jar파일을 따로 제공하지 않기 때문에 별도로 구해야 한다.
여기서는 river github에서 구하였다.
$ bin/plugin list jdbc // jdbc 확인
$ bin/plugin install logstash-input-jdbc
$ wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.1.1.2/elasticsearch-jdbc-2.1.1.2-dist.zip
$ sudo apt-get install unzip
$ cp elasticsearch-jdbc-2.1.1.2/lib/mysql-connector-java-5.1.33.jar lib/
$ ls -al lib/*.jar // 파일이 있는지 확인
logstash conf 파일 생성
$ vim logstash-jdbc.conf // jdbc용 conf파일 생성
input {
jdbc {
jdbc_driver_library => "lib/mysql-connector-java-5.1.33.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/[db-name]"
jdbc_user => "[db-user]"
jdbc_password => "[password]"
statement => "SELECT * FROM [tbl-name]"
schedule => "* * * * *"
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
stdout {
codec => rubydebug
}
}
테스트
$ bin/logstash -f logstash-jdbc.conf --configtest
$ bin/logstash -f logstash-jdbc.conf