designetwork

ネットワークを軸としたIT技術メモ

Praeco (ElastAlert GUI) を Helm で Kubernetes にインストールする (Beta)

f:id:daichi703n:20200224200836p:plain

以前より本ブログで取り上げている Praeco (ElastAlert GUI) の Helm Chart を作成した。

Praecoについてはこちら参照

designetwork.daichi703n.com

Betaリリース

初めてのHelm Chartで、かつ、まだ本番運用はできておらず、k3sのローカルKubernetes環境での試験のみ完了した状況です。不具合等ありましたらコメント・GitHub Issueをお願いします。

また、Ingressなどは理解不足で実装できていないと思います...

repo

github.com

ElastAlertの設定は ElastAlert Helm Chart をほぼそのまま使用している。※バグ修正のために独自Docker Image使用

対応Elasticsearchバージョン

2020/2月時点ではElasticsearch 7.xのみ対応しています。6.x以前には現時点では対応していませんのでご了承ください。

Installation

READMEに記載の通り

elastic/elasticsearch を使用している場合は、これだけで起動できる。個別にElasticsearchを構築している場合は、Configuration, vars.yml.example を参考に設定ください。以下はSlackの例。

$ helm repo add daichi703n https://daichi703n.github.io/charts/stable 
$ helm install --name praeco daichi703n/praeco \
    --set elastalert.slack_webhook_url=https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX \
    --set elastalert.extraConfigOptions.slack_ignore_ssl_errors=true

Podが起動したら、適宜Praeco GUIにアクセスするための設定をする。

$ export POD_NAME=$(kubectl get pods -l "app.kubernetes.io/name=praeco,app.kubernetes.io/instance=praeco" -o jsonpath="{.items[0].metadata.name}")
$ kubectl port-forward $POD_NAME 8080:8080

Access to http://localhost:8080

Screen Shots

PraecoではこのようなWeb GUIからElasticsearchに格納されたデータを元にしたアラートが可能です。クエリ作成がプルダウンからできたり、とても簡単かつ詳細にアラート作成ができできる。

f:id:daichi703n:20190323184727p:plain f:id:daichi703n:20190323184246p:plain

with BOSH

Cloud Foundry など BOSH 環境の場合はこちら (ES6 only, ES7未サポート) github.com

まとめ - Praeco (ElastAlert GUI) を Helm で Kubernetes にインストールする (Beta)

Praeco (ElastAlert GUI) の Helm Chart を作成し、Kubernetes にインストールできるようにした。Praecoを更に広めていきたい。