• ELK基于ElastAlert实现日志的微信报警 ---docker环境


    参考网址:https://github.com/anjia0532/elastalert-docker

    1.拉取镜像:

    docker pull anjia0532/elastalert-docker:v0.2.4
    

    2.启动容器,根据es实际情况来决定启动参数中是否要设置es访问用户名和密码,我这边设置了
    具体使用啥参数,参考网址上有说明

    docker run -d -e"ELASTICSEARCH_HOST=192.168.75.21" 
        -e"ELASTICSEARCH_USER=elastic" 
        -e"ELASTICSEARCH_PASSWORD=IjGj8QwWYeXY7rVoLLQ6" 
        -e"CONTAINER_TIMEZONE=Asia/Shanghai"  
        -e"TZ=Asia/Shanghai" 
        --name es1 anjia0532/elastalert-docker:v0.2.4
    

    3.观察启动后的情况

    首先在kibana上查看索引情况,会发现自动创建几个以elastalert开头的索引,效果跟手动执行命令:elastalert-create-index一样

    容器日志中也会有相应的显示信息

    其次,登陆到容器中,会发现容器默认工作目录是:/opt/elastalert

    查看config.yaml文件内容,效果跟手动配置config.yaml文件内容类似

    config.yaml文件中的配置可以在启动容器的时候进行指定,参考网址上有详细说明,个别参数的默认配置可以跟config.yaml文件中的参数一 一对应

    然后发现容器中/opt/elastalert/rules目录下为空,也就是配置告警规则的目录
    手动创建一个微信告警规则文件,wechat.yaml

    容器日志中能看到详细的添加信息

    手动往filebeat监控的日志文件中添加error的消息,触发报警

    企业微信收到的消息,内容跟微信模板一样

    总结

    可以在启动容器的时候把rules告警规则目录从宿主机上挂载进去,这样就不用每次登陆进容器添加告警规则了

    docker run -d -e"ELASTICSEARCH_HOST=192.168.75.21" 
        -e"ELASTICSEARCH_USER=elastic" 
        -e"ELASTICSEARCH_PASSWORD=IjGj8QwWYeXY7rVoLLQ6" 
        -e"CONTAINER_TIMEZONE=Asia/Shanghai"  
        -e"TZ=Asia/Shanghai" 
        -v /mnt/elastalert/rules:/opt/elastalert/rules 
        --name es1 anjia0532/elastalert-docker:v0.2.4
    

    或者事先在宿主机的/mnt/elastalert/rules目录下创建好报警规则,或者等容器启动后再在宿主机的/mnt/elastalert/rules目录创建报警规则都可以

  • 相关阅读:
    QtDBus快速入门
    论Qt容器与STL
    JS中的!=、== 、!==、===的用法和区别
    JS操作JSON总结
    select2使用方法总结
    Entity Framework插入数据报错:Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
    Windows登录类型及安全日志解析
    <script type="text/html"></script> js模版使用
    在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别
    关于session,cookie,Cache
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13617930.html
Copyright © 2020-2023  润新知