ELK日志监控平台告警升级(邮件+钉钉)


前言

近期,邮件告警通知无法送达,导致部分错误信息开发人员没有及时收到,触发了手动电话通知机制(客户,你懂得)。这个锅我背,之前好好的,突然前段时间就不好使了(脚本什么的并没有动过)。快周末了,重新调整了一下告警通知,顺便加入钉钉机器人监控报警。

服务配置

服务器:192.168.1.180
访问地址:http://logs.52itstyle.com

相关软件

ELK(ElasticSearch、Logstash、Kibana)、Nginx、sendmail、钉钉

告警通知

邮件 + 钉钉通知

logstash 脚本:

input {
        redis {
                host => "192.168.1.180"
                port => 6379
                data_type => "list"
                key => "logstash-tomcat-error"
                type => "redis-input"
                password => "123456"
                db => 0
        }
}
output {
        elasticsearch {
               hosts => ["192.168.1.180:9200"]
        }
        exec {
            command  =>  "/home/logs/script/alarm.sh  %{type} %{message} %{path}"
        }
}
  • message:详细错误日志信息
  • type:项目名称标识
  • path:日志文件路径

告警脚本 alarm.sh:

#!/bin/sh
curl 'https://oapi.dingtalk.com/robot/send?access_token=*************' \
   -H 'Content-Type: application/json' \
   -d '
  {"msgtype": "text",
    "text": {
        "content":"'$1':错误预警,请登录日志平        "content":"'$1':错误预警,请登录日志平监控查看 http://logs.52itstyle.com"
监控查看 http://logs.52itstyle.com"
     }
  }';
  echo  $3 $1:$2 | mail -s  凌晨一点的bug,就知道养生  345849402@qq.com 10000@qq.com;

钉钉告警

钉钉监控

注意事项

  • linux shell多条命令使用;分隔
  • linux shell中curl发送post请求json,数据里变量要用''括起来
  • 钉钉机器人,对于message信息处理不友好,空格以后的文本会被截取,暂且使用邮件通知

参考

https://blog.52itstyle.com/archives/679/

https://blog.52itstyle.com/archives/2029/

https://www.cnblogs.com/landhu/p/7048255.html

https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Ylfehg&treeId=257&articleId=105735&docType=1

qrcode_for_gh_bf7a27ade681_258.jpg

作者: 小柒

出处: https://blog.52itstyle.com

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(345849402@qq.com)咨询。