一、场景说明
在我们的生产环境中,为了保证业务系统稳定高效的运行,除了日常的服务器、网络等的监控之外,还有一个最重要的就是业务日志,往往业务系统出现问题都会首先在业务日志中呈现出来,所以日志监控是确保业务系统可以高效稳定对外提供服务的关键,而且我们在做项目开发时,团队也会对日志打印的格式进行统一规范;在日志采集这块大多项目中都是通过ELK这款开源的日志采集系统实现对业务以及系统等关键性日志进行采集展示的;
日志告警实现其实有个插件,叫做ElastAlert,这款插件是Yelp 公司基于python开发的ELK 日志报警插件;本篇文章,我是通过logstash中去过滤日志关键词进行告警的,实现告警信息通过邮箱和企业微信机器人的方式进行通知。
这里呢,我只是提供一个简单的实现方式的思路,不一定完全适合你的项目,再一个就是ELK这个可研究性太多了,还是需要大家自己去琢磨研究了!
- 说明:这里我是基于Nginx的日志进行演示的,ELK的安装以及Nginx日志采集可以查看之前我写的文章。
二、邮箱告警
1、创建片段文件
- 在
logstash的配置目录下创建一个Nginx的片段文件 - 这段配置,主要是通过判断
message中的304状态码然后触发告警
温馨提示: 隐藏内容,请在本页留言并刷新页面查看。登入账号需绑定邮箱! 点击此处绑定邮箱
注意:添加邮箱配置后必须重启logstash才会生效
2、测试邮箱告警
- 浏览器多次访问Nginx页面。然后查看ES是否
文章来源(Source):https://dqzboy.com 已经创建了对应的索引,如果有了索引,然后查看邮箱是否接收到了告警邮件
- 以下方式运行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所在服务器必须可以连接到外网,不然无法发送原文链接:https://dqzboy.com 告警信息到机器人
这块,其实只需要将上面邮箱的配置改为企业微信机器人相关的配置即可,配置如下
温馨提示: 隐藏内容,请在本页留言并刷新页面查看。登入账号需绑定邮箱! 点击此处绑定邮箱
下图展示的是钉钉机器人的告警截图,实现方式与企业微信类似,企业微信token改为钉钉机器人token即可。



非常好,内容不错
谢谢大佬分享,受益匪浅
谢谢大佬分享
非常有用,值得参考
谢谢大佬分享,受益匪浅
谢谢大佬分享,受益匪浅
谢谢大佬分享,受益匪浅
谢谢大佬分享,非常好
谢谢大佬分享
谢谢大佬分享