업데이트로 돌아가기
New releaseAug 6, 2026

nightingale v9.1.0

시계열 모니터링 데이터를 위한 오픈소스 알림 엔진입니다. Prometheus, VictoriaMetrics, ElasticSearch 및 기타 데이터 소스에 연결됩니다. 20개 이상의 알림 채널, 알림 노이즈 감소, 에스컬레이션 및 자가 치유 자동화를 지원합니다.

공유

nightingale - 클라우드 네이티브 모니터링

오픈소스 알림 전문가

Docs Docker pulls GitHub contributors GitHub Repo stars GitHub forks
GitHub Repo issues GitHub Repo issues closed GitHub latest release License GitHub contributors

English | 中文

🎯 Nightingale이란 무엇인가

Nightingale은 알림(alerting)에 초점을 맞춘 오픈소스 모니터링 프로젝트입니다. Grafana와 유사하게 Nightingale도 다양한 기존 데이터 소스를 연결할 수 있습니다. 다만 Grafana가 시각화에 중점을 두는 반면, Nightingale은 알림 엔진과 알람의 처리 및 배포에 더 중점을 둡니다.

💡 Nightingale은 이제 기본적으로 MCP를 지원합니다. 서버 자체가 /mcp에 내장 MCP 엔드포인트를 노출하므로, AI 어시스턴트는 별도의 프로세스를 배포할 필요 없이 자연어로 알림을 관리하고 관측 가능성(observability) 데이터를 탐색할 수 있습니다. 자세한 내용은 아래 MCP Server를 참조하세요.

Nightingale 프로젝트는 처음에 DiDi.inc가 개발하여 오픈소스로 공개했습니다. 2022년 5월 11일, 중국컴퓨터학회(China Computer Federation) 오픈소스 개발 위원회(CCF ODTC)에 기증되었습니다.

💡 Nightingale의 작동 방식

많은 사용자가 이미 메트릭과 로그 데이터를 수집하고 있습니다. 이 경우 스토리지 저장소(예: VictoriaMetrics, ElasticSearch 등)를 Nightingale의 데이터 소스로 연결할 수 있습니다. 그러면 Nightingale 내에서 알림 규칙과 통지 규칙을 구성하여 알람을 생성하고 배포할 수 있습니다.

Nightingale 제품 아키텍처

Nightingale 자체는 모니터링 데이터 수집 기능을 제공하지 않습니다. Nightingale과 원활하게 연동되는 Categraf를 수집기로 사용할 것을 권장합니다.

Categraf는 운영체제, 네트워크 장비, 다양한 미들웨어, 데이터베이스에서 모니터링 데이터를 수집할 수 있습니다. 수집한 데이터는 Prometheus Remote Write 프로토콜을 통해 Nightingale로 전송됩니다. Nightingale은 모니터링 데이터를 시계열 데이터베이스(예: Prometheus, VictoriaMetrics 등)에 저장하고 알림 및 시각화 기능을 제공합니다.

중앙 Nightingale 서버와의 네트워크 연결 상태가 좋지 않은 일부 엣지 데이터 센터를 위해 알림 엔진의 분산 배포 모드를 제공합니다. 이 모드에서는 네트워크가 끊겨도 알림 기능은 영향을 받지 않습니다.

엣지 배포 모드

위 다이어그램에서 데이터 센터 A는 중앙 데이터 센터와 네트워크 상태가 좋으므로 중앙 데이터 센터의 Nightingale 프로세스를 알림 엔진으로 사용합니다. 데이터 센터 B는 중앙 데이터 센터와 네트워크 상태가 좋지 않으므로 n9e-edge를 알림 엔진으로 배포하여 자체 데이터 소스에 대한 알림을 처리합니다.

🤖 MCP Server

Nightingale에는 내장 MCP 서버가 있습니다. n9e 프로세스 자체가 Streamable HTTP 전송 방식으로 /mcp에서 Model Context Protocol을 제공합니다. Claude Code / Claude Desktop, Cursor, ChatGPT 커넥터 또는 자체 에이전트 등 모든 MCP 클라이언트는 별도의 프로세스를 배포할 필요 없이 자연어로 Nightingale을 조회하고 관리할 수 있습니다.

클라이언트 연결하기

엔드포인트는 http(s)://<nightingale>:17000/mcp이며, /api/n9e 아래가 아닌 루트 경로입니다. 웹 UI의 Profile → Token Management에서 생성한 개인 액세스 토큰을 X-User-Token 헤더에 담아 보내 인증합니다:

{
  "mcpServers": {
    "nightingale": {
      "type": "http",
      "url": "http://127.0.0.1:17000/mcp",
      "headers": { "X-User-Token": "<your-token>" }
    }
  }
}

모든 도구 호출은 프로세스 내부에서 사용자의 토큰을 포함하여 Nightingale 자체 HTTP API로 전달되므로, RBAC 및 비즈니스 그룹 권한이 UI에서 해당 사용자에게 적용되는 것과 정확히 동일하게 적용됩니다. 즉, 클라이언트는 토큰 소유자가 접근할 수 없는 대상에는 절대 도달할 수 없습니다.

도구

13개 툴셋에 걸쳐 세분화된 74개 도구(읽기 42개, 쓰기 32개)를 제공합니다: alerts, targets, datasource, mutes, busi_groups, notify_rules, alert_subscribes, event_pipelines, users, metrics, logs, dashboards, roles.

엔드포인트는 기본적으로 읽기 전용입니다 — 쓰기 도구(생성/수정/삭제)는 설정에서 명시적으로 선택해야 활성화됩니다.

설정

아래 항목은 모두 선택 사항입니다. /mcp는 기본적으로 활성화되어 있습니다(etc/config.toml):

[HTTP.A2A]
# DisableMCP = true                        # turn off /mcp (Disable = true turns off /a2a as well)
# MCPToolsets = ["alerts", "dashboards"]   # restrict the exposed toolsets; empty = all of them
# MCPEnableWriteTools = true               # also register the write tools; read-only by default

/mcp는 인증에 [HTTP.TokenAuth]를 재사용하므로 해당 기능을 활성화된 상태로 유지하세요.

토큰 대신 OAuth 2.1

/mcpAuthorization: Bearer를 통한 OAuth 액세스 토큰도 두 가지 방식으로 허용합니다:

  • Nightingale 자체가 인가 서버(authorization server) 역할을 하며, RFC 7591 동적 클라이언트 등록과 PKCE를 지원하므로 Claude 또는 ChatGPT 같은 호스팅 클라이언트가 사전 등록 없이 연결할 수 있습니다 — doc/api/mcp-oauth-as.md 참조.
  • Nightingale은 기존 엔터프라이즈 IdP(Keycloak, Entra ID, Okta, Auth0)에 대한 리소스 서버(resource server) 역할을 하며, 각 토큰을 로컬 사용자에게 매핑하여 권한과 감사(audit)가 사용자별로 유지되도록 합니다 — doc/api/a2a-oauth-rs.md 참조.

MCP와 함께, 동일한 프로세스는 에이전트 간 통합을 위해 Nightingale의 내장 AI 어시스턴트를 래핑하는 A2A 엔드포인트를 /a2a에 노출합니다 (doc/api/a2a.md 참조). 원격 Nightingale에 대해 MCP를 별도 프로세스로 실행하려면 독립형 n9e-mcp-server가 동일한 도구를 제공합니다.

🔕 알림 노이즈 감소, 에스컬레이션 및 협업

Nightingale은 알람 생성과 규칙에 따른 유연한 알람 배포를 담당하는 알림 엔진에 초점을 맞춥니다. 전화, SMS, 이메일, DingTalk, Slack 등 20가지 내장 통지 미디어를 지원합니다.

더 고급 요구 사항이 있다면, 예를 들어:

  • 여러 모니터링 시스템의 이벤트를 하나의 플랫폼으로 통합하여 통합된 노이즈 감소, 대응 처리, 데이터 분석을 수행하려는 경우.
  • 인력 일정(scheduling)을 지원하고 온콜(on-call) 문화를 실천하며, 알림 에스컬레이션(알림 누락 방지)과 협업 처리를 지원하려는 경우.

이런 경우 Nightingale은 적합하지 않습니다. PagerDuty와 FlashDuty 같은 온콜(on-call) 제품을 선택하는 것이 좋습니다. 이러한 제품은 간단하고 사용하기 쉽습니다.

🗨️ 커뮤니케이션 채널

🔑 주요 기능

Nightingale 알림 규칙

  • Nightingale은 알림 규칙, 음소거 규칙, 구독 규칙, 통지 규칙을 지원합니다. 20가지 유형의 통지 미디어를 기본 지원하며 메시지 템플릿도 사용자 정의할 수 있습니다.
  • 알람을 Pipeline 처리하기 위한 이벤트 파이프라인을 지원하여 사내 시스템과의 자동화된 연동을 용이하게 합니다. 예를 들어 알람에 메타데이터를 추가하거나 이벤트에 relabeling을 수행할 수 있습니다.
  • 비즈니스 그룹(business group) 개념과 권한 시스템을 도입하여 다양한 규칙을 범주별로 관리할 수 있습니다.
  • 많은 데이터베이스와 미들웨어에는 바로 가져와서 사용할 수 있는 내장 알림 규칙이 함께 제공됩니다. Prometheus 알림 규칙의 직접 가져오기도 지원합니다.
  • 알림 자가 치유(self-healing)를 지원하여 알람이 생성된 후 디스크 공간 정리 또는 현재 시스템 상태 캡처 같은 사전 정의된 로직을 실행하는 스크립트를 자동으로 트리거합니다.

Nightingale 알람 대시보드

  • Nightingale은 과거 알람을 아카이브하고 다차원 조회와 통계를 지원합니다.
  • 유연한 집계 그룹화를 지원하여 회사 전체의 알람 분포를 한눈에 파악할 수 있습니다.

Nightingale 통합 센터

  • Nightingale에는 일반적인 운영체제, 미들웨어, 데이터베이스를 위한 메트릭 설명, 대시보드, 알림 규칙이 내장되어 있으며, 이는 커뮤니티의 기여로 품질 수준이 다양합니다.
  • Remote Write, OpenTSDB, Datadog, Falcon 등 여러 프로토콜을 통해 데이터를 직접 수신하며 다양한 에이전트와 연동됩니다.
  • Prometheus, ElasticSearch, Loki, ClickHouse, MySQL, Postgres 같은 데이터 소스를 지원하여 이러한 소스의 데이터를 기반으로 알림을 구성할 수 있습니다.
  • Nightingale은 기업 내부 시스템(예: Grafana, CMDB)에 쉽게 임베드할 수 있으며, 임베드된 시스템의 메뉴 표시 여부 구성까지 지원합니다.

Nightingale 대시보드

  • Nightingale은 일반적인 차트 유형을 포함한 대시보드 기능을 지원하며 사전 구축된 대시보드를 제공합니다. 위 이미지는 이러한 대시보드 중 하나의 스크린샷입니다.
  • 이미 Grafana에 익숙하다면 시각화에는 계속 Grafana를 사용하는 것이 좋습니다. Grafana가 이 분야에서 더 깊은 전문성을 갖추고 있기 때문입니다.
  • Categraf가 수집한 머신 관련 모니터링 데이터는 Nightingale의 내장 대시보드로 보는 것이 좋습니다. Categraf의 메트릭 명명 규칙은 Telegraf의 관례를 따르며, 이는 Node Exporter의 관례와 다르기 때문입니다.
  • Nightingale의 비즈니스 그룹 개념(머신이 서로 다른 그룹에 속할 수 있음) 때문에 대시보드에서 현재 비즈니스 그룹 내의 머신만 보고 싶은 시나리오가 있을 수 있습니다. 따라서 Nightingale의 대시보드는 비즈니스 그룹과 연동하여 대화형 필터링을 제공할 수 있습니다.

🌟 시간에 따른 Stargazers

Stargazers over time

🔥 사용자

사용자 로고

🤝 커뮤니티 공동 구축

  • ❇️ Nightingale 오픈소스 프로젝트 및 커뮤니티 거버넌스 초안을 읽어주시기 바랍니다. 모든 사용자, 개발자, 기업, 조직이 Nightingale을 사용하고, 적극적으로 버그를 신고하고, 기능 요청을 제출하고, 모범 사례를 공유하여 전문적이고 활발한 오픈소스 커뮤니티를 구축하는 데 도움을 주시기를 진심으로 환영합니다.
  • ❤️ Nightingale 기여자

📜 라이선스

카테고리