申请企业微信公众号在这里我就不详细说明了,大家可以看看网上的教程去申请
下面主要介绍一下该插件的使用方法
第一步:
首先你要确保你已经安装好了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를 참조하세요.
시작하다
docker run -d hellolinux/elastalert_wechat_plugin:latest
镜像自定义配置文件部署
Git 코드 https://github.com/Hello-Linux/elastalert_wechat_plugin.git를 다운로드하세요. 내부에 구성 파일과 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镜像地址
도커 이미지
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 공식 계정의 구성이 올바른지 확인하기 위한 것입니다.
伸出您可爱的双手支持一下作者呗!给他一点继续更新下去的勇气!