개요
-
Logpresso 프로세스 재기동 시 OS 기동 계정이 변경되면 기존 인덱스/UDP 큐 파일에
Permission denied가 발생한다. -
에러가 발생한 핵심 원인은 재기동 시 이전과 다른 계정으로 프로세스를 기동하여 기존 파일 소유권과 불일치하는 것이다.
-
UDP 수신 서버(
syslog.close/syslog.open) 재시작 및 데이터 디렉토리 소유권 정리 후 동일 계정으로 재기동하여 해결한다.
적용 대상
-
제품: Logpresso Sonar
-
버전:
-
취약/영향 버전: 전 버전 (기동 계정 불일치 환경)
-
검증 버전: -
-
패치/권장 버전: -
-
-
대상 환경:
-
OS/배포판: Linux
-
구성(단일/클러스터, 수집/전달/분석 노드 등): 전체 노드 타입 해당
-
배경 / 문제 설명
-
증상: 프로세스 재기동 후 로그 인입량 급감(정상 대비 ~1/10). UdpServer
cannot open file for write에러가 3~5초 간격으로 지속 발생. LogIndexerEnginePermission denied에러가 다 건 발생. -
영향도: 전체 로그 수집 사실상 중단. 수신된 로그가 인덱스 파일에 기록되지 못해 드롭됨.
-
원인(추정 포함):
-
장애 복구 시
root로 재기동 → 이 시점에 생성된 인덱스/UDP 큐 파일의 소유자가root로 기록됨. -
이후 정상 운영 계정(
logpresso)으로 재기동할 때 해당 파일에 쓰기 권한이 없어Permission denied발생.
-
재현 방법 (선택)
-
정상 운영 계정(예:
logpresso)으로 운영 중 비정상 종료 발생 -
장애 복구 과정에서
root계정으로 프로세스 재기동 → 신규 생성되는 인덱스/UDP 큐 파일의 소유자가root로 변경됨 -
이후 정상 운영 계정(
logpresso)으로 다시 재기동 →logpresso계정이root소유 파일에 쓰기 불가 →Permission denied→ 로그 수집 장애
해결 방법
방법 (대안)
- 데이터 디렉토리 소유권을 정리하고 올바른 계정으로 재기동한다.
# 프로세스 정지 후 진행 권장
chown -R <올바른_계정>:<올바른_그룹> /data/logpresso-data/
chown -R <올바른_계정>:<올바른_그룹> /[패키지경로]
chown -R <올바른_계정>:<올바른_그룹> /[쿼리 내 사용되는 파일] ex) textfile, csvfile 등 쿼리에 사용되는 파일# 프로세스 정지 후 진행 권장chown -R <올바른_계정>:<올바른_그룹> /data/logpresso-data/chown -R <올바른_계정>:<올바른_그룹> /[패키지경로]chown -R <올바른_계정>:<올바른_그룹> /[쿼리 내 사용되는 파일] ex) textfile, csvfile 등 쿼리에 사용되는 파일
# systemctl 서비스 파일의 User= 설정 확인
cat /etc/systemd/system/logpresso.service | grep User
# 올바른 계정으로 재기동
systemctl start logpresso
# 기동 계정 재확인
ps -o user,pid,cmd -p $(pgrep -f araqne-core)
주의사항 / 호환성 영향
- 운영 중
chown -R은 I/O 부하를 유발할 수 있으므로 가능하면 프로세스 정지 후 수행 필요
검증 방법
# UDP write 에러 해소 확인 (0건이어야 정상)
grep "cannot open file for write" /path/to/araqne.log | tail -5
# Permission denied 에러 해소 확인
grep "Permission denied" /path/to/araqne.log | tail -5
# 프로세스 기동 계정 확인
ps -o user,pid,cmd -p $(pgrep -f araqne-core)
# 데이터 디렉토리 소유권 확인
ls -la /data/logpresso-data/logpresso-index/online/
결론
-
프로세스 재기동 시 반드시 기존과 동일한 OS 계정으로 기동해야 한다. systemd(systemctl) 또는 logpresso 런처의
User=설정을 사전에 문서화하고, 장애 복구 시에도 root 직접 기동은 금지한다. -
UDP write 에러(
cannot open file for write)가 발생하면syslog.close/syslog.open으로 즉시 해소할 수 있다. -
재기동 후 반드시
araqne.log에서Abnormal shutdown detected,Permission denied,cannot open file for write발생 여부를 즉시 확인한다.