
nightingale v9.1.0
オープンソースのアラートエンジン。時系列モニタリングデータに対応し、Prometheus、VictoriaMetrics、ElasticSearchなどのデータソースに接続。20以上の通知チャネル、アラートノイズ低減、エスカレーション、自己修復自動化をサポート。
オープンソースのアラート専門家
🎯 Nightingale とは
Nightingale は、アラートに焦点を当てたオープンソースの監視プロジェクトです。Grafana と同様に、Nightingale も既存のさまざまなデータソースに接続できます。ただし、Grafana が可視化を重視するのに対し、Nightingale はアラートエンジンと、アラームの処理および配信をより重視しています。
💡 Nightingale は今、標準で MCP に対応しています。サーバー自体が組み込みの MCP エンドポイントを
/mcpに公開するため、AI アシスタントは追加プロセスをデプロイすることなく、自然言語でアラート管理や可観測性データの調査を行えます。詳細は以下の MCP Server を参照してください。Nightingale プロジェクトは当初 DiDi.inc によって開発・オープンソース化されました。2022年5月11日に、中国コンピュータ連合会オープンソース開発委員会(CCF ODTC)に寄贈されました。

💡 Nightingale の仕組み
多くのユーザーはすでにメトリクスとログデータを収集しています。この場合、Nightingale にデータソースとしてストレージリポジトリ(VictoriaMetrics、ElasticSearch など)を接続できます。これにより、Nightingale 内でアラートルールと通知ルールを設定し、アラームの生成と配信が可能になります。

Nightingale 自体は監視データの収集機能を提供しません。コレクタとして Categraf を使用することをお勧めします。Nightingale とシームレスに統合できます。
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 配下ではなくルートパスです。X-User-Token ヘッダーで送信される個人アクセストークン(Web UI の Profile → Token Management で作成)を使用して認証します。
{
"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
/mcp は Authorization: Bearer による OAuth アクセストークンも受け入れます。次の 2 種類があります:
- Nightingale 自体が認可サーバーとして機能し、RFC 7591 の動的クライアント登録と PKCE に対応しているため、Claude や ChatGPT などのホスト型クライアントは事前登録なしで接続できます。— doc/api/mcp-oauth-as.md を参照してください。
- Nightingale が既存のエンタープライズ IdP(Keycloak、Entra ID、Okta、Auth0)のリソースサーバーとして機能し、各トークンをローカルユーザーにマッピングするため、権限と監査は個人単位で維持されます。— doc/api/a2a-oauth-rs.md を参照してください。
MCP に加えて、同じプロセスは /a2a で A2A エンドポイントを公開し、Nightingale の組み込み AI アシスタントをエージェント間統合のためにラップします(doc/api/a2a.md)。リモートの Nightingale に対して別プロセスとして MCP を実行したい場合は、スタンドアロンの n9e-mcp-server が同じツールを提供します。
🔕 アラートのノイズ削減、エスカレーション、コラボレーション
Nightingale はアラートエンジンとして、アラームの生成と、ルールに基づく柔軟な配信を担当します。電話、SMS、メール、DingTalk、Slack など、20 種類の組み込み通知メディアをサポートしています。
さらに高度な要件がある場合は、たとえば次のような場合です:
- 複数の監視システムからのイベントを 1 つのプラットフォームに集約し、統一されたノイズ削減、対応処理、データ分析を行いたい。
- 当直スケジュールをサポートし、オンコール文化を実践し、アラートの見逃しを防ぐためのアラートエスカレーションと、協調的な対応処理をサポートしたい。
このような場合、Nightingale は適していません。PagerDuty や FlashDuty などのオンコール製品を選択することをお勧めします。これらの製品はシンプルで使いやすいです。
🗨️ コミュニケーションチャネル
- バグ報告: Nightingale GitHub Issue トラッカー から Issue を送信することを強くお勧めします。
- ドキュメント: 詳細については、Nightingale ドキュメントサイト を十分に閲覧することをお勧めします。
🔑 主な機能

- Nightingale はアラートルール、ミュートルール、サブスクリプションルール、通知ルールをサポートしています。20 種類の通知メディアをネイティブにサポートし、メッセージテンプレートのカスタマイズも可能です。
- アラームの Pipeline 処理を行うイベントパイプラインをサポートし、社内システムとの自動統合を容易にします。たとえば、アラームへのメタデータ追加や、イベントのリラベリングを実行できます。
- ビジネスグループと権限システムの概念を導入し、さまざまなルールをカテゴリ別に管理できます。
- 多くのデータベースとミドルウェアには、直接インポートして使用できる組み込みのアラートルールが用意されています。Prometheus のアラートルールの直接インポートにも対応しています。
- アラートの自己修復をサポートしています。アラーム発生後にスクリプトを自動的にトリガーし、ディスク容量のクリーンアップや現在のシステム状態の取得など、事前定義されたロジックを実行します。

- Nightingale は過去のアラームをアーカイブし、多次元のクエリと統計をサポートします。
- 柔軟な集約グループ化をサポートし、会社全体でのアラームの分布を明確に把握できます。

- Nightingale には、一般的なオペレーティングシステム、ミドルウェア、データベース向けのメトリクス説明、ダッシュボード、アラートルールが組み込まれています。これらはコミュニティによって提供されており、品質にはばらつきがあります。
- Remote Write、OpenTSDB、Datadog、Falcon などの複数のプロトコルを介してデータを直接受信し、さまざまなエージェントと統合できます。
- Prometheus、ElasticSearch、Loki、ClickHouse、MySQL、Postgres などのデータソースをサポートし、これらのデータに基づくアラートを可能にします。
- Nightingale は社内のエンタープライズシステム(例: Grafana、CMDB)に簡単に埋め込むことができ、埋め込み先システム向けのメニュー表示設定もサポートしています。

- Nightingale は、一般的なチャートタイプを含むダッシュボード機能をサポートし、事前構築されたダッシュボードが付属しています。上の画像は、そのダッシュボードの 1 つのスクリーンショットです。
- すでに Grafana に慣れている場合は、可視化には引き続き Grafana を使用することをお勧めします。Grafana はこの分野でより深い専門知識を持っています。
- Categraf が収集したマシン関連の監視データは、Nightingale の組み込みダッシュボードで表示することをお勧めします。これは、Categraf のメトリクス命名規則が Telegraf の規則に従っており、Node Exporter とは異なるためです。
- Nightingale のビジネスグループの概念(マシンが異なるグループに属することができる)により、ダッシュボード上で現在のビジネスグループ内のマシンのみを表示したいシナリオがあります。したがって、Nightingale のダッシュボードはビジネスグループと連携し、対話的なフィルタリングが可能です。
🌟 スター数の推移
🔥 ユーザー

🤝 コミュニティ共同構築
- ❇️ Nightingale オープンソースプロジェクトとコミュニティガバナンス草案 をお読みください。すべてのユーザー、開発者、企業、組織が Nightingale を利用し、バグを積極的に報告し、機能リクエストを送り、ベストプラクティスを共有し、専門的で活発なオープンソースコミュニティの構築に協力していただくことを心から歓迎します。
- ❤️ Nightingale コントリビューター
