ElastAlert を Kibana に統合するためのプラグインである elastalert-kibana-plugin のインストールおよび基本的な構成方法について説明します。
1. リポジトリ構造概要
elastalert-kibana-plugin/
├── public/
│ └── server/
│ └── routes/
│ └── index.js
├── .eslintrc
├── .gitignore
├── .nvmrc
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── index.js
├── package.json
├── yarn.lock
└── *.gif(デモ画像)
- public/:フロントエンド関連のアセットや UI コンポーネントを格納。
- public/server/routes/index.js:Kibana プラグインが提供する API エンドポイントの定義。
- .nvmrc:推奨 Node.js バージョンを指定。
- package.json:依存パッケージやスクリプトの定義。
- index.js:プラグインのエントリーポイント。
2. プラグインのエントリーポイント
index.js は Kibana プラグインとしての初期化ロジックを含みます。典型的な実装例は以下の通りです:
import { Plugin } from 'kibana-custom-plugin-sdk';
export default new Plugin({
id: 'elastalert-kibana-plugin',
version: '1.0.0',
kibanaVersion: '^8.0.0',
init(server, options) {
// ElastAlert 連携用の初期設定やルート登録
const { router } = server.http;
router.get({ path: '/api/elastalert/status', handler: () => ({ status: 'ok' }) });
}
});
3. 設定ファイルのカスタマイズ
Kibana の設定ファイル kibana.yml に、ElastAlert サーバーへの接続情報を追記します:
elastalert_kibana_plugin:
server_host: "192.168.1.100"
server_port: 3030
この設定により、プラグインは指定されたホスト・ポートの ElastAlert API と通信します。
package.json には、プラグインのメタデータと依存関係が記述されています:
{
"name": "elastalert-kibana-plugin",
"version": "1.0.0",
"kibana": {
"version": "8.10.0"
},
"dependencies": {
"@kbn/core-http-server": "^8.10.0"
}
}
プラグインのビルドおよび Kibana への組み込みは、通常 Kibana のプラグイン開発ワークフローに従って行います(例:yarn plugin-helpers build)。
プロジェクトの最新版は以下のリポジトリから取得可能です:
https://gitcode.com/gh_mirrors/el/elastalert-kibana-plugin