2018년 9월 9일 일요일

mysql-connector-java 8 버그

Elasticsearch 활용(Snort 데이터베이스 연동) 편에서 Mysql 데이터베이스 연동을 위해 mysql-connector-java 5 버전을 사용했었는데 어느새 8 버전이 나왔다.


참고로 다운로드 과정에서 회원 자격이 필요한 것처럼 로그인을 요구하는데, 설명을 천천히 읽어보면 페이크다(..)


다음은 로그스태시 연동 설정.
input {
  jdbc {
    jdbc_driver_library => "D:\ELK\mysql-connector-java-8.0.12\mysql-connector-java-8.0.12.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://192.168.56.100:3306/snort"
    jdbc_user => "root"
    jdbc_password => "password"
    use_column_value => true
    tracking_column => "cid"
    clean_run => true
    schedule => "* * * * *"
    statement => "select a.cid, a.timestamp, b.sig_name from event a, signature b where a.signature = b.sig_id and a.cid > :sql_last_value"
  }
}

output {
  elasticsearch {
    hosts => "192.168.56.1:9200"
    index => "snort-db"
  }
  stdout { codec => rubydebug }
}

그런데 실행하니 에러 발생. 한국 시간대를 인식하지 못한다고?


강의 중에 이런 일이 발생하면 나도 할 말을 잃고, 수강생도 할 말을 잃고(..)


구글링해보니 5 버전 이후부터 한국 시간대를 인식하지 못하는 문제가 있다고. 오라클 이놈들 다행히 해결책은 간단하다. DB 연결 정보에 ServerTimezone 정보를 추가하면 됨.
jdbc_connection_string => "jdbc:mysql://192.168.56.100:3306/snort?characterEncoding=UTF-8&serverTimezone=UTC"

설정 변경 후 실행하니 잘 된다.


관련 글

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스