서버구축 (WEB,DB)
n8n 실행 로그 데이터 용량을 줄이고 주기적으로 자동 최적화
날으는물고기
2024. 8. 24. 00:19
n8n의 실행 로그 데이터를 줄이고 자동으로 정리하는 방법입니다. 이 설정을 통해 데이터베이스의 용량을 효율적으로 관리할 수 있습니다.
1. 저장되는 데이터 양 줄이기
환경 변수를 설정하여 불필요한 데이터를 저장하지 않도록 할 수 있습니다.
npm을 사용하는 경우
# 오류가 발생한 실행만 저장
export EXECUTIONS_DATA_SAVE_ON_ERROR=all
# 성공적인 실행은 저장하지 않음
export EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
# 각 실행에 대한 노드 진행 상황을 저장하지 않음
export EXECUTIONS_DATA_SAVE_ON_PROGRESS=false
# 수동으로 실행한 실행은 저장하지 않음
export EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false
Docker를 사용하는 경우
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e EXECUTIONS_DATA_SAVE_ON_ERROR=all \
-e EXECUTIONS_DATA_SAVE_ON_SUCCESS=none \
-e EXECUTIONS_DATA_SAVE_ON_PROGRESS=false \
-e EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false \
docker.n8n.io/n8nio/n8n
Docker Compose를 사용하는 경우
n8n:
environment:
- EXECUTIONS_DATA_SAVE_ON_ERROR=all
- EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
- EXECUTIONS_DATA_SAVE_ON_PROGRESS=false
- EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false
2. 데이터 정리 활성화
자동으로 일정 기간 후 실행 데이터를 삭제하도록 설정할 수 있습니다.
npm을 사용하는 경우
# 자동 데이터 정리 활성화
export EXECUTIONS_DATA_PRUNE=true
# 실행 후 168시간 (7일) 후 데이터 삭제
export EXECUTIONS_DATA_MAX_AGE=168
# 최대 50,000개의 실행 데이터를 저장
export EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
Docker를 사용하는 경우
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e EXECUTIONS_DATA_PRUNE=true \
-e EXECUTIONS_DATA_MAX_AGE=168 \
-e EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000 \
docker.n8n.io/n8nio/n8n
Docker Compose를 사용하는 경우
n8n:
environment:
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
이 설정을 적용하면 n8n이 실행 로그 데이터를 효율적으로 관리하여 데이터베이스의 용량을 줄일 수 있습니다. 설정을 적용한 후에는 데이터베이스의 용량이 줄어드는지 모니터링하면서 필요한 경우 설정을 조정하세요.
데이터베이스 정리 스크립트 작성
정기적으로 오래된 로그 데이터를 삭제하는 스크립트를 작성하여 데이터베이스의 용량을 관리할 수 있습니다.
다음은 PostgreSQL을 예시로 한 스크립트입니다.
-- 실행 로그 테이블에서 30일 이전의 로그를 삭제
DELETE FROM "execution_entity"
WHERE "startedAt" < NOW() - INTERVAL '30 days';
이 스크립트를 정기적으로 실행하도록 스케줄러(Cron job 등)를 설정하면 됩니다.
728x90