Nightwatch: 오픈소스, 읽기 전용 AI SRE

Nightwatch는 알람 피로도를 줄이고 근본 원인 분석을 자동화하도록 설계된 오픈소스, 로컬 우선(local-first) AI SRE 레이어입니다. 단일 장애로 인해 수십 개의 서로 다른 알람이 발생하는 "알람 폭풍(alert storms)"을 단일화된 통합 인시던트로 변환하며, 툴 콜링(tool-calling) AI 에이전트를 활용하여 라이브 시스템을 조사하고 인간 운영자가 승인해야 하는 수정 사항을 제안합니다.

설계에 의한 읽기 전용 아키텍처

Nightwatch는 엄격하게 읽기 전용입니다. 관찰하고, 추론하며, 권장하지만, 명령을 실행하거나 알람을 승인하거나 운영 환경을 수정하지 않습니다. 모든 제안된 수정 사항은 인간이 검토하고 실행할 수 있도록 복사하여 붙여넣을 수 있는 아티팩트로 제공됩니다. 이러한 설계는 AI가 조사 과정에서 라이브 시스템에 새로운 장애를 유발하지 않도록 보장합니다.

AI SRE 조사관

Nightwatch의 핵심은 ReAct 루프(reason $\rightarrow$ act $\rightarrow$ observe)를 사용하여 라이브 시스템에서 증거를 수집하는 AI SRE 조사관입니다. 이 에이전트는 읽기 전용 기능에 대한 타입 지정된 허용 목록(allowlist)에 의해 구동되며, 읽기 작업만 수행할 수 있음을 보장합니다.

조사 기능

기능 읽기 전용 액세스
Docker 컨테이너, 로그, 통계 및 검사
Kubernetes 클러스터 내 RBAC를 통한 Pods, 로그, 이벤트 및 배포
AWS IAM read-role을 통한 CloudTrail 변경 이벤트, EC2, 보안 그룹 및 할당량
Grafana 데이터 소스 프록시를 통한 PromQL 및 LogQL
GitHub 변경 이벤트 RCA를 위한 CI runs, 릴리스 및 PRs
Git 커밋, diffs 및 코드 검색을 위한 미러링된 저장소
Host 일반 VM을 위한 CPU, 메모리, 디스크, 프로세스 및 소켓 로그

안전 및 근거 설정(Grounding)

환각(hallucinations)과 보안 위험을 방지하기 위해 Nightwatch는 여러 강화 조치를 채택합니다:

  • Injection Shielding: 신뢰할 수 없는 로그와 diffs는 프롬프트 인젝션을 방지하기 위해 차단됩니다.
  • Secret Scrubbing: 자격 증명 및 민감한 데이터는 LLM 제공업체로 전송되기 전에 단방향으로 세정(scrubbed)됩니다.
  • Grounding Gate: 주장이 증거에 의해 뒷받침되지 않을 때 신뢰 수준을 제한하는 메커니즘입니다.
  • Action Classification: 모든 작업은 read_only, reversible, 또는 irreversible로 분류됩니다. 알 수 없는 작업은 기본적으로 irreversible로 강제됩니다.

Ninox Runners를 통한 분산 조사

Nightwatch는 제한된 환경의 시스템을 조사하기 위해 "두뇌(brain)"와 "러너(runner)" 아키텍처를 사용합니다. ninox runner는 VPC, 클러스터 또는 온프레미스 세그먼트 내부에 존재하는 가볍고 외부로만 연결되는(outbound-only) 에이전트입니다. 러너는 자격 증명을 로컬에 보유하며 두뇌로 전화를 걸듯 연결(dial home)하여, 인바운드 방화벽 구멍을 만들 필요가 없습니다.

알람 클러스터링 및 노이즈 감소

Nightwatch는 기존 모니터링 도구(Prometheus Alertmanager, Checkmk, Icinga2, Zabbix와 같은) 상위에 위치하며 알람을 단일 스키마로 정규화합니다. 그런 다음 호스트, 서비스, 심각도 및 시간 범위에 따라 알람을 클러스터링하여 단일 인시던트로 그룹화합니다.

시스템은 또한 "노이즈가 심한" 체크 항목(플래핑(flapping)하거나 과도하게 민감한 항목)을 식별하여, 인간 운영자에게 근거를 제공하기 위한 규칙 기반 튜닝 권장 사항을 제공합니다.

LLM 통합 및 개인정보 보호

Nightwatch는 Anthropic(조사관의 기본값), OpenAI, Mistral, 그리고 Ollama 또는 vLLM을 통한 로컬 LLM을 포함한 여러 LLM 제공업체를 지원합니다. 또한 LLM 없이도 기본적인 요약 및 권장 사항을을 위해 완전히 오프라인으로 작동하는 template 제공업체를 포함합니다.

개인정보 보호를를 위해, 모든 원격 호출 전에는 마스킹(redaction)과 비밀번호 세정(secret-scrubbing)이 실행되어 호스트 이름, IP, IP, UUIDs를 결정론적 플레이스홀더로 대체합니다.

커뮤니티 및 확장성

Nightwatch는 Apache License 2.0에 따라 라이선스됩니다. 사용자는 MCP 서버를 가리리키거나, Python 기능 플러그인을 작성하거나, runner 프로토콜을 사용하여 AI SRE의 기능을 확장할 수 있습니다. |' },

Sources