서버구축 (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