zoukankan      html  css  js  c++  java
  • elk使用不足及弥补报警措施

    全部都是6.6.2版本,就这还是没有敢选太新的

    场景:每个收集点部署filebeat收集响应日志,然后发送到logstash,logstash发送到elasticsearch,和file,这里插一句,elasticsearch没有花很多时间研究,有点不深入,logstash各个插件和语法有点头痛,kibana前端展示

    注意:elk打的招牌是开源,免费版的很多功能都限制了,我目前接触到的就是不能提供报警功能,可以通过elastalert发送邮件报警,但是现代企业我估计用邮件的比较少了,几乎都是一些协同办公软件机器人.elk实现不了,需要够买商业版的

    那我就头大,各个报警措施研究了一番,可能水平有限,也没弄出什么名堂,最后是通过脚本来实现的报警

    • 脚本实现日志错误报警
      • 要求:
        1. 要及时
        2. 错误不能重复
        3. 能发送到办公软件机器人

    我这里目前的要求就这些,我就自己写了个shell给实现了,贴上来

    #!/bin/bash
    cd /PATH/log
    A=`cat error.log | grep -w ERROR | awk '{print $0 "
    -------------------------------------------------------------"}'`
    
    COUNT=`cat error.log | grep -w ERROR | wc -l`
    if [ $COUNT -gt 0 ]; then
      #statements
      curl 'https://hook.************.com/=bwD9B/&&&&&&&/***************************' 
              -H 'Content-Type: application/json' 
              -d '
            {
              "text": "LOGALARM",
              "attachments": [
                {
                  "text": "'"$A"'",
                  "color": "#ff0000"
                }
              ]
            }'
    
    rm -rf cuda_error.log
    
    fi
    

    逻辑不是很复杂,简单描述下

    判断错误行,是否大于0,我这里要是不判断,那个hook就会发一个空消息,避免这个因素

    满足要求,就执行 hook 读取变量,注意符号,然后删除错误日志,避免重复(我这里删除是因为是logstash输出的,不影响我原来的日志文件)

    交流可留言

  • 相关阅读:
    转:配置nodemanager启动weblogic服务器
    SUSE Linux下新建Weblogic 10.3非admin服务
    转weblogic 10.3新建域
    mysql 导出慢
    sql 查询效率
    js isnull 赋值方法
    linux 启动weblogic的某服务报错
    linux下oracle 10g的sqlplus无法使用
    union all 取代 select中的case when 提高查询效率
    php版判断是否为ajax请求的小demo
  • 原文地址:https://www.cnblogs.com/jojoword/p/11603308.html
Copyright © 2011-2022 走看看