LoginSignup
1
4

More than 5 years have passed since last update.

elastalertを利用したslackへのアラート

Last updated at Posted at 2017-01-11

elastalertを利用するにあたりはまったところと、工夫したところをまとめました。:bow:

elastalertとは

ElasticSearchに送ったログなどを監視してアラートを投げてくれるやつ
メールとかslackなどなど

はまったところ

気がつけば簡単なのに気がつくまでが一苦労・・・(ノД`)とほほ・・

elastalert-create-indexが実行できない

Traceback (most recent call last):
  ・・・
pkg_resources.DistributionNotFound: botocore

create_index.pyを直接実行すれば良い

python elastalert/elastalert/create_index.py

elastalert-test-ruleが実行できない

elastalert/elastalert/test_rule.pyを実行すれば良いと思ったら、それも怒られた。

Traceback (most recent call last):
  File "elastalert/elastalert/test_rule.py", line 20, in <module>
    import elastalert.config
ImportError: No module named config

ファイルをコピーさせてから実行する

cp elastalert/elastalert/test_rule.py elastalert/
python elastalert/test_rule.py elastalert/rules/xxx.yaml

supervisordで実行されない

原因はconfig.yamlに書いたrules_folderのパスがsupervisordが実行する場所からは見れない

対策1

config.yamlに書いたrules_folderを絶対パスにするか

config.yaml
rules_folder: /elastalertがインストールされているディレクトリ/rules 

対策2

supervisordに登録するプロセスにdirectoryを追加する

directory=/elastalertがインストールされているディレクトリ/

工夫したところ

kibanaへのリンクを付けた

ログを全てSlackに流すわけには行かなかったため、ダッショボードとログへのkibanaのリンクが欲しかった
alert_subjectを利用する

ruleファイル
use_kibana4_dashboard: http://kibana/app/kibana#/dashboard/applog
alert_text_type: exclude_fields
alert_subject: エラーが発生しました。(<http://indexとtypeとidをつかってログへのリンクを組み立てる/{0}/{1}/?id={2}|LogDetail> | <{3}|DashBoard>)
alert_subject_args: 
  - _index
  - _type
  - _id
  - kibana_link

なおalert_textはエスケープ処理されるためリンクは作れなかった

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4