kibana-connectors
Slack、PagerDuty、Jira、webhookなど、KibanaコネクターをREST APIまたはTerraformで作成・管理します。サードパーティ統合の設定やコネクターをコードとして管理する際に使用してください。
description の原文を見る
> Create and manage Kibana connectors for Slack, PagerDuty, Jira, webhooks, and more via REST API or Terraform. Use when configuring third-party integrations or managing connectors as code.
SKILL.md 本文
Kibana コネクタ
コア概念
コネクタは Elastic サービスおよび第三者システムの接続情報を保存します。アラートルールはコネクタを使用してルール条件が満たされた場合にアクション (通知) をルーティングします。コネクタはKibana スペースごとに管理され、そのスペース内のすべてのルール間で共有できます。
コネクタカテゴリ
| カテゴリ | コネクタタイプ |
|---|---|
| LLM プロバイダー | OpenAI, Google Gemini, Amazon Bedrock, Elastic Managed LLMs, AI Connector, MCP (Preview, 9.3+) |
| インシデント管理 | PagerDuty, Opsgenie, ServiceNow (ITSM, SecOps, ITOM), Jira, Jira Service Management (9.2+), IBM Resilient, Swimlane, Torq, Tines, D3 Security, XSOAR (9.1+), TheHive |
| エンドポイントセキュリティ | CrowdStrike, SentinelOne, Microsoft Defender for Endpoint |
| メッセージング | Slack (API / Webhook), Microsoft Teams, Email |
| ロギング & オブザーバビリティ | Server log, Index, Observability AI Assistant |
| Webhook | Webhook, Webhook - Case Management, xMatters |
| Elastic | Cases |
認証
すべてのコネクタ API 呼び出しには API キー認証または Basic 認証が必要です。すべての変更リクエストには kbn-xsrf ヘッダーを含める必要があります。
kbn-xsrf: true
必要な権限
コネクタへのアクセスはアラート対応機能の権限に基づいて付与されます。Stack Management でアクションおよびコネクタに対する all 権限が必要です。
API リファレンス
ベースパス: <kibana_url>/api/actions (デフォルト以外のスペースの場合は /s/<space_id>/api/actions)。
| 操作 | メソッド | エンドポイント |
|---|---|---|
| コネクタを作成 | POST | /api/actions/connector/{id} |
| コネクタを更新 | PUT | /api/actions/connector/{id} |
| コネクタを取得 | GET | /api/actions/connector/{id} |
| コネクタを削除 | DELETE | /api/actions/connector/{id} |
| すべてのコネクタを取得 | GET | /api/actions/connectors |
| コネクタタイプを取得 | GET | /api/actions/connector_types |
| コネクタを実行 | POST | /api/actions/connector/{id}/_execute |
コネクタの作成
必須フィールド
| フィールド | 型 | 説明 |
|---|---|---|
name | string | コネクタの表示名 |
connector_type_id | string | コネクタタイプ (例: .slack, .email, .webhook, .pagerduty, .jira) |
config | object | タイプ固有の設定 (非シークレット設定) |
secrets | object | タイプ固有のシークレット (API キー、パスワード、トークン) |
例: Slack コネクタ (Webhook) を作成
curl -X POST "https://my-kibana:5601/api/actions/connector/my-slack-connector" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-H "Authorization: ApiKey <your-api-key>" \
-d '{
"name": "Production Slack Alerts",
"connector_type_id": ".slack",
"config": {},
"secrets": {
"webhookUrl": "https://hooks.slack.com/services/T00/B00/XXXX"
}
}'
すべてのコネクタタイプは同じリクエスト構造を共有します — connector_type_id, config, secrets のみが異なります。利用可能なタイプと必須フィールドについては、一般的なコネクタタイプ ID 表をご覧ください。
例: PagerDuty コネクタを作成
curl -X POST "https://my-kibana:5601/api/actions/connector/my-pagerduty" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-H "Authorization: ApiKey <your-api-key>" \
-d '{
"name": "PagerDuty Incidents",
"connector_type_id": ".pagerduty",
"config": {
"apiUrl": "https://events.pagerduty.com/v2/enqueue"
},
"secrets": {
"routingKey": "your-pagerduty-integration-key"
}
}'
コネクタの更新
PUT /api/actions/connector/{id} は完全な設定を置き換えます。connector_type_id は変更不可です — 変更するには削除して再作成してください。
コネクタの一覧表示と検出
# 現在のスペース内のすべてのコネクタを取得
curl -X GET "https://my-kibana:5601/api/actions/connectors" \
-H "Authorization: ApiKey <your-api-key>"
# 利用可能なコネクタタイプを取得
curl -X GET "https://my-kibana:5601/api/actions/connector_types" \
-H "Authorization: ApiKey <your-api-key>"
# フィーチャーでコネクタタイプをフィルタリング (例: アラートをサポートするもののみ)
curl -X GET "https://my-kibana:5601/api/actions/connector_types?feature_id=alerting" \
-H "Authorization: ApiKey <your-api-key>"
GET /api/actions/connectors レスポンスには referenced_by_count が含まれ、各コネクタを使用するルール数を表示します。削除前に常に確認してください。
コネクタの実行 (テスト)
コネクタアクションを直接実行します。接続性のテストに便利です。
curl -X POST "https://my-kibana:5601/api/actions/connector/my-slack-connector/_execute" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-H "Authorization: ApiKey <your-api-key>" \
-d '{
"params": {
"message": "Test alert from API"
}
}'
コネクタの削除
curl -X DELETE "https://my-kibana:5601/api/actions/connector/my-slack-connector" \
-H "kbn-xsrf: true" \
-H "Authorization: ApiKey <your-api-key>"
警告: ルールによって参照されているコネクタを削除すると、それらのルールアクションが失敗します。事前に referenced_by_count を確認してください。
Terraform プロバイダー
elasticstack プロバイダーリソース elasticstack_kibana_action_connector を使用します。
terraform {
required_providers {
elasticstack = {
source = "elastic/elasticstack"
}
}
}
provider "elasticstack" {
kibana {
endpoints = ["https://my-kibana:5601"]
api_key = var.kibana_api_key
}
}
resource "elasticstack_kibana_action_connector" "slack" {
name = "Production Slack Alerts"
connector_type_id = ".slack"
config = jsonencode({})
secrets = jsonencode({
webhookUrl = "https://hooks.slack.com/services/T00/B00/XXXX"
})
}
resource "elasticstack_kibana_action_connector" "index" {
name = "Alert Index Writer"
connector_type_id = ".index"
config = jsonencode({
index = "alert-history"
executionTimeField = "@timestamp"
})
secrets = jsonencode({})
}
重要な Terraform 注記:
configとsecretsはjsonencode()経由で JSON エンコードされた文字列である必要があります- シークレットは Terraform state に保存されます。暗号化されたリモートバックエンドを使用し、state ファイルへのアクセスを制限してください
- 既存のコネクタをインポート:
terraform import elasticstack_kibana_action_connector.my_connector <space_id>/<connector_id>(デフォルトスペースの場合はdefaultを使用) - インポート後、シークレットは state に設定されません。設定で指定する必要があります
事前設定済みコネクタ (オンプレミス)
自己管理型 Kibana の場合、コネクタを kibana.yml に事前設定して、手動作成なしで起動時に利用可能にできます:
xpack.actions.preconfigured:
my-slack-connector:
name: "Production Slack"
actionTypeId: .slack
secrets:
webhookUrl: "https://hooks.slack.com/services/T00/B00/XXXX"
my-webhook:
name: "Custom Webhook"
actionTypeId: .webhook
config:
url: "https://api.example.com/alerts"
method: post
hasAuth: true
secrets:
user: "alert-user"
password: "secret-password"
事前設定済みコネクタは API または UI 経由で編集または削除できません。これらは is_preconfigured: true を表示し、API レスポンスから config と is_missing_secrets を省略します。
ネットワーク設定
kibana.yml 経由でコネクタネットワーク (プロキシ、TLS、証明書) をカスタマイズします:
# すべてのコネクタの グローバルプロキシ
xpack.actions.proxyUrl: "https://proxy.example.com:8443"
# ホストごとの TLS 設定
xpack.actions.customHostSettings:
- url: "https://api.example.com"
ssl:
verificationMode: full
certificateAuthoritiesFiles: ["/path/to/ca.pem"]
Kibana ワークフローのコネクタ
コネクタは、アラート通知だけでなく、複数の Kibana ワークフロー全体の統合レイヤーとして機能します:
| ワークフロー | コネクタタイプ | キーパターン |
|---|---|---|
| ITSM チケット処理 | ServiceNow, Jira, IBM Resilient | アクティブ時にチケットを作成、Recovered 時に閉じる |
| オンコール エスカレーション | PagerDuty, Opsgenie | アクティブ時に trigger、Recovered 時に resolve; 常に重複排除キーを設定 |
| ケース管理 | Cases (システムアクション) | UI のみ; アラートを調査ケースにグループ化; ITSM に自動プッシュ可能 |
| メッセージング / 認識 | Slack, Teams, Email | onActionGroupChange をインシデントチャネル用に、サマリーを監視チャネル用に |
| 監査ログ | Index | onActiveAlert で完全なアラート時系列を Elasticsearch に書き込み |
| AI ワークフロー | OpenAI, Bedrock, Gemini, AI Connector | Elastic AI Assistant と Attack Discovery を提供; システム管理 |
| カスタム統合 | Webhook | Mustache テンプレート JSON ボディ付きジェネリック HTTP アウトバウンド |
各ワークフローの詳細なパターン、例、判定ガイダンスについては、workflows.md をご覧ください。
ベストプラクティス
-
本番オンプレミス用に事前設定済みコネクタを使用してください。 シークレット拡散を排除し、Saved Object インポートで保持され、誤って削除されることはありません。API で作成されたコネクタは動的またはユーザー管理シナリオ用に予約してください。
-
ルールにアタッチする前にコネクタをテストしてください。
_executeエンドポイントを使用して接続性を確認してください。設定が誤ったコネクタは、ルール実行履歴にのみ表示されるサイレント アクション失敗を引き起こします。 -
削除前に
referenced_by_countを確認してください。 アクティブなルールで使用されているコネクタを削除すると、それらのアクションが失敗します。コネクタを一覧表示してゼロ参照を確認するか、ルールを新しいコネクタに先に再割り当てしてください。 -
Email ドメイン許可リストを使用してください。
xpack.actions.email.domain_allowlist設定は、コネクタが送信できるメール ドメインを制限します。このリストを更新した場合、新しいリスト外の受信者を持つ既存のメール コネクタは失敗を始めます。 -
Terraform でシークレットを保護してください。 コネクタ シークレット (API キー、パスワード、webhook URL) は Terraform state に保存されます。暗号化されたリモート バックエンド (S3+KMS, Azure Blob+encryption, GCS+CMEK) を使用し、state ファイルへのアクセスを制限してください。変数で
sensitive = trueを使用してください。 -
サービスごとに 1 つのコネクタ、ルールごとではありません。 単一の Slack コネクタを作成し、複数のルールから参照します。これにより、シークレット ローテーションが一元化され、重複が削減されます。
-
マルチテナント分離のため Space を使用してください。 コネクタは Kibana Space にスコープされます。異なるチームまたは環境用に別々のスペースを作成し、スペースごとにコネクタを設定してください。
-
コネクタの状態を監視してください。 失敗したコネクタ実行はイベント ログ インデックス (
.kibana-event-log-*) に記録されます。コネクタ失敗は Task Manager には成功として報告されますが、アラート配信ではサイレント失敗します。イベント ログ インデックスで実際の失敗率をチェックしてください。 -
アクティブ アクション と並行して常に復旧アクションを設定してください。 ITSM およびオンコール ツール (ServiceNow, Jira, PagerDuty, Opsgenie) 用のコネクタはクローズ/解決操作をサポートします。復旧アクションがない場合、インシデントは永遠にオープンのままになります。
-
オンコール コネクタに重複排除キーを使用してください。
dedupKey(PagerDuty) またはalias(Opsgenie) を{{rule.id}}-{{alert.id}}に設定して、解決イベントがまさしく正しいインシデントをクローズするようにしてください。これなしでは、アラートが再発火するたびに新しいインシデントが作成されます。 -
調査ワークフロー用に Cases コネクタを優先してください。 アラートがコメント、添付ファイル、割り当て担当者での調査を必要とする場合、直接 Jira/ServiceNow コネクタではなく Cases を使用してください。Cases はネイティブ調査 UI を提供し、ケースの外部接続経由で ITSM にプッシュできます。
-
永続的な監査証跡用に Index コネクタを使用してください。 Index コネクタは Elasticsearch に書き込み、アラート履歴を検索・ダッシュボード化可能にします。ILM ポリシーを対象インデックスとペアリングして、リテンション制御してください。
-
アクション設定経由でコネクタ アクセスを制限してください。
xpack.actions.enabledActionTypesを使用して組織が必要とするコネクタタイプのみをホワイトリスト化し、xpack.actions.allowedHostsを使用してアウトバウンド接続を既知のエンドポイントに制限してください。
一般的な落とし穴
-
kbn-xsrfヘッダーの欠落。 すべての POST, PUT, DELETE リクエストにはkbn-xsrf: trueが必要です。省略すると 400 エラーが返されます。 -
間違った
connector_type_id。 先頭のドットを含む正確な文字列を使用してください (例:slackではなく.slack)。有効なタイプはGET /api/actions/connector_typesで検出してください。 -
空の
secretsオブジェクトが必須。 シークレットがないコネクタ (例:.index,.server-log) でも、作成リクエストで"secrets": {}を指定する必要があります。 -
コネクタタイプは変更不可。 作成後に
connector_type_idを変更できません。代わりに削除して再作成してください。 -
エクスポート/インポート時にシークレットが失われる。 Saved Objects 経由でコネクタをエクスポートするとシークレットが削除されます。インポート後、コネクタは
is_missing_secrets: trueを表示し、UI に「修正」ボタンが表示されます。シークレットを手動または API 経由で再入力する必要があります。 -
事前設定済みコネクタは API 経由で変更できません。 事前設定済みコネクタを更新または削除しようとすると 400 が返されます。
kibana.ymlでのみ管理してください。 -
第三者サービスからのレート制限。 高量の通知を送信するコネクタ (例: 1 分ごとにアラートあたり 1 つ) は Slack, PagerDuty, またはメール プロバイダー レート制限に達する可能性があります。アラート サマリーとルール側のアクション頻度制御を使用して音量を削減してください。
-
コネクタ ネットワーク失敗。 Kibana はコネクタのターゲット URL に到達できる必要があります。ファイアウォール ルール、プロキシ設定、DNS 解決を確認してください。TLS の問題には
xpack.actions.customHostSettingsを使用してください。 -
ライセンス要件。 一部のコネクタタイプには Gold, Platinum, または Enterprise ライセンスが必要です。
GET /api/actions/connector_typesからminimum_license_requiredフィールドをチェックしてください。enabled_in_config: trueだがenabled_in_license: falseのコネクタは使用できません。 -
Terraform インポートはシークレットを復元しません。 既存のコネクタを Terraform にインポートすると、シークレットは Kibana から読み込まれません。Terraform 設定で指定する必要があります。指定しないと、次の
terraform applyで空の値で上書きされます。
一般的なコネクタタイプ ID
| タイプ ID | 名前 | ライセンス |
|---|---|---|
.email | Gold | |
.slack | Slack (Webhook) | Gold |
.slack_api | Slack (API) | Gold |
.pagerduty | PagerDuty | Gold |
.jira | Jira | Gold |
.servicenow | ServiceNow ITSM | Platinum |
.servicenow-sir | ServiceNow SecOps | Platinum |
.servicenow-itom | ServiceNow ITOM | Platinum |
.webhook | Webhook | Gold |
.index | Index | Basic |
.server-log | Server log | Basic |
.opsgenie | Opsgenie | Gold |
.teams | Microsoft Teams | Gold |
.gen-ai | OpenAI | Enterprise |
.bedrock | Amazon Bedrock | Enterprise |
.gemini | Google Gemini | Enterprise |
.cases | Cases | Platinum |
.crowdstrike | CrowdStrike | Enterprise |
.sentinelone | SentinelOne | Enterprise |
.microsoft_defender_endpoint | Microsoft Defender for Endpoint | Enterprise |
.thehive | TheHive | Gold |
注:
GET /api/actions/connector_typesを使用して、デプロイメント上のすべての利用可能なタイプとその正確なminimum_license_required値を検出してください。XSOAR, Jira Service Management, MCP 用のコネクタタイプは利用可能ですが、古い API spec バージョンには表示されない場合があります。
例
Slack コネクタを作成: 「アラート用に Slack 通知を設定します。」connector_type_id: ".slack" と secrets.webhookUrl で POST /api/actions/connector を実行します。返されたコネクタ id をルール アクションで使用します。
ルールにアタッチする前にコネクタをテスト: 「PagerDuty コネクタが機能することを確認します。」最小限の params オブジェクトで POST /api/actions/connector/{id}/_execute を実行して、ルールに追加する前に接続性を確認します。
削除前にコネクタ使用を監査: 「古い Email コネクタを削除します。」GET /api/actions/connectors を実行し、referenced_by_count を確認してください — ゼロでない場合、参照ルールを先に再割り当てしてから DELETE /api/actions/connector/{id} を実行します。
ガイドライン
- すべての POST, PUT, DELETE に
kbn-xsrf: trueを含めてください。省略すると 400 が返されます。 connector_type_idは変更不可です — コネクタタイプを変更するには削除して再作成してください。- シークレットがないコネクタ (例:
.index,.server-log) でも常に"secrets": {}を渡してください。 - 削除前に
referenced_by_countを確認してください。削除されたコネクタは参照ルール アクションをサイレント破裂させます。 - コネクタはスペーススコープです。デフォルト以外の Kibana Space の場合はパスを
/s/<space_id>/api/actions/で接頭辞付けしてください。 - シークレットは書き込み専用です: GET で返されず、Saved Object エクスポート/インポートで削除されます。インポート後は常に再指定してください。
- すべての新しいコネクタを
_executeでテストしてからルールにアタッチしてください。本番環境でのコネクタ失敗はサイレントです。
追加リソース
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- elastic
- リポジトリ
- elastic/agent-skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/elastic/agent-skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。