반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

지구정복

[NiFi & Linux] NiFi log 관리하기 본문

데이터 엔지니어링 정복/NiFi

[NiFi & Linux] NiFi log 관리하기

noohhee 2025. 5. 9. 16:22
728x90
반응형

 

 

기본적으로 NiFi의 로그는 logback.xml 파일에서 설정을 할 수 있지만 현재 내가 사용하고 있는 Ambari에서는 해당 파일의 설정을 Ambari에서 수정할 수가 없었다.

 

각 NiFi 서버들에 직접 접속해서 logback.xml을 수정해도 되겠지만 Ambari에서 NiFi을 재기동하면 설정이 초기화된다.

 

따라서 일단 log rotate 패키지를 활용해서 NiFi log가 너무 많이 쌓이지 않도록 관리를 한다.

 

 

1. logrotate 설치 및 설정

# dnf install logrotate

# vim /etc/logrotate.d/nifi

/var/log/nifi/nifi-app_*.log {
    daily
    rotate 15
    missingok
    notifempty
    create 0640 nifi hadoop
    su nifi hadoop
}

--설명
/var/log/nifi/nifi-app_*.log {
    daily                     # 매일 로그 회전
    rotate 15                # 최대 15개의 로그 파일 유지
    missingok                # 로그 파일이 없어도 에러 발생하지 않음
    notifempty               # 로그 파일이 비어 있으면 회전하지 않음
    create 0640 nifi hadoop  # 새로운 로그 파일 생성 시 권한 설정
    su nifi hadoop           # 로그 회전 시 사용할 사용자와 그룹
}



--결과 확인 및 테스트 / error나 warning이 없어야 한다.
# logrotate -d /etc/logrotate.d/nifi



--실제 적용
# logrotate -f /etc/logrotate.d/nifi

 

 

 

2. Shell & Crontab으로 로그 지우기

근데 약간 잘 안돼서 그냥 쉘스크립트 만들어서 crontab으로 돌렸다.

# cat /usr/local/bin/cleanup_nifi_logs.sh
#!/bin/bash

# the path of nifi log file
LOG_DIR="/var/log/nifi/"
LOG_PATTERN="nifi-app_20*.log"

# the max count of log file
MAX_FILES=15

# To check the current number of log files in the path
FILE_COUNT=$(ls $LOG_DIR$LOG_PATTERN | wc -l)

# If the number of file is over than 15
if [ "$FILE_COUNT" -gt "$MAX_FILES" ]; then
        # remove the files from oldest files
        ls -t $LOG_DIR$LOG_PATTERN | tail -n +$((MAX_FILES + 1)) | xargs rm -f
fi

echo -e "\n\n End \n\n"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
Comments