MariaDB `Host '{ip}' is blocked because of many connection errors; unblock with 'mariadb-admin flush-hosts'`
Posted at 
2024.11.25 17:38
MariaDB를 사용하던 중 발생한 문제에 대한 원인과 해결 방법을 공유합니다.

문제

MariaDB를 사용하는 서비스에서 DB 연결 중 `Host '{ip}' is blocked because of many connection errors; unblock with 'mariadb-admin flush-hosts'` 에러가 발생했다.

일시적으로 MariaDB에서 flush hosts; 쿼리로 에러 카운트를 초기화시켰지만 금방 다시 동일한 에러가 발생했다.

원인

사내에서 MariaDB 서비스의 모니터링을 위해 Uptime Kuma를 이용하여 TCP Port방식으로 60초마다 한번씩 3 Way-Handshake으로 서비스의 상태를 확인하고 있었다.

이렇게 연결 후 바로 연결을 종료하면 MariaDB는 비정상적인 접속으로 판단하고 Connect error count를 올리고 에러 카운트가 max_connect_errors보다 커지면 해당 IP를 블락시킨다.

Uptime Kuma에는 필자가 직접 MariaDB의 모니터링을 추가했었지만, kubernetes내에서 돌아가는 서비스가 너무 많아 모니터링하는 부분이 문제가 될 것이라고는 생각을 하지 못하였다.

해결 방법

Uptime Kuma에서 모니터링 종류를 MySQL/MariaDB로 변경 후 정상적으로 MariaDB에 연결하도록 설정했다.

Comment

인터넷에서 해당 오류에 대해 찾아보면 대부분 에러 카운트를 초기화하는 방법이나 max_connect_errors를 증가시키는 방법을 해결 방안으로 제시하고 있다.

당장 문제를 해결하기에는 해당 방안들이 도움이 되지만 이런 오류는 대부분 시간이 지날수록 점점 쌓여서 다시 에러가 발생하다 보니 대증적인 방안은 별로 도움이 되지 않는 것 같다.

프레소
Copyright © PRESSO. All Rights Reserved.