Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

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
WebhookWebhook, Webhook - Case Management, xMatters
ElasticCases

認証

すべてのコネクタ 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

コネクタの作成

必須フィールド

フィールド説明
namestringコネクタの表示名
connector_type_idstringコネクタタイプ (例: .slack, .email, .webhook, .pagerduty, .jira)
configobjectタイプ固有の設定 (非シークレット設定)
secretsobjectタイプ固有のシークレット (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 注記:

  • configsecretsjsonencode() 経由で 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 レスポンスから configis_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アクティブ時に triggerRecovered 時に resolve; 常に重複排除キーを設定
ケース管理Cases (システムアクション)UI のみ; アラートを調査ケースにグループ化; ITSM に自動プッシュ可能
メッセージング / 認識Slack, Teams, EmailonActionGroupChange をインシデントチャネル用に、サマリーを監視チャネル用に
監査ログIndexonActiveAlert で完全なアラート時系列を Elasticsearch に書き込み
AI ワークフローOpenAI, Bedrock, Gemini, AI ConnectorElastic AI Assistant と Attack Discovery を提供; システム管理
カスタム統合WebhookMustache テンプレート JSON ボディ付きジェネリック HTTP アウトバウンド

各ワークフローの詳細なパターン、例、判定ガイダンスについては、workflows.md をご覧ください。

ベストプラクティス

  1. 本番オンプレミス用に事前設定済みコネクタを使用してください。 シークレット拡散を排除し、Saved Object インポートで保持され、誤って削除されることはありません。API で作成されたコネクタは動的またはユーザー管理シナリオ用に予約してください。

  2. ルールにアタッチする前にコネクタをテストしてください。 _execute エンドポイントを使用して接続性を確認してください。設定が誤ったコネクタは、ルール実行履歴にのみ表示されるサイレント アクション失敗を引き起こします。

  3. 削除前に referenced_by_count を確認してください。 アクティブなルールで使用されているコネクタを削除すると、それらのアクションが失敗します。コネクタを一覧表示してゼロ参照を確認するか、ルールを新しいコネクタに先に再割り当てしてください。

  4. Email ドメイン許可リストを使用してください。 xpack.actions.email.domain_allowlist 設定は、コネクタが送信できるメール ドメインを制限します。このリストを更新した場合、新しいリスト外の受信者を持つ既存のメール コネクタは失敗を始めます。

  5. Terraform でシークレットを保護してください。 コネクタ シークレット (API キー、パスワード、webhook URL) は Terraform state に保存されます。暗号化されたリモート バックエンド (S3+KMS, Azure Blob+encryption, GCS+CMEK) を使用し、state ファイルへのアクセスを制限してください。変数で sensitive = true を使用してください。

  6. サービスごとに 1 つのコネクタ、ルールごとではありません。 単一の Slack コネクタを作成し、複数のルールから参照します。これにより、シークレット ローテーションが一元化され、重複が削減されます。

  7. マルチテナント分離のため Space を使用してください。 コネクタは Kibana Space にスコープされます。異なるチームまたは環境用に別々のスペースを作成し、スペースごとにコネクタを設定してください。

  8. コネクタの状態を監視してください。 失敗したコネクタ実行はイベント ログ インデックス (.kibana-event-log-*) に記録されます。コネクタ失敗は Task Manager には成功として報告されますが、アラート配信ではサイレント失敗します。イベント ログ インデックスで実際の失敗率をチェックしてください。

  9. アクティブ アクション と並行して常に復旧アクションを設定してください。 ITSM およびオンコール ツール (ServiceNow, Jira, PagerDuty, Opsgenie) 用のコネクタはクローズ/解決操作をサポートします。復旧アクションがない場合、インシデントは永遠にオープンのままになります。

  10. オンコール コネクタに重複排除キーを使用してください。 dedupKey (PagerDuty) または alias (Opsgenie) を {{rule.id}}-{{alert.id}} に設定して、解決イベントがまさしく正しいインシデントをクローズするようにしてください。これなしでは、アラートが再発火するたびに新しいインシデントが作成されます。

  11. 調査ワークフロー用に Cases コネクタを優先してください。 アラートがコメント、添付ファイル、割り当て担当者での調査を必要とする場合、直接 Jira/ServiceNow コネクタではなく Cases を使用してください。Cases はネイティブ調査 UI を提供し、ケースの外部接続経由で ITSM にプッシュできます。

  12. 永続的な監査証跡用に Index コネクタを使用してください。 Index コネクタは Elasticsearch に書き込み、アラート履歴を検索・ダッシュボード化可能にします。ILM ポリシーを対象インデックスとペアリングして、リテンション制御してください。

  13. アクション設定経由でコネクタ アクセスを制限してください。 xpack.actions.enabledActionTypes を使用して組織が必要とするコネクタタイプのみをホワイトリスト化し、xpack.actions.allowedHosts を使用してアウトバウンド接続を既知のエンドポイントに制限してください。

一般的な落とし穴

  1. kbn-xsrf ヘッダーの欠落。 すべての POST, PUT, DELETE リクエストには kbn-xsrf: true が必要です。省略すると 400 エラーが返されます。

  2. 間違った connector_type_id 先頭のドットを含む正確な文字列を使用してください (例: slack ではなく .slack)。有効なタイプは GET /api/actions/connector_types で検出してください。

  3. 空の secrets オブジェクトが必須。 シークレットがないコネクタ (例: .index, .server-log) でも、作成リクエストで "secrets": {} を指定する必要があります。

  4. コネクタタイプは変更不可。 作成後に connector_type_id を変更できません。代わりに削除して再作成してください。

  5. エクスポート/インポート時にシークレットが失われる。 Saved Objects 経由でコネクタをエクスポートするとシークレットが削除されます。インポート後、コネクタは is_missing_secrets: true を表示し、UI に「修正」ボタンが表示されます。シークレットを手動または API 経由で再入力する必要があります。

  6. 事前設定済みコネクタは API 経由で変更できません。 事前設定済みコネクタを更新または削除しようとすると 400 が返されます。kibana.yml でのみ管理してください。

  7. 第三者サービスからのレート制限。 高量の通知を送信するコネクタ (例: 1 分ごとにアラートあたり 1 つ) は Slack, PagerDuty, またはメール プロバイダー レート制限に達する可能性があります。アラート サマリーとルール側のアクション頻度制御を使用して音量を削減してください。

  8. コネクタ ネットワーク失敗。 Kibana はコネクタのターゲット URL に到達できる必要があります。ファイアウォール ルール、プロキシ設定、DNS 解決を確認してください。TLS の問題には xpack.actions.customHostSettings を使用してください。

  9. ライセンス要件。 一部のコネクタタイプには Gold, Platinum, または Enterprise ライセンスが必要です。GET /api/actions/connector_types から minimum_license_required フィールドをチェックしてください。enabled_in_config: true だが enabled_in_license: false のコネクタは使用できません。

  10. Terraform インポートはシークレットを復元しません。 既存のコネクタを Terraform にインポートすると、シークレットは Kibana から読み込まれません。Terraform 設定で指定する必要があります。指定しないと、次の terraform apply で空の値で上書きされます。

一般的なコネクタタイプ ID

タイプ ID名前ライセンス
.emailEmailGold
.slackSlack (Webhook)Gold
.slack_apiSlack (API)Gold
.pagerdutyPagerDutyGold
.jiraJiraGold
.servicenowServiceNow ITSMPlatinum
.servicenow-sirServiceNow SecOpsPlatinum
.servicenow-itomServiceNow ITOMPlatinum
.webhookWebhookGold
.indexIndexBasic
.server-logServer logBasic
.opsgenieOpsgenieGold
.teamsMicrosoft TeamsGold
.gen-aiOpenAIEnterprise
.bedrockAmazon BedrockEnterprise
.geminiGoogle GeminiEnterprise
.casesCasesPlatinum
.crowdstrikeCrowdStrikeEnterprise
.sentineloneSentinelOneEnterprise
.microsoft_defender_endpointMicrosoft Defender for EndpointEnterprise
.thehiveTheHiveGold

注: GET /api/actions/connector_types を使用して、デプロイメント上のすべての利用可能なタイプとその正確な minimum_license_required 値を検出してください。XSOAR, Jira Service Management, MCP 用のコネクタタイプは利用可能ですが、古い API spec バージョンには表示されない場合があります。

Slack コネクタを作成: 「アラート用に Slack 通知を設定します。」connector_type_id: ".slack"secrets.webhookUrlPOST /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

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: elastic · elastic/agent-skills · ライセンス: Apache-2.0