InfoGrab DocsInfoGrab Docs

로그 스트리밍

요약

로그 스트리밍은 모든 Enterprise 플랜에서 사용할 수 있습니다. 로그 스트리밍을 사용하면 n8n에서 발생하는 이벤트를 자체 로깅 도구로 전송할 수 있습니다. 로그 스트리밍을 사용하려면 스트리밍 대상을 추가해야 합니다.

Note

기능 제공 범위

로그 스트리밍은 모든 Enterprise 플랜에서 사용할 수 있습니다.

로그 스트리밍을 사용하면 n8n에서 발생하는 이벤트를 자체 로깅 도구로 전송할 수 있습니다. 이를 통해 자체 알림 및 로깅 프로세스에서 n8n 모니터링을 관리할 수 있습니다.

로그 스트리밍 설정하기#

로그 스트리밍을 사용하려면 스트리밍 대상을 추가해야 합니다.

  1. Settings > Log Streaming으로 이동합니다.
  2. Add new destination을 선택합니다.
  3. 대상 유형을 선택합니다. n8n이 New Event Destination 모달을 엽니다.
  4. New Event Destination 모달에서 이벤트 대상에 대한 구성 정보를 입력합니다. 이 정보는 사용 중인 대상 유형에 따라 달라집니다.
  5. 스트리밍할 이벤트를 선택하려면 Events를 선택합니다.
  6. Save를 선택합니다.
Note

셀프 호스팅 사용자

n8n을 셀프 호스팅하는 경우 환경 변수를 사용하여 추가적인 로그 스트리밍 동작을 구성할 수 있습니다. 또한 환경 변수로 대상을 관리할 수도 있습니다. 자세한 내용은 환경 변수를 사용하여 로그 스트리밍 대상 구성하기를 참고하세요.

프로세스별 이벤트 로그 파일#

n8n은 각 이벤트를 스트리밍 대상으로 전달하기 전에 로컬 로그 파일에 저장합니다. 이 파일은 재시작 후에도 유지되며, 아직 전달되지 않은 이벤트를 n8n이 다시 전송할 수 있게 해줍니다.

기본적으로 n8n은 이벤트 로그를 <n8n-user-folder>/n8nEventLog.log에 기록하며, 해당 프로세스에는 -worker 또는 -webhook-processor 접미사가 붙습니다. 단일 n8n 프로세스가 파일을 소유하는 경우, 이 기본값은 예상대로 작동합니다.

Warning

공유 쓰기 가능 파일 시스템

여러 n8n 프로세스가 하나의 쓰기 가능한 볼륨을 공유하는 경우(예: NFS 또는 EFS의 공유 영구 볼륨을 사용하는 큐 모드 워커), 동일한 이벤트 로그 파일에 기록해서는 안 됩니다. 여러 프로세스에서 동시에 추가 기록(append)하면 파일이 뒤섞이거나 손상되어 복구 실패 및 이벤트 손실로 이어질 수 있습니다.

이를 방지하려면 각 프로세스에서 N8N_EVENTBUS_LOGWRITER_LOGFULLPATH.log로 끝나는 고유한 절대 경로로 설정하세요. n8n은 구성된 경로를 그대로 사용하며 프로세스 유형 접미사를 추가하지 않으므로, 프로세스 간 고유성을 보장하는 것은 오케스트레이터의 책임입니다.

함께 사용되는 변수인 N8N_EVENTBUS_LOGWRITER_MAXTOTALMESSAGESPERFILE은 복구 과정에서 n8n이 단일 이벤트 로그 파일에서 파싱하는 줄 수를 제한하여, 손상된 파일이 프로세스 메모리를 고갈시키지 않도록 합니다.

참고 사항:

  • N8N_EVENTBUS_LOGWRITER_LOGFULLPATH가 설정되지 않은 경우 기본 동작은 변경되지 않습니다.
  • 이 변수가 설정되면 n8n은 경로에 자동으로 접미사를 붙이지 않습니다. 각 프로세스는 고유한 값을 받아야 합니다.
  • 이전 배포에서 생성된 공유 n8nEventLog-worker.log 파일이 이미 존재하는 경우, 이 기능을 적용하기 전에 수동으로 격리하세요. n8n은 기존 파일을 자동으로 삭제하지 않습니다.

이벤트#

다음 이벤트를 사용할 수 있습니다. 스트리밍할 이벤트는 Settings > Log Streaming > Events에서 선택할 수 있습니다.

  • 워크플로
    • 시작됨
    • 성공
    • 실패
    • 취소됨
  • 노드 실행
    • 시작됨
    • 완료됨
  • 감사
    • 사용자 로그인 성공
    • 사용자 로그인 실패
    • 사용자 가입
    • 사용자 업데이트됨
    • 사용자 삭제됨
    • 사용자 초대됨
    • 사용자 초대 수락됨
    • 사용자 재초대됨
    • 사용자 이메일 실패
    • 사용자 재설정 요청됨
    • 사용자 재설정됨
    • 사용자 자격 증명 생성됨
    • 사용자 자격 증명 공유됨
    • 사용자 자격 증명 업데이트됨
    • 사용자 자격 증명 삭제됨
    • 사용자 API 생성됨
    • 사용자 API 삭제됨
    • 사용자 MFA 활성화됨
    • 사용자 MFA 비활성화됨
    • 사용자 실행 삭제됨
    • 실행 데이터 공개됨
    • 실행 데이터 공개 실패
    • 패키지 설치됨
    • 패키지 업데이트됨
    • 패키지 삭제됨
    • 워크플로 생성됨
    • 워크플로 삭제됨
    • 워크플로 업데이트됨
    • 워크플로 보관됨
    • 워크플로 보관 해제됨
    • 워크플로 활성화됨
    • 워크플로 비활성화됨
    • 워크플로 버전 업데이트됨
    • 워크플로 실행됨
    • 워크플로 대기 중
    • 워크플로 재개됨
    • 변수 생성됨
    • 변수 업데이트됨
    • 변수 삭제됨
    • 외부 시크릿 제공업체 설정 저장됨
    • 외부 시크릿 제공업체 다시 로드됨
    • 외부 시크릿 연결 생성됨
    • 외부 시크릿 연결 업데이트됨
    • 외부 시크릿 연결 삭제됨
    • 외부 시크릿 연결 테스트됨
    • 외부 시크릿 연결 다시 로드됨
    • 개인 게시 제한 활성화됨
    • 개인 게시 제한 비활성화됨
    • 개인 공유 제한 활성화됨
    • 개인 공유 제한 비활성화됨
    • 2FA 강제 적용 활성화됨
    • 2FA 강제 적용 비활성화됨
    • 토큰 교환 성공
    • 토큰 교환 실패
    • 토큰 교환 임베드 로그인
    • 토큰 교환 임베드 로그인 실패
    • 토큰 교환 아이덴티티 연결됨
    • 토큰 교환 사용자 프로비저닝됨
    • 토큰 교환 역할 업데이트됨
    • 역할 매핑 역할 확인됨
    • 역할 매핑 규칙 생성됨
    • 역할 매핑 규칙 업데이트됨
    • 역할 매핑 규칙 삭제됨
    • 역할 매핑 규칙 일괄 삭제됨
  • 워커
    • 시작됨
    • 중지됨
  • AI 노드 로그
    • 메모리 메시지 가져오기
    • 메모리 메시지 추가됨
    • 출력 파서 파싱됨
    • 리트리버 관련 문서 가져오기
    • 임베딩 문서 임베딩됨
    • 임베딩 쿼리 임베딩됨
    • 문서 처리됨
    • 텍스트 분할기 분할됨
    • 도구 호출됨
    • 벡터 스토어 검색됨
    • LLM 생성됨
    • LLM 오류
    • 벡터 스토어 채워짐
    • 벡터 스토어 업데이트됨
  • 러너
    • 태스크 요청됨
    • 응답 수신됨
    • 작업 큐에 추가됨
    • 작업 큐에서 제거됨
    • 작업 완료됨
    • 작업 실패
    • 작업 지연됨

대상#

n8n은 세 가지 대상 유형을 지원합니다:

  • Syslog 서버
  • 범용 웹훅
  • Sentry 클라이언트

환경 변수를 사용하여 구성하기#

n8n을 셀프 호스팅하는 경우 UI 대신 환경 변수로 로그 스트리밍 대상을 관리할 수 있습니다. n8n v2.19.0부터 사용할 수 있습니다. N8N_LOG_STREAMING_MANAGED_BY_ENVtrue로 설정하고, 대상을 N8N_LOG_STREAMING_DESTINATIONS에 JSON 배열 형태로 제공하세요. n8n은 시작할 때마다 이를 다시 적용하며, Log Streaming UI를 읽기 전용으로 잠급니다. 전체 패턴은 환경 변수를 사용하여 인스턴스 설정 관리하기를 참고하세요.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

공통 필드#

모든 대상은 type과 관계없이 다음 필드를 허용합니다.

필드 유형 필수 여부 설명
type "webhook" | "syslog" | "sentry" 대상 유형입니다. 어떤 유형별 필드가 적용되는지를 결정합니다.
label string 아니요 UI에 표시되는 이름입니다.
enabled boolean 아니요 대상이 이벤트를 전달할지 여부입니다.
subscribedEvents string[] 아니요 전달할 이벤트 이름 또는 그룹 접두사입니다(예: n8n.audit, n8n.workflow).
anonymizeAuditMessages boolean 아니요 n8n.audit.* 이벤트에서 민감한 페이로드 데이터를 제거합니다.
circuitBreaker object 아니요 장애 방지 설정입니다. 서킷 브레이커를 참고하세요.

웹훅#

필드 유형 필수 여부 기본값 설명
url string (URL) - 이벤트 페이로드를 수신하는 엔드포인트입니다.
method "GET" | "POST" | "PUT" 아니요 "POST" 전달에 사용되는 HTTP 메서드입니다.
sendQuery boolean 아니요 false 쿼리 파라미터를 전송할지 여부입니다.
specifyQuery "keypair" | "json" 아니요 "keypair" sendQuerytrue일 때 쿼리 파라미터의 형식입니다.
queryParameters { parameters: [{ name, value }] } 아니요 - 키/값 쌍 형태의 쿼리 파라미터입니다. specifyQuery"keypair"일 때 사용됩니다.
jsonQuery string 아니요 "" JSON 문자열 형태의 쿼리 파라미터입니다. specifyQuery"json"일 때 사용됩니다.
sendHeaders boolean 아니요 false 헤더를 전송할지 여부입니다.
specifyHeaders "keypair" | "json" 아니요 "keypair" sendHeaderstrue일 때 헤더의 형식입니다.
headerParameters { parameters: [{ name, value }] } 아니요 - 키/값 쌍 형태의 헤더입니다. specifyHeaders"keypair"일 때 사용됩니다.
jsonHeaders string 아니요 "" JSON 문자열 형태의 헤더입니다. specifyHeaders"json"일 때 사용됩니다.
options object 아니요 {} 연결 수준 옵션입니다. 웹훅 옵션을 참고하세요.

웹훅 옵션#

필드 유형 필수 여부 기본값 설명
allowUnauthorizedCerts boolean 아니요 false SSL 인증서 검증을 무시합니다.
queryParameterArrays "repeat" | "brackets" | "indices" 아니요 "brackets" 쿼리 파라미터에 사용되는 배열 형식입니다. sendQuerytrue일 때 사용됩니다.
redirect { redirect: { followRedirects, maxRedirects } } 아니요 { redirect: {} } HTTP 리디렉션을 따릅니다. followRedirects의 기본값은 false이며, maxRedirects의 기본값은 21입니다.
proxy { proxy: { protocol, host, port } } 아니요 { proxy: {} } HTTP/HTTPS 프록시입니다. protocol"https" 또는 "http"이며, host의 기본값은 "127.0.0.1", port의 기본값은 9000입니다.
timeout integer ≥ 1 (ms) 아니요 5000 중단하기 전에 서버가 응답을 시작할 때까지 대기하는 시간입니다.
socket { keepAlive, maxSockets, maxFreeSockets } 아니요 { keepAlive: true, maxSockets: 50, maxFreeSockets: 5 } 소켓 풀 구성입니다. maxSocketsmaxFreeSockets는 1 이상의 정수입니다.
[
  {
    "type": "webhook",
    "label": "Audit",
    "subscribedEvents": ["n8n.audit", "n8n.workflow"],
    "anonymizeAuditMessages": true,
    "url": "https://hooks.example.com/n8n",
    "method": "POST",
    "sendHeaders": true,
    "specifyHeaders": "keypair",
    "headerParameters": {
      "parameters": [
        { "name": "Authorization", "value": "Bearer s3cret" }
      ]
    },
    "options": {
      "timeout": 5000,
      "redirect": { "redirect": { "followRedirects": true, "maxRedirects": 5 } }
    }
  }
]

Syslog#

필드 유형 필수 여부 기본값 설명
host string - Syslog 서버 호스트 이름 또는 IP입니다.
port number 아니요 514 Syslog 서버 포트입니다.
protocol "udp" | "tcp" | "tls" 아니요 "udp" 전송 프로토콜입니다.
tlsCa string protocol"tls"일 때 "" TLS 연결에 사용되는 PEM 형식의 CA 인증서입니다.
facility number 아니요 16 Syslog 퍼실리티 코드입니다. 허용되는 값: 0(Kernel), 1(User), 3(System), 13(Audit), 14(Alert), 1623(Local0Local7).
app_name string 아니요 "n8n" syslog APP-NAME으로 사용되는 값입니다.
[
  {
    "type": "syslog",
    "label": "SIEM",
    "subscribedEvents": ["n8n.audit", "n8n.workflow"],
    "host": "syslog.example.com",
    "port": 514,
    "protocol": "tls",
    "tlsCa": "-----BEGIN CERTIFICATE-----\n…\n-----END CERTIFICATE-----",
    "facility": 16,
    "app_name": "n8n"
  }
]

Sentry#

필드 유형 필수 여부 기본값 설명
dsn string (URL) - Sentry DSN 클라이언트 키입니다.
[
  {
    "type": "sentry",
    "label": "Sentry prod",
    "subscribedEvents": ["n8n.workflow"],
    "dsn": "https://public@sentry.example.com/1"
  }
]

서킷 브레이커#

서킷 브레이커는 반복적인 실패 이후 대상으로의 전달을 일시적으로 중지하여, 문제가 있는 다운스트림 서비스에 부하가 걸리지 않도록 합니다. 모든 대상 유형에서 사용할 수 있습니다.

필드 유형 필수 여부 기본값 설명
maxFailures integer ≥ 1 아니요 5 failureWindow 내 실패 횟수가 이 값에 도달하면 n8n이 해당 대상으로의 요청 전송을 중지합니다.
failureWindow integer ≥ 100 (ms) 아니요 60000 실패 횟수를 계산하는 슬라이딩 윈도우입니다. 오래된 실패는 만료됩니다.
{ "circuitBreaker": { "maxFailures": 3, "failureWindow": 30000 } }

전체 예제#

N8N_LOG_STREAMING_MANAGED_BY_ENV=true
N8N_LOG_STREAMING_DESTINATIONS='[
  {
    "type": "webhook",
    "label": "Ops webhook",
    "enabled": true,
    "subscribedEvents": ["n8n.workflow", "n8n.audit"],
    "anonymizeAuditMessages": true,
    "url": "https://hooks.example.com/n8n",
    "method": "POST",
    "sendHeaders": true,
    "specifyHeaders": "keypair",
    "headerParameters": {
      "parameters": [
        { "name": "Authorization", "value": "Bearer s3cret" }
      ]
    },
    "circuitBreaker": { "maxFailures": 5, "failureWindow": 60000 }
  },
  {
    "type": "sentry",
    "label": "Sentry prod",
    "subscribedEvents": ["n8n.workflow"],
    "dsn": "https://public@sentry.example.com/1"
  }
]'

로그 스트리밍

n8n v2.29
원문 보기
요약

로그 스트리밍은 모든 Enterprise 플랜에서 사용할 수 있습니다. 로그 스트리밍을 사용하면 n8n에서 발생하는 이벤트를 자체 로깅 도구로 전송할 수 있습니다. 로그 스트리밍을 사용하려면 스트리밍 대상을 추가해야 합니다.

Note

기능 제공 범위

로그 스트리밍은 모든 Enterprise 플랜에서 사용할 수 있습니다.

로그 스트리밍을 사용하면 n8n에서 발생하는 이벤트를 자체 로깅 도구로 전송할 수 있습니다. 이를 통해 자체 알림 및 로깅 프로세스에서 n8n 모니터링을 관리할 수 있습니다.

로그 스트리밍 설정하기#

로그 스트리밍을 사용하려면 스트리밍 대상을 추가해야 합니다.

  1. Settings > Log Streaming으로 이동합니다.
  2. Add new destination을 선택합니다.
  3. 대상 유형을 선택합니다. n8n이 New Event Destination 모달을 엽니다.
  4. New Event Destination 모달에서 이벤트 대상에 대한 구성 정보를 입력합니다. 이 정보는 사용 중인 대상 유형에 따라 달라집니다.
  5. 스트리밍할 이벤트를 선택하려면 Events를 선택합니다.
  6. Save를 선택합니다.
Note

셀프 호스팅 사용자

n8n을 셀프 호스팅하는 경우 환경 변수를 사용하여 추가적인 로그 스트리밍 동작을 구성할 수 있습니다. 또한 환경 변수로 대상을 관리할 수도 있습니다. 자세한 내용은 환경 변수를 사용하여 로그 스트리밍 대상 구성하기를 참고하세요.

프로세스별 이벤트 로그 파일#

n8n은 각 이벤트를 스트리밍 대상으로 전달하기 전에 로컬 로그 파일에 저장합니다. 이 파일은 재시작 후에도 유지되며, 아직 전달되지 않은 이벤트를 n8n이 다시 전송할 수 있게 해줍니다.

기본적으로 n8n은 이벤트 로그를 <n8n-user-folder>/n8nEventLog.log에 기록하며, 해당 프로세스에는 -worker 또는 -webhook-processor 접미사가 붙습니다. 단일 n8n 프로세스가 파일을 소유하는 경우, 이 기본값은 예상대로 작동합니다.

Warning

공유 쓰기 가능 파일 시스템

여러 n8n 프로세스가 하나의 쓰기 가능한 볼륨을 공유하는 경우(예: NFS 또는 EFS의 공유 영구 볼륨을 사용하는 큐 모드 워커), 동일한 이벤트 로그 파일에 기록해서는 안 됩니다. 여러 프로세스에서 동시에 추가 기록(append)하면 파일이 뒤섞이거나 손상되어 복구 실패 및 이벤트 손실로 이어질 수 있습니다.

이를 방지하려면 각 프로세스에서 N8N_EVENTBUS_LOGWRITER_LOGFULLPATH.log로 끝나는 고유한 절대 경로로 설정하세요. n8n은 구성된 경로를 그대로 사용하며 프로세스 유형 접미사를 추가하지 않으므로, 프로세스 간 고유성을 보장하는 것은 오케스트레이터의 책임입니다.

함께 사용되는 변수인 N8N_EVENTBUS_LOGWRITER_MAXTOTALMESSAGESPERFILE은 복구 과정에서 n8n이 단일 이벤트 로그 파일에서 파싱하는 줄 수를 제한하여, 손상된 파일이 프로세스 메모리를 고갈시키지 않도록 합니다.

참고 사항:

  • N8N_EVENTBUS_LOGWRITER_LOGFULLPATH가 설정되지 않은 경우 기본 동작은 변경되지 않습니다.
  • 이 변수가 설정되면 n8n은 경로에 자동으로 접미사를 붙이지 않습니다. 각 프로세스는 고유한 값을 받아야 합니다.
  • 이전 배포에서 생성된 공유 n8nEventLog-worker.log 파일이 이미 존재하는 경우, 이 기능을 적용하기 전에 수동으로 격리하세요. n8n은 기존 파일을 자동으로 삭제하지 않습니다.

이벤트#

다음 이벤트를 사용할 수 있습니다. 스트리밍할 이벤트는 Settings > Log Streaming > Events에서 선택할 수 있습니다.

  • 워크플로
    • 시작됨
    • 성공
    • 실패
    • 취소됨
  • 노드 실행
    • 시작됨
    • 완료됨
  • 감사
    • 사용자 로그인 성공
    • 사용자 로그인 실패
    • 사용자 가입
    • 사용자 업데이트됨
    • 사용자 삭제됨
    • 사용자 초대됨
    • 사용자 초대 수락됨
    • 사용자 재초대됨
    • 사용자 이메일 실패
    • 사용자 재설정 요청됨
    • 사용자 재설정됨
    • 사용자 자격 증명 생성됨
    • 사용자 자격 증명 공유됨
    • 사용자 자격 증명 업데이트됨
    • 사용자 자격 증명 삭제됨
    • 사용자 API 생성됨
    • 사용자 API 삭제됨
    • 사용자 MFA 활성화됨
    • 사용자 MFA 비활성화됨
    • 사용자 실행 삭제됨
    • 실행 데이터 공개됨
    • 실행 데이터 공개 실패
    • 패키지 설치됨
    • 패키지 업데이트됨
    • 패키지 삭제됨
    • 워크플로 생성됨
    • 워크플로 삭제됨
    • 워크플로 업데이트됨
    • 워크플로 보관됨
    • 워크플로 보관 해제됨
    • 워크플로 활성화됨
    • 워크플로 비활성화됨
    • 워크플로 버전 업데이트됨
    • 워크플로 실행됨
    • 워크플로 대기 중
    • 워크플로 재개됨
    • 변수 생성됨
    • 변수 업데이트됨
    • 변수 삭제됨
    • 외부 시크릿 제공업체 설정 저장됨
    • 외부 시크릿 제공업체 다시 로드됨
    • 외부 시크릿 연결 생성됨
    • 외부 시크릿 연결 업데이트됨
    • 외부 시크릿 연결 삭제됨
    • 외부 시크릿 연결 테스트됨
    • 외부 시크릿 연결 다시 로드됨
    • 개인 게시 제한 활성화됨
    • 개인 게시 제한 비활성화됨
    • 개인 공유 제한 활성화됨
    • 개인 공유 제한 비활성화됨
    • 2FA 강제 적용 활성화됨
    • 2FA 강제 적용 비활성화됨
    • 토큰 교환 성공
    • 토큰 교환 실패
    • 토큰 교환 임베드 로그인
    • 토큰 교환 임베드 로그인 실패
    • 토큰 교환 아이덴티티 연결됨
    • 토큰 교환 사용자 프로비저닝됨
    • 토큰 교환 역할 업데이트됨
    • 역할 매핑 역할 확인됨
    • 역할 매핑 규칙 생성됨
    • 역할 매핑 규칙 업데이트됨
    • 역할 매핑 규칙 삭제됨
    • 역할 매핑 규칙 일괄 삭제됨
  • 워커
    • 시작됨
    • 중지됨
  • AI 노드 로그
    • 메모리 메시지 가져오기
    • 메모리 메시지 추가됨
    • 출력 파서 파싱됨
    • 리트리버 관련 문서 가져오기
    • 임베딩 문서 임베딩됨
    • 임베딩 쿼리 임베딩됨
    • 문서 처리됨
    • 텍스트 분할기 분할됨
    • 도구 호출됨
    • 벡터 스토어 검색됨
    • LLM 생성됨
    • LLM 오류
    • 벡터 스토어 채워짐
    • 벡터 스토어 업데이트됨
  • 러너
    • 태스크 요청됨
    • 응답 수신됨
    • 작업 큐에 추가됨
    • 작업 큐에서 제거됨
    • 작업 완료됨
    • 작업 실패
    • 작업 지연됨

대상#

n8n은 세 가지 대상 유형을 지원합니다:

  • Syslog 서버
  • 범용 웹훅
  • Sentry 클라이언트

환경 변수를 사용하여 구성하기#

n8n을 셀프 호스팅하는 경우 UI 대신 환경 변수로 로그 스트리밍 대상을 관리할 수 있습니다. n8n v2.19.0부터 사용할 수 있습니다. N8N_LOG_STREAMING_MANAGED_BY_ENVtrue로 설정하고, 대상을 N8N_LOG_STREAMING_DESTINATIONS에 JSON 배열 형태로 제공하세요. n8n은 시작할 때마다 이를 다시 적용하며, Log Streaming UI를 읽기 전용으로 잠급니다. 전체 패턴은 환경 변수를 사용하여 인스턴스 설정 관리하기를 참고하세요.

참고

이 섹션의 상세 내용은 n8n 공식 문서를 참조하세요.

공통 필드#

모든 대상은 type과 관계없이 다음 필드를 허용합니다.

필드 유형 필수 여부 설명
type "webhook" | "syslog" | "sentry" 대상 유형입니다. 어떤 유형별 필드가 적용되는지를 결정합니다.
label string 아니요 UI에 표시되는 이름입니다.
enabled boolean 아니요 대상이 이벤트를 전달할지 여부입니다.
subscribedEvents string[] 아니요 전달할 이벤트 이름 또는 그룹 접두사입니다(예: n8n.audit, n8n.workflow).
anonymizeAuditMessages boolean 아니요 n8n.audit.* 이벤트에서 민감한 페이로드 데이터를 제거합니다.
circuitBreaker object 아니요 장애 방지 설정입니다. 서킷 브레이커를 참고하세요.

웹훅#

필드 유형 필수 여부 기본값 설명
url string (URL) - 이벤트 페이로드를 수신하는 엔드포인트입니다.
method "GET" | "POST" | "PUT" 아니요 "POST" 전달에 사용되는 HTTP 메서드입니다.
sendQuery boolean 아니요 false 쿼리 파라미터를 전송할지 여부입니다.
specifyQuery "keypair" | "json" 아니요 "keypair" sendQuerytrue일 때 쿼리 파라미터의 형식입니다.
queryParameters { parameters: [{ name, value }] } 아니요 - 키/값 쌍 형태의 쿼리 파라미터입니다. specifyQuery"keypair"일 때 사용됩니다.
jsonQuery string 아니요 "" JSON 문자열 형태의 쿼리 파라미터입니다. specifyQuery"json"일 때 사용됩니다.
sendHeaders boolean 아니요 false 헤더를 전송할지 여부입니다.
specifyHeaders "keypair" | "json" 아니요 "keypair" sendHeaderstrue일 때 헤더의 형식입니다.
headerParameters { parameters: [{ name, value }] } 아니요 - 키/값 쌍 형태의 헤더입니다. specifyHeaders"keypair"일 때 사용됩니다.
jsonHeaders string 아니요 "" JSON 문자열 형태의 헤더입니다. specifyHeaders"json"일 때 사용됩니다.
options object 아니요 {} 연결 수준 옵션입니다. 웹훅 옵션을 참고하세요.

웹훅 옵션#

필드 유형 필수 여부 기본값 설명
allowUnauthorizedCerts boolean 아니요 false SSL 인증서 검증을 무시합니다.
queryParameterArrays "repeat" | "brackets" | "indices" 아니요 "brackets" 쿼리 파라미터에 사용되는 배열 형식입니다. sendQuerytrue일 때 사용됩니다.
redirect { redirect: { followRedirects, maxRedirects } } 아니요 { redirect: {} } HTTP 리디렉션을 따릅니다. followRedirects의 기본값은 false이며, maxRedirects의 기본값은 21입니다.
proxy { proxy: { protocol, host, port } } 아니요 { proxy: {} } HTTP/HTTPS 프록시입니다. protocol"https" 또는 "http"이며, host의 기본값은 "127.0.0.1", port의 기본값은 9000입니다.
timeout integer ≥ 1 (ms) 아니요 5000 중단하기 전에 서버가 응답을 시작할 때까지 대기하는 시간입니다.
socket { keepAlive, maxSockets, maxFreeSockets } 아니요 { keepAlive: true, maxSockets: 50, maxFreeSockets: 5 } 소켓 풀 구성입니다. maxSocketsmaxFreeSockets는 1 이상의 정수입니다.
[
  {
    "type": "webhook",
    "label": "Audit",
    "subscribedEvents": ["n8n.audit", "n8n.workflow"],
    "anonymizeAuditMessages": true,
    "url": "https://hooks.example.com/n8n",
    "method": "POST",
    "sendHeaders": true,
    "specifyHeaders": "keypair",
    "headerParameters": {
      "parameters": [
        { "name": "Authorization", "value": "Bearer s3cret" }
      ]
    },
    "options": {
      "timeout": 5000,
      "redirect": { "redirect": { "followRedirects": true, "maxRedirects": 5 } }
    }
  }
]

Syslog#

필드 유형 필수 여부 기본값 설명
host string - Syslog 서버 호스트 이름 또는 IP입니다.
port number 아니요 514 Syslog 서버 포트입니다.
protocol "udp" | "tcp" | "tls" 아니요 "udp" 전송 프로토콜입니다.
tlsCa string protocol"tls"일 때 "" TLS 연결에 사용되는 PEM 형식의 CA 인증서입니다.
facility number 아니요 16 Syslog 퍼실리티 코드입니다. 허용되는 값: 0(Kernel), 1(User), 3(System), 13(Audit), 14(Alert), 1623(Local0Local7).
app_name string 아니요 "n8n" syslog APP-NAME으로 사용되는 값입니다.
[
  {
    "type": "syslog",
    "label": "SIEM",
    "subscribedEvents": ["n8n.audit", "n8n.workflow"],
    "host": "syslog.example.com",
    "port": 514,
    "protocol": "tls",
    "tlsCa": "-----BEGIN CERTIFICATE-----\n…\n-----END CERTIFICATE-----",
    "facility": 16,
    "app_name": "n8n"
  }
]

Sentry#

필드 유형 필수 여부 기본값 설명
dsn string (URL) - Sentry DSN 클라이언트 키입니다.
[
  {
    "type": "sentry",
    "label": "Sentry prod",
    "subscribedEvents": ["n8n.workflow"],
    "dsn": "https://public@sentry.example.com/1"
  }
]

서킷 브레이커#

서킷 브레이커는 반복적인 실패 이후 대상으로의 전달을 일시적으로 중지하여, 문제가 있는 다운스트림 서비스에 부하가 걸리지 않도록 합니다. 모든 대상 유형에서 사용할 수 있습니다.

필드 유형 필수 여부 기본값 설명
maxFailures integer ≥ 1 아니요 5 failureWindow 내 실패 횟수가 이 값에 도달하면 n8n이 해당 대상으로의 요청 전송을 중지합니다.
failureWindow integer ≥ 100 (ms) 아니요 60000 실패 횟수를 계산하는 슬라이딩 윈도우입니다. 오래된 실패는 만료됩니다.
{ "circuitBreaker": { "maxFailures": 3, "failureWindow": 30000 } }

전체 예제#

N8N_LOG_STREAMING_MANAGED_BY_ENV=true
N8N_LOG_STREAMING_DESTINATIONS='[
  {
    "type": "webhook",
    "label": "Ops webhook",
    "enabled": true,
    "subscribedEvents": ["n8n.workflow", "n8n.audit"],
    "anonymizeAuditMessages": true,
    "url": "https://hooks.example.com/n8n",
    "method": "POST",
    "sendHeaders": true,
    "specifyHeaders": "keypair",
    "headerParameters": {
      "parameters": [
        { "name": "Authorization", "value": "Bearer s3cret" }
      ]
    },
    "circuitBreaker": { "maxFailures": 5, "failureWindow": 60000 }
  },
  {
    "type": "sentry",
    "label": "Sentry prod",
    "subscribedEvents": ["n8n.workflow"],
    "dsn": "https://public@sentry.example.com/1"
  }
]'