日志分析 / 系统运维

Logstash实现邮箱及机器人日志告警

浅时光博客 · 10月11日 · 2021年 · · 6.4w 次已读

一、场景说明

在我们的生产环境中,为了保证业务系统稳定高效的运行,除了日常的服务器、网络等的监控之外,还有一个最重要的就是业务日志,往往业务系统出现问题都会首先在业务日志中呈现出来,所以日志监控是确保业务文章来源(Source):https://dqzboy.com系统可以高效稳定对外提供服务的关键,而且我们在做项目开发时,团队也会对日志打印的格式进行统一规范;在日志采集这块大多项目中都是通过ELK这款开源的日志采集系统实现对业务以及系统等关键性日志进行采集展示的;

日志告警实现其实有个插件,叫做ElastAlert,这款插件是Yelp 公司基于python开发的ELK 日志报警插件;本篇文章,我是通过logstash中去过滤日志关键词进行告警的,实现告警信息通过邮箱和企业微信机器人的方式进行通知。

这里呢,我只是提供一个简单的实现方式的思路,不一定完全适合你的项目,再一个就是ELK这个可研究性太多了,还是需要大家自己去琢磨研究了!

  • 说明:这里我是基于Nginx的日志进行演示的,ELK的安装以及Nginx日志采集可以查看之前我写的文章。
文章来源(Source):浅时光博客

二、邮箱告警

1、创建片段文件

  • logstash的配置目录下创建一个Nginx的片段文件
  • 这段配置,主要是通过判断message中的304状态码然后触发告警
温馨提示: 隐藏内容,请在本页留言并刷新页面查看。登入账号需绑定邮箱! 点击此处绑定邮箱

注意:添加邮箱配置后必须重启logstash才会生效

2、测试邮箱告警

  • 浏览器多次访问Nginx页面。然后查看ES是否已经创建了对应的索引,如果有了索引,然后查看邮箱是否接收到了告警邮件
  • 以下方式运行logstash会把日志信息打印在前台,有助于我们进行测试

[root@logstash ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/nginx-log.conf
  • 查看ES是否创建了索引
[root@es-node1 ~]# curl -sXGET --user elastic:dqKxwJy3PKjCROUY4XZM http://192.168.66.14:9200/_cat/indices?v
  • filebeat所运行的节点可以先停止通过systemd启动的进程,然后以命令行方式启动,可以进行测试查看实时采集的日志信息,有助于我们排错
  • 检查邮箱,邮箱中已经收到了告警邮件

三、企业微信告警

  • 我们首先需要在企业微信群组中创建一个群机器人,然后获取到机器人的token,最后在logstash中配置调用机器人token实现告警
  • 注意:logstash所在服务器必须可以连接到外网,不然无法发送告警信息到机器人

这块,其实只需要将上面邮箱的配置改为企业微信机器人相关的配置即可,配置如下

温馨提示: 隐藏内容,请在本页留言并刷新页面查看。登入账号需绑定邮箱! 点击此处绑定邮箱

下图展示的是钉钉机器人的告警截图,实现方式与企业微信类似,企业微信token改为钉钉机器人token即可。


本文作者:浅时光博客
原文链接:https://www.dqzboy.com/8858.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可,转载时请以>超链接形式标明文章原始出处和作者信息
免责声明:本站内容仅供个人学习与研究,严禁用于商业或非法目的。请在下载后24小时内删除相应内容。继续浏览或下载即表明您接受上述条件,任何后果由用户自行承担。

20 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. jingke上海2024-7-19 · 20:02

    非常好,内容不错

  2. 柠萌@江苏·南京2024-5-9 · 18:03

    谢谢大佬分享,受益匪浅

  3. 小wyman广东·广州2024-3-14 · 14:28

    谢谢大佬分享

  4. 小wyman广东·广州2024-3-14 · 14:23

    非常有用,值得参考

  5. Mr.Bean上海2024-3-4 · 18:41

    谢谢大佬分享,受益匪浅

  6. liu_cns北京2024-1-24 · 13:27

    谢谢大佬分享,受益匪浅

  7. 莫欺少年穷北京2023-8-10 · 10:42

    谢谢大佬分享,受益匪浅

  8. Wikt福建·福州2023-7-26 · 13:37

    谢谢大佬分享,非常好

  9. SunShine_568山东·烟台2023-6-7 · 19:53

    谢谢大佬分享

  10. Bsfs_無常广东·东莞2023-5-13 · 17:44

    谢谢大佬分享