콘텐츠로 이동

알림 채널

/admin/notifications admin

경보와 플랫폼 이벤트를 받을 채널을 등록합니다. 화면 설명 그대로 "백업 실패 같은 플랫폼 이벤트를 Telegram · 이메일 · Slack 으로 보냅니다".

알림 채널 목록 알림 채널 목록

쓸 수 있는 채널 세 가지

종류 비밀 항목 설정 항목
telegram 봇 토큰 chat_id (숫자/음수 또는 @채널명)
slack Incoming Webhook URL (https 만, loopback 만 http 허용) 없음
email SMTP 비밀번호 (계정을 쓸 때만) smtp_host · smtp_port · smtp_security(starttls·tls·none) · username · from · to(1~20개)

이메일 포트 기본값은 보안 방식에 따라 starttls 587 · tls 465 · none 25 입니다. 받는 주소는 형식을 검사하고 줄바꿈 문자가 들어가면 거부합니다.

범용 webhook 채널은 없습니다

위 세 종류뿐입니다.

채널 등록하기

창에서 채우는 것은 이름(100자 이내) · 종류 라디오(수정할 때는 잠김) · 종류별 항목 · 받을 이벤트 체크박스 · 켜기 입니다.

이벤트 목록은 서버가 주는 카탈로그를 그대로 그립니다.

종류는 나중에 바꿀 수 없습니다

수정 요청에 종류 항목이 없습니다. 바꾸려면 새로 만들어야 합니다.

이메일은 서버·포트·보안 방식·계정을 바꾸면 비밀번호를 다시 입력해야 합니다.

받을 수 있는 이벤트

이벤트 기본값 언제
backup_failed 켜짐 백업이 실패로 끝났을 때
backup_partial 켜짐 백업이 일부 항목을 빠뜨린 채 끝났을 때
backup_succeeded 꺼짐 백업이 성공했을 때
alert_fired 켜짐 스택에서 심각 경보가 발생했을 때
alert_resolved 켜짐 그 경보가 해제됐을 때
stack_cve_found 켜짐 스택이 설치한 OSS 이미지에서 수정판 있는 CRITICAL 취약점이 새로 발견됐을 때

이 여섯이 전부입니다. 경보가 어떻게 수집돼 전달되는지는 관측성을 보세요.

stack_cve_found 는 설치 이미지 재스캔(기본 24시간)이 아직 알리지 않은 "수정판 있는 CRITICAL" 을 찾았을 때 스택당 한 건으로 묶어 보냅니다. 클러스터 밖에 열린 이미지(게이트웨이 · LoadBalancer · NodePort)의 것이 있으면 심각도가 critical, 아니면 warning 입니다. 본문에는 CVE 다섯 개까지(패키지 설치→수정 버전 · 이미지 · 노출 호스트)가 실리고, 나머지는 스택 상세의 이미지 취약점 탭에 있습니다. 스택마다 처음 보내는 것은 "첫 고지" 로 지금 있는 것을 한 번에 알립니다 — 새 스택이면 설치 시점에 있던 것, 이 기능 전에 설치한 스택이면 지금의 현황입니다. 한 번 알린 CVE 는 그 스택에서 다시 알리지 않습니다 — 이미지 하나의 스캔이 실패했다가 돌아와도, 어느 채널에서 발송이 실패해도(실패는 발송 이력에 남습니다) 그렇습니다. 이 이벤트가 생기기 전에 만든 채널은 저절로 받지 않으니, 받으려면 채널을 편집해 체크합니다.

표 두 개

채널 표 — 이름 · 종류 · 보내는 곳 · 받는 이벤트 · 상태 · 작업 (행 동작: 테스트 전송 · 편집 · 삭제). 저장된 비밀을 복호화하지 못하면 경고가 표시됩니다.

최근 발송 표 — 시각 · 채널 · 이벤트 · 내용 · 결과 · 시도. 결과는 전송됨 또는 실패 이고 실패 사유가 함께 나옵니다.

비밀 원문은 응답에 담기지 않습니다

채널 조회 응답에는 "비밀이 설정됐는지", "힌트", "읽을 수 없음" 표시만 들어갑니다.

테스트 전송

그 채널의 정식 발송 경로를 그대로 타서 실제로 메시지를 보냅니다 — 재시도 3회까지 포함입니다. 결과는 응답으로 돌아오면서 발송 이력에도 한 줄 남습니다.

꺼진 채널에도 보냅니다

active 가 아니어도 테스트 전송은 나갑니다.

실패해도 200 입니다

HTTP 상태는 성공이고, 본문의 status · error · attempts 를 봐야 결과를 알 수 있습니다.

보내는 내용은 제목 "Nullus 알림 테스트", 요약 "'<이름>' 채널 설정이 맞습니다…", 필드 채널=<종류> 입니다. 이벤트 종류는 test 로 기록되며 구독 대상이 아닙니다.

발송은 어떻게 되나

이벤트가 생기면 조직의 켜져 있고 그 이벤트를 구독한 채널마다 동시에 보냅니다. 한 번 보낼 때 최대 3회 시도하고, 1초 → 2초로 기다리며(상한 10초) 한 번 시도의 제한 시간은 20초입니다. 각 결과가 발송 이력에 남습니다.

호출하는 API

동작 엔드포인트
이벤트 카탈로그 GET /api/v1/admin/notifications/events
목록 GET /api/v1/admin/notifications/channels
생성 POST …/channels
조회 GET …/channels/{id}
수정 PATCH …/channels/{id}
삭제 DELETE …/channels/{id}
테스트 전송 POST …/channels/{id}/test
발송 이력 GET …/notifications/history?limit= (기본 50, 최대 200)