본문 바로가기
IT/Logstash

Logstash업그레이드 시 에러 발생. Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

by whathelllllllllllllllll 2022. 1. 7.
728x90

log4j 이슈로 logstash7.12.0 에서 logstash7.16.2로 업그레이드 진행

 

아래 에러 발생

[2022-01-04T10:17:19,994][ERROR][logstash.inputs.jdbc     ][main][20e0b53eed4f452b45284919041c463b929f2d5a6e4387830b84cf4aaa6c1441]
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(com/mysql/cj/jdbc/exceptions/SQLError.java:174) ~[mysql-connector-java-8.0.22.jar:8.0.22]

 

기존과 동일한 Logstash conf 에 버전만logstash7.16.2로 실행했을 뿐인데.. 

짜바리의 나는 너무 당황스럽다. .※요즘은 jdbc driver설치해야하지만, logstash플러그인은 설치 필요없네용??

 

에러난 이후에도 이전버전으로 실행시키면 여전히 잘돌아가고... 

 

 

해결 (위원님 도움을 받아..)

 무엇인가 jdbc connection 처리하는 것이 변경이 된 듯 

7.16.2에서는 7.12.1과는 다르게 db connection하는 과정에서 다음과 같은 error가 발생합니다.
 "Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"
이는 ssl 처리를 한다는 것인데, 이전에는 이러한 현상이 없었습니다.
즉 7.16.2에서는 이전에 하지않던 ssl option을 처리한다는 의미입니다.
이를 해소하려면 connection option에 이를 false로 처리해야 합니다.
 
다음의 내용을 참조하세요.

(기존)

jdbc_connection_string => "jdbc:mysql://<some_ip>:<some_port>/<some_database>?characterEncoding=UTF-8&serverTimezone=UTC"
(변경)
jdbc_connection_string => "jdbc:mysql://<some_ip>:<some_port>/<some_database>?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC"
 
useSSL=false option을 추가하면 정상적으로 처리됩니다.
 
 

-도움을 받아 작성한 것이지만 링크를 참고한것은 아니지만 링크를 첨부해본다.( 다른분 블로그 : logstash mysql와 es연동 링크)           input구문을 참고해볼 수 있을 것 같다. 쉽게 설명해주셨다. 

 

댓글