申请企业微信公众号在这里我就不详细说明了,大家可以看看网上的教程去申请
下面主要介绍一下该插件的使用方法
第一步:
首先你要确保你已经安装好了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. Это не обязательный шаг, но настоятельно рекомендуется. Потому что для аудита полезно тестирование, а перезапуск elasalert не влияет на подсчет и отправку оповещений. По умолчанию созданный индекс называется 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. Внутри находятся файлы конфигурации и 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 существует в файле Docker. Значение по умолчанию — v0.1.38. Измените ее на другие версии для выполнения.
docker -e ELASTALERT_VERSION=版本号
docker镜像地址
Докер-образ
1.报警时间显示的是UTC时间
В основном это связано с тем, что logstash использует базовое время UTC после передачи в Elasticsearch. Решение состоит в том, чтобы начать с фильтра logstash и использовать date или grok для настройки отметки времени.
Плагин фильтра даты:
filter {
date {
match = > [ " timestamp " , " dd/MMM/yyyy:HH:mm:ss " ]
target = > " @timestamp "
locale= > " en "
timezone = > " UTC "
}
}
Указанная выше временная метка относится к полю времени в вашем журнале, а стоящее за ней «дд/МММ/гггг:ЧЧ:мм:сс» относится к формату вашего журнала. Это зависит от вашего журнала и может не совпадать с моим.
плагин фильтра даты
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, чтобы косвенно реализовать отправку сигналов тревоги для нескольких идентификаторов отделов.
3.企业微信收不到报警
В основном это делается для того, чтобы проверить, сработали ли ваши правила сигнализации, и, во-вторых, правильность конфигураций в вашей официальной учетной записи WeChat.
伸出您可爱的双手支持一下作者呗!给他一点继续更新下去的勇气!