申请企业微信公众号在这里我就不详细说明了,大家可以看看网上的教程去申请
下面主要介绍一下该插件的使用方法
第一步:
首先你要确保你已经安装好了python的报警框架elastalert(https://github.com/Yelp/elastalert.git)
具体的安装方法可以参考官方的文档https://elastalert.readthedocs.io/en/latest/running_elastalert.html
Im Folgenden nehme ich die Installation des Klon-Repositorys als Beispiel.
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
Dieser Befehl erstellt einen Index in Elasticsearch, sodass ElastAlert Informationen und Metadaten zu seiner Abfrage und seinen Warnungen zurück in Elasticsearch speichern kann. Dies ist kein erforderlicher Schritt, wird aber dringend empfohlen. Denn für die Überwachung sind Tests nützlich und ein Neustart von elastalert hat keinen Einfluss auf die Zählung und das Versenden von Warnungen. Standardmäßig heißt der erstellte Index elastalert_status
第五步
启动
python2.7 -m elastalert.elastalert --verbose --config config/config.yaml --rule es_rules/wechart.yaml
config指定配置文件路径 rule指定你的微信报警文件
Wenn Sie einen detaillierteren Installationsprozess und Anweisungen benötigen, lesen Sie bitte meinen Toutiao Today Toutiao
Start-up
docker run -d hellolinux/elastalert_wechat_plugin:latest
镜像自定义配置文件部署
Laden Sie den Git-Code herunter: https://github.com/Hello-Linux/elastalert_wechat_plugin.git. Darin befinden sich Konfigurationsdateien und Regelkonfigurationsdateien, die Sie in Ihren Container einbinden können.
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版本
Die Umgebungsvariable ENV ELASTALERT_VERSION ist in der Docker-Datei vorhanden. Der Standardwert ist v0.1.38. Ändern Sie sie zur Ausführung.
docker -e ELASTALERT_VERSION=版本号
docker镜像地址
Docker-Image
1.报警时间显示的是UTC时间
Dies ist hauptsächlich auf die Tatsache zurückzuführen, dass Logstash nach der Übergabe an Elasticsearch die zugrunde liegende UTC-Zeit verwendet. Die Lösung besteht darin, mit dem Logstash-Filter zu beginnen und Datum oder Grok zu verwenden, um den Zeitstempel anzupassen.
Datumsfilter-Plugin:
filter {
date {
match = > [ " timestamp " , " dd/MMM/yyyy:HH:mm:ss " ]
target = > " @timestamp "
locale= > " en "
timezone = > " UTC "
}
}
Der Zeitstempel oben bezieht sich auf das Zeitfeld in Ihrem Protokoll, und das „dd/MMM/yyyy:HH:mm:ss“ dahinter bezieht sich auf Ihr Protokollformat. Dies hängt von Ihrem Protokoll ab und stimmt möglicherweise nicht mit meinem überein.
Datumsfilter-Plug-in
filter {
grok {
match = > { " message " = > " (?<logtime>d{4}-d{2}-d{2} d{2}:d{2}:d{2},d{1,3}) " }
}
}
Das Obige ist nur ein einfacher Abgleich der Zeit im Protokoll. Es hängt von Ihrer eigenen Situation ab. Da das Feld geändert wurde, wird es in Ihrem Alarm-Plug-in angezeigt
alert_text_args:
- @timestamp
- message
@timestamp muss außerdem durch das Feld logtime ersetzt werden.
2.如何给企业微信多个部门发送告警
Dafür ist noch keine Zeit. Eine Kompromisslösung besteht darin, mehrere Regeln in es_rules zu schreiben, um das Senden von Alarmen für mehrere Abteilungs-IDs indirekt zu implementieren.
3.企业微信收不到报警
Dies dient hauptsächlich der Überprüfung, ob Ihre Alarmregeln ausgelöst wurden, und zweitens, ob die Konfigurationen in Ihrem offiziellen WeChat-Konto korrekt sind.
伸出您可爱的双手支持一下作者呗!给他一点继续更新下去的勇气!