申请企业微信公众号在这里我就不详细说明了,大家可以看看网上的教程去申请
下面主要介绍一下该插件的使用方法
第一步:
首先你要确保你已经安装好了python的报警框架elastalert(https://github.com/Yelp/elastalert.git)
具体的安装方法可以参考官方的文档https://elastalert.readthedocs.io/en/latest/running_elastalert.html
Ci-dessous, je prends l'installation du référentiel clone comme exemple.
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
Cette commande créera un index dans elasticsearch afin qu'ElastAlert puisse enregistrer les informations et les métadonnées sur sa requête et ses alertes dans Elasticsearch. Ce n’est pas une étape obligatoire, mais elle est fortement recommandée. Car pour l'audit, les tests sont utiles, et le redémarrage d'elastalert n'affecte pas le comptage et l'envoi des alertes. Par défaut, l'index créé s'appelle elastalert_status
第五步
启动
python2.7 -m elastalert.elastalert --verbose --config config/config.yaml --rule es_rules/wechart.yaml
config指定配置文件路径 rule指定你的微信报警文件
Si vous avez besoin d'un processus d'installation et d'instructions plus détaillées, veuillez vous référer à mon Toutiao Today Toutiao
démarrer
docker run -d hellolinux/elastalert_wechat_plugin:latest
镜像自定义配置文件部署
Téléchargez le code git https://github.com/Hello-Linux/elastalert_wechat_plugin.git Il contient des fichiers de configuration et es_rules. Modifiez les fichiers de configuration et les fichiers de configuration des règles et montez-les dans votre conteneur.
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版本
La variable d'environnement ENV ELASTALERT_VERSION existe dans le Dockerfile. La valeur par défaut est v0.1.38. Modifiez-la vers d'autres versions pour l'exécution.
docker -e ELASTALERT_VERSION=版本号
docker镜像地址
Image Docker
1.报警时间显示的是UTC时间
Cela est principalement dû au fait que logstash utilise l'heure UTC sous-jacente après avoir été transmise à Elasticsearch. La solution consiste à commencer avec le filtre logstash et à utiliser date ou grok pour personnaliser l'horodatage.
plugin de filtre de date :
filter {
date {
match = > [ " timestamp " , " dd/MMM/yyyy:HH:mm:ss " ]
target = > " @timestamp "
locale= > " en "
timezone = > " UTC "
}
}
L'horodatage ci-dessus fait référence au champ d'heure de votre journal, et le "jj/MMM/aaaa:HH:mm:ss" derrière fait référence au format de votre journal. Cela dépend de votre journal et peut ne pas être le même que le mien.
plug-in de filtre de date
filter {
grok {
match = > { " message " = > " (?<logtime>d{4}-d{2}-d{2} d{2}:d{2}:d{2},d{1,3}) " }
}
}
Ce qui précède n'est qu'une simple correspondance de l'heure dans le journal. Cela dépend de votre propre situation. Voici un champ d'heure de journalisation ajouté. Puisque le champ est modifié, celui de votre plug-in d'alarme.
alert_text_args:
- @timestamp
- message
@timestamp doit également être remplacé par le champ logtime.
2.如何给企业微信多个部门发送告警
Nous n'avons pas encore le temps de le faire. Une solution de compromis consiste à écrire plusieurs règles dans es_rules pour implémenter indirectement l'envoi d'alarmes pour plusieurs ID de service.
3.企业微信收不到报警
Il s'agit principalement de vérifier si vos règles d'alarme ont été déclenchées, et dans un deuxième temps si les configurations de votre compte officiel WeChat sont correctes.
伸出您可爱的双手支持一下作者呗!给他一点继续更新下去的勇气!