申请企业微信公众号在这里我就不详细说明了,大家可以看看网上的教程去申请
下面主要介绍一下该插件的使用方法
第一步:
首先你要确保你已经安装好了python的报警框架elastalert(https://github.com/Yelp/elastalert.git)
具体的安装方法可以参考官方的文档https://elastalert.readthedocs.io/en/latest/running_elastalert.html
Abaixo tomo a instalação do repositório clone como exemplo.
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
Este comando criará um índice no elasticsearch para que o ElastAlert possa salvar informações e metadados sobre sua consulta e alertas no Elasticsearch. Esta não é uma etapa obrigatória, mas é altamente recomendada. Porque para auditoria, o teste é útil e reiniciar o elastalert não afeta a contagem e o envio de alertas. Por padrão, o índice criado é denominado elastalert_status
第五步
启动
python2.7 -m elastalert.elastalert --verbose --config config/config.yaml --rule es_rules/wechart.yaml
config指定配置文件路径 rule指定你的微信报警文件
Se você precisar de instruções e processos de instalação mais detalhados, consulte meu Toutiao Today Toutiao
comece
docker run -d hellolinux/elastalert_wechat_plugin:latest
镜像自定义配置文件部署
Baixe o código git https://github.com/Hello-Linux/elastalert_wechat_plugin.git. Existem arquivos config e es_rules dentro. Modifique os arquivos de configuração e os arquivos de configuração de regras e monte-os em seu contêiner.
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版本
A variável de ambiente ENV ELASTALERT_VERSION existe no Dockerfile. O valor padrão é v0.1.38. Modifique-o para outras versões para execução.
docker -e ELASTALERT_VERSION=版本号
docker镜像地址
Imagem do Docker
1.报警时间显示的是UTC时间
Isso se deve principalmente ao fato de que o logstash usa o horário UTC subjacente após ser passado para o Elasticsearch. A solução é começar com o filtro logstash e usar date ou grok para personalizar o carimbo de data/hora.
plugin de filtro de data:
filter {
date {
match = > [ " timestamp " , " dd/MMM/yyyy:HH:mm:ss " ]
target = > " @timestamp "
locale= > " en "
timezone = > " UTC "
}
}
O carimbo de data/hora acima se refere ao campo de hora em seu log, e o "dd/MMM/yyyy:HH:mm:ss" atrás dele se refere ao formato do seu log. Isso depende do seu log e pode não ser igual ao meu.
plug-in de filtro de data
filter {
grok {
match = > { " message " = > " (?<logtime>d{4}-d{2}-d{2} d{2}:d{2}:d{2},d{1,3}) " }
}
}
O texto acima é apenas uma correspondência simples da hora no log. Depende da sua situação. Aqui está um campo de logtime adicionado, já que o campo foi alterado, aquele em seu plug-in de alarme.
alert_text_args:
- @timestamp
- message
@timestamp também precisa ser substituído pelo campo logtime.
2.如何给企业微信多个部门发送告警
Ainda não há tempo para fazer isso. Uma solução de compromisso é escrever várias regras em es_rules para implementar indiretamente o envio de alarmes para vários IDs de departamento.
3.企业微信收不到报警
Isto serve principalmente para verificar se suas regras de alarme foram acionadas e, em segundo lugar, se as configurações em sua conta oficial do WeChat estão corretas.
伸出您可爱的双手支持一下作者呗!给他一点继续更新下去的勇气!