현상
sys.log에 ‘ERROR_IO(-18017) : during a user authentication process.’가 발생하는 현상입니다.
[2025-04-04T14:10:55.645821] [FRM-104] [I] ERROR_IO(-18017) : during a user authentication process. client ip: 172.31.34.100, port:55876, prog_name:, user_name:, osuser_name:, terminal:
SQL
복사
원인
Tibero는 Tibero가 인지하고 있는 클라이언트(jdbc 등)의 연결만을 허용하는데, 정상적인 Tibero 클라이언트가 연결되면 prog_name, user_name, osusername 등등 모두 slog에 18017 에러로 존재하게 됩니다.
참고
port에 바로 connect 한 경우이므로 이러한 부분도 남지 않았고 client ip 및 port 만 나와있는 상황으로, server Health Check시 발생할 수 있습니다.
해결
메시지 형태가 다르거나 메시지가 없는 경우, 포트에 단지 connect 만 하는 경우에 대해서도 에러를 발생하지 않도록, 패치를 적용해 해결합니다. (적용패치: 188701)
•
188701b 패치 적용 후, ‘AUTHENTICATION_FOR_HEALTH_CHECK=Y’ 조치로 ERROR_IO 출력 문제 해결이 가능합니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
참고
auditd 패키지를 이용하여 ERROR_IO(-18017) : during a user authentication process. client ip: 172.31.34.100 에서 접근한 프로세스명을 알 수 있습니다.
(의미: 리눅스에서 제공되는 auditd framework 를 이용해 linux 상에서 'connect' 시스템 콜을 요청한 프로세스 정보 및 시간을 모두 덤프, Tibero에 접속한 프로세스 이름을 알아내는 것)
1. auditd 설치
linux 커널에서 제공하는 데몬이므로 배포판에 따라 설치되어 있을 수도 있습니다.
2. root user 에서 명령어를 수행하여 audit 기록 시작
$ sudo auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT
SQL
복사
명령어 수행 시점부터는 'connect' 를 호출하는 모든 기록이 /var/log/audit/audit.log 에 기록됩니다.
3. 기록 완료 후 중지
$ sudo auditctl -d exit,always -F arch=b64 -S connect -k MYCONNECT
SQL
복사
많은 양이 남을 수 있기에 기록 후에는 위의 명령어로 중지합니다.
4. audit.log 내용 해석 (ausearch 이용)
sudo ausearch --start 03/16/21 '16:01:42' --end 03/16/21 '16:01:47'
SQL
복사
위와 같이 입력 시, 2021년 3월 16일 16시 1분 42초부터 2021년 3월 16일 16시 1분 47초까지 남은 audit.log 가 좀 더 읽기 쉽게 변환되어 화면에 출력됩니다.