Spring cloud微服务安全实战-7-10ELK日志采集架构优化
ELK搭建起来。采集日志,展示。但是这个架构还有一些问题。
可用性的问题,springboot的应用,随着业务的增长会越来越多。logstash压力就会越来越大。大到一定的程度可能就会吧logstash压崩掉,日志就丢失。
日志信息的传播分享问题。走了ELK的架构,别的系统是不知道你写了什么日志的。比如说我有一个大数据实时分析的应用,spark之类的。他们需要实时的分析你在线的所有日志。比如说日志出现某个关键字的时候,我就报警,比如登陆日志发现有风险的用户登陆的时候,我要观察有风险的用户做了什么。
就是需要别的系统也知道整个应用这边发生的日志信息是什么。现在这个架构没法把日志信息传播出去提供给别人的。
中间价一个kafka。kafka是一个消息队列。我们所有的springboot的应用把日志发到kafka上。logstash从kafka读日志。就算你的日志再多,也指挥子在kafka这里堆积。logstash根据自己的处理能力,最大的处理能力有多少,一次就处理多少日志。这样引用不管怎么增长 都不会把kafka压死。kafka的性能好 吞吐量大。

有了kafka,日志在消息队列里面,有其他的应用,比如说在线分析或者是监控报警。我们可以接到kafka上去订阅那个日志的topic。其他系统也都能拿到日志的消息。他们就可以根据这些消息做其他的业务。这样日志处理的链路,才算一个比较成熟的链路。
kafka环境安装

把这个项目克隆到本地


我们真正要用的是这个文件。默认的docker-compose.yml会搭一个多接点的集群。我们这里用这个单节点的。docker-compose-single-broker.yml

注意这两个节点。ip要改成自己机器的ip

Kakfa_Create_topics:默认创建出来的队列。创建一个叫做test的队列。1个分区 1个复制。
启动docker
-f是指定一个配置文件。


logstash要改一下从kafka里面拿消息。springboot也要改,把消息送到kafka里面
logstash的修改。
原来我们从tcp的5千端口来输入。就是接受进来的日志信息的。

上面注释掉。改成下面的kafka的
id随便写,
bootstrap_servers:kafka的服务器在哪。
topics:就是从哪个topics里面接收日志信息。
auto_offset_reset:偏移量的设置,latest

kafka的地址是在这里配置的。端口是9092

重启ELK

orderAPI修改
要把日志发送到kafka的队列里面去。
首先pom.xml内加一个新的依赖。



之前我们加的LogStash的appender。直接把日志发给logStash

现在要修改发送到kafka上
我们重写appender

主键分区策略。

使用NoKey的策略

当你的kafka不可用的时候,不可达的时候,如何交互你的消息。 选择的是AsynchronousDeliveryStrategy。意思就是消息不可用的时候,消息就不给kafka了

kafka不可用 日志就输出到console里。

kafka的服务地址

启动测试
启动orderAPi


改成info输出到kafka里

重启orderAPi
打开kibana看一下。最新的一条日志 就是 启动orderAPi的

orderApi的控制台输出。

这就说明链路就通了。 日志是通过kafka的消息队列进到ELK里面的。
有了这样一个架构,其他的应用就可以订阅kafka的topics了。然后从里面拿到日志的信息。然后去做其他的事情。
结束
Spring cloud微服务安全实战-7-10ELK日志采集架构优化的更多相关文章
- Spring cloud微服务安全实战-7-9自定义日志采集的格式和内容
怎么来控制输出的日志的格式.并且从日志里面提取出来我想要的一些信息. 整个的message是一个大的json格式字符串. 虽然是可以通过关键字搜索到.但是日志看起来并不舒服. 在我们的控制台,日志实际 ...
- Spring cloud微服务安全实战_汇总
Spring cloud微服务安全实战 https://coding.imooc.com/class/chapter/379.html#Anchor Spring Cloud微服务安全实战-1-1 课 ...
- 《Spring Cloud微服务 入门 实战与进阶》
很少在周末发文,还是由于昨晚刚收到实体书,还是耐不住性子马上发文了. 一年前,耗时半年多的时间,写出了我的第一本书<Spring Cloud微服务-全栈技术与案例解析>. 时至今日,一年的 ...
- Spring Cloud微服务安全实战_00_前言
一.前言: 一直以来对服务安全都很感兴趣,所以就学习.这是学习immoc的 jojo老师的 <Spring Cloud微服务安全实战课程>的笔记,讲的很好. 课程简介: 二.最终形成的架 ...
- Spring Cloud微服务安全实战_4-5_搭建OAuth2资源服务器
上一篇搭建了一个OAuth2认证服务器,可以生成token,这篇来改造下之前的订单微服务,使其能够认这个token令牌. 本篇针对订单服务要做三件事: 1,要让他知道自己是资源服务器,他知道这件事后, ...
- Spring Cloud微服务安全实战_4-3_订单微服务&价格微服务
实现一个场景: 订单微服务: POM: <?xml version="1.0" encoding="UTF-8"?> <project xml ...
- Spring cloud微服务安全实战 最新完整教程
课程资料获取链接:点击这里 采用流行的微服务架构开发,应用程序访问安全将会面临更多更复杂的挑战,尤其是开发者最关心的三大问题:认证授权.可用性.可视化.本课程从简单的API安全入手,过渡到复杂的微服务 ...
- Spring cloud微服务安全实战-6-8sentinel限流实战
阿里2018年开源的. 简单来说就是干三件事,最终的结果就是保证你的服务可用,不会崩掉.保证服务高可用. 流控 先从最简单的场景来入手. 1.引用一个依赖, 2,声明一个资源. 3.声明一个规则 注意 ...
- Spring cloud微服务安全实战-6-4权限控制改造
授权,权限的控制 令牌里的scope包含fly就有权限访问.根据Oauth的scope来做权限控制, 要让@PreAuthorize生效,就要在启动类里面写一个注解. 里面有一个属性叫做,就是在方法的 ...
- Spring cloud微服务安全实战-6-2JWT认证之认证服务改造
首先来解决认证的问题. 1.效率低,每次认证都要去认证服务器调一次服务. 2.传递用户身份,在请求头里面, 3.服务之间传递请求头比较麻烦. jwt令牌. spring提供了工具,帮你在微服务之间传递 ...
随机推荐
- Python的正则表达式re模块
Python的正则表达式(re模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Python使用re模块提供了正则表达式处理的能力.如果对正则表达式忘记的一干二净的话,可以花费 ...
- javascript数据结构与算法——栈
前言: 栈就是和列表类似的一种数据结构,不过栈的特点是'后人先出'.栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样操作很快,而且容易实现. 1. 栈的介绍: 栈是一种特殊的列表,栈内的 ...
- ztree根据关键字模糊搜索
html页面需要引入以下资源 <!-- jquery包,ztree依赖jquery --> <script type="text/javascript" src= ...
- python2和python3切换
(1)需要将python2和python3的环境变量设置好 (2)重命名主程序 然后我们分别把两个版本的 Python 主程序 exe 改下名,3.6 版本的改名为 python3.exe,2.7 版 ...
- 关于AndroidStudio的apk打包遇到的问题记录
12月份末尾,想来个总结,主要是得记一些重要的. 首先就得是AndroidStudi内的apk打包,就是弄当前项目app的安装包出来. 下面就说下具体步骤和注意问题. 首先 : 看到AndroidSt ...
- 小a与军团模拟器
题目描述 9102 年伊始,小a觉得山羊模拟器,乞丐模拟器之类的都太低级了,所以想自己建立一个征战天下的军团模拟器. 军团模拟器是在一个城市数为N的国家中运行的,每个城市都会通过一些道路和其他所有城市 ...
- Win如何查看某个端口被谁占用并停掉
第一步在我们的电脑上按win+R键打开运行,输入cmd, 第二步进去命令提示符之后,输入“netstat -ano”,按回车键,查出所有端口,如下图所示: 第三步如果我们想找8089端口,输入nets ...
- LeetCode 959. Regions Cut By Slashes
原题链接在这里:https://leetcode.com/problems/regions-cut-by-slashes/ 题目: In a N x N grid composed of 1 x 1 ...
- Windbg命令的语法规则系列(三)
五.源文件行语法 可以将源文件行号指定为MASM表达式的全部或部分.这些数字计算出与该源代码行对应的可执行代码的偏移量.不能使用源代码行作为C++表达式的一部分.必须用重音符(`)将源文件和行号表达式 ...
- nexus 3.17.0 简单说明
nexus 在6.24 发布了3.17.0 ,同时包含了好多新的特性 以下为一些主要变动: routing rules 可以增强repo 的安全 apt repo 格式的支持 可以方便的为ubuntu ...