申请企业微信公众号在这里我就不详细说明了,大家可以看看网上的教程去申请
下面主要介绍一下该插件的使用方法
第一步:
首先你要确保你已经安装好了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
คำสั่งนี้จะสร้างดัชนีใน elasticsearch เพื่อให้ ElastAlert สามารถบันทึกข้อมูลและข้อมูลเมตาเกี่ยวกับการสืบค้นและการแจ้งเตือนกลับไปยัง 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版本
ตัวแปรสภาพแวดล้อม ENV ELASTALERT_VERSION มีอยู่ใน Dockerfile ค่าเริ่มต้นคือ v0.1.38 แก้ไขเป็นเวอร์ชันอื่นเพื่อดำเนินการ
docker -e ELASTALERT_VERSION=版本号
docker镜像地址
ภาพนักเทียบท่า
1.报警时间显示的是UTC时间
สาเหตุหลักมาจากการที่ logstash ใช้เวลา UTC พื้นฐานหลังจากส่งผ่านไปยัง Elasticsearch วิธีแก้ไขคือเริ่มต้นด้วยตัวกรอง logstash และใช้วันที่หรือ 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 ของคุณถูกต้องหรือไม่
伸出您可爱的双手支持一下作者呗!给他一点继续更新下去的勇气!