申请企业微信公众号在这里我就不详细说明了,大家可以看看网上的教程去申请
下面主要介绍一下该插件的使用方法
第一步:
首先你要确保你已经安装好了python的报警框架elastalert(https://github.com/Yelp/elastalert.git)
具体的安装方法可以参考官方的文档https://elastalert.readthedocs.io/en/latest/running_elastalert.html
以下では、例としてクローン リポジトリのインストールを取り上げます。
git clone https://github.com/Yelp/elastalert.git
pip install -r requirements.txt
pip install -r requirements-dev.txt
python2.7 setup.py install
第二步
修改配置文件
打开config/config.yaml按照里面的说明进行配置,其中es_rules中放置的是我写的一个wechat规则模板大家可以简单修改一下继续使用
第三步
将elastalert_wechat_plugin目录下的所有文件拷贝到elastalert目录下即可
第四步
创建Elasticsearch索引
进入我们的项目目录./elastalert/elastalert/ 执行
python2.7 create_index.py --config ../config/config.yaml --host es_host --port ex_post --username es_username --password es_password --no-ssl --no-verify-certs
このコマンドは、ElastAlert がそのクエリとそのアラートに関する情報とメタデータを Elasticsearch に保存できるように、elasticsearch にインデックスを作成します。これは必須の手順ではありませんが、強くお勧めします。監査にはテストが役立ち、elastalert を再起動してもアラートのカウントや送信には影響しないためです。デフォルトでは、作成されるインデックスは elastalert_status という名前になります。
第五步
启动
python2.7 -m elastalert.elastalert --verbose --config config/config.yaml --rule es_rules/wechart.yaml
config指定配置文件路径 rule指定你的微信报警文件
より詳細なインストールプロセスと手順が必要な場合は、私の Toutiao Today Toutiao を参照してください。
起動する
docker run -d hellolinux/elastalert_wechat_plugin:latest
镜像自定义配置文件部署
git コード https://github.com/Hello-Linux/elastalert_wechat_plugin.git をダウンロードします。中には config ファイルと es_rules ファイルがあり、それらを変更してコンテナーにマウントします。
cd elastalert_wechat_plugin
docker run -d -v ` pwd ` /config:/opt/elastalert/config -v ` pwd ` /es_rules:/opt/elastalert/es_rules hellolinux/elastalert_wechat_plugin:latest
自定义elastalert版本
Dockerfile には環境変数 ENV ELASTALERT_VERSION が存在します。デフォルト値は v0.1.38 です。実行するには、これを他のバージョンに変更します。
docker -e ELASTALERT_VERSION=版本号
docker镜像地址
Dockerイメージ
1.报警时间显示的是UTC时间
これは主に、logstash が Elasticsearch に渡された後に基礎となる UTC 時間を使用するという事実によるものです。解決策は、logstash フィルターから開始し、date または grok を使用してタイムスタンプをカスタマイズすることです。
日付フィルタープラグイン:
filter {
date {
match = > [ " timestamp " , " dd/MMM/yyyy:HH:mm:ss " ]
target = > " @timestamp "
locale= > " en "
timezone = > " UTC "
}
}
上のタイムスタンプはログの時刻フィールドを指し、その後ろにある「dd/MMM/yyyy:HH:mm:ss」はログ形式を指します。これはログによって異なり、私のものと同じではない可能性があります。
日付フィルタープラグイン
filter {
grok {
match = > { " message " = > " (?<logtime>d{4}-d{2}-d{2} d{2}:d{2}:d{2},d{1,3}) " }
}
}
上記は、ログ内の時刻の単純な一致です。これは、ユーザーの状況によって異なります。フィールドが変更されているため、アラーム プラグインに追加されます。
alert_text_args:
- @timestamp
- message
@timestamp も logtime フィールドに置き換える必要があります。
2.如何给企业微信多个部门发送告警
これを行う時間はまだありません。妥協的な解決策は、es_rules に複数のルールを記述して、複数の部門 ID に対するアラーム送信を間接的に実装することです。
3.企业微信收不到报警
これは主にアラーム ルールがトリガーされているかどうかを確認するためであり、次に WeChat 公式アカウントの設定が正しいかどうかを確認するためです。
伸出您可爱的双手支持一下作者呗!给他一点继续更新下去的勇气!