微服务(SOP)日志管理
问题:
大型企业应用规模大,调试 / 解决问题由于在生产环境中不会有开发环境的调试工具,如果需要模拟还原当时的环境,
目前的解决办法是进行日志记录
日志记录的常用方式:
- 使用SpringAop进行切入,有针对性的对关键操作进行记录【http://www.cnblogs.com/hackxiyu/p/8072314.html】
- 使用ELK工具进行集中式日志管理
解决:
参考文章:基于微服务的日志系统【http://www.fx361.com/page/2017/0315/1185754.shtml】
ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。
和传统的日志处理方案相比,ELK Stack 具有如下几个优点:
- 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
- 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
- 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
- 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
参考文章:微服务的性能监控与日志收集【https://baijia.baidu.com/s?old_id=478661】
传统的日志收集方案有Splunk、Logstash、Flume、Fluentd等,其中Splunk和Fluentd被列入了Docker官方文档里。Fluentd是一个出来时间不长,但是对传统收集工具 Logstash挑战比较大的收集方案,同时它也在去年被亚马逊评为最好的日志收集工具。Splunk则是一套基于商业的解决方案,一般只有大型企业才会使用,这种方案是目前最好的,但也是最昂贵的。
在其他方案中,传统的解决方案最常见的是Logstash,它的配合工具一般是Elasticsearch和Kibana。图2是一张经典的ELK架构图,首先在每一个节点上部署一个Logstash数据端,称为shipper,然后搭一个redis的缓存,在redis缓存后面再用另一个Logstash去做索引,称为indexer。之所以有这样一个架构是因为Logstash本身运行效率率比较低,用的是JRuby语言,它使得索引不能在每一个客户端去做,因为会占用很大的的内存。
Fluentd的方案与Logstash差不多,但是它可以省掉Indexer这层,而且它的核心代码是C++写的,从效率上说会比Logstash高很多。除此之外,Fluentd是除了Splunk以外唯一一个在Docker官方日志驱动里面的工具。一般来说,日志收集是通过收集文件的方式进行的,因为Docker会默认将容器的日志放到一个指定的目录里。Logstash会去搜集目录里面的日志,但是存在一个问题,就是Logstash在搜集的时候是每隔一定的时间在目录里面做一次查询,这样很可能因为监测的服务出故障造成日志丢失。Fluentd则不仅支持Logstash那种文件的方式去搜集日志,还可以通过Docker的Fluentd driver直接定向搜集,但是搜集的日志Docker log命令是看不到的。对用户而言,可以根据实际的应用产品,对这两种方式进行选择。
微服务(SOP)日志管理的更多相关文章
- .net core 微服务之日志落盘设计
原文:.net core 微服务之日志落盘设计 目录 1.设计目标 2.日志流程 3.串联请求事务 3.1 请求ID 3.2 处理服务器.服务 3.3 处理接口名 3.4 日志的发生时间 3.5 接口 ...
- ServiceStage-华为微服务开发与管理平台
前言 在上一篇文章一年前,我来到国企搞IT 中,和小伙伴分享了我在国企这一年当中的所见,所闻,所想,很高兴能够获得很多同道中人的共鸣.过去一年,我的很大一部分工作都投入到公司技术平台的建设中.Jira ...
- .Net Core with 微服务 - Seq 日志聚合
上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心,来实现服务的注册与发现.那么本次我们讲会演示如何做日志聚合.日志聚合比较常用的有 ELK 等,但是这次我想要介绍的是一款比较小众 ...
- [Abp vNext微服务实践] - vue-element-admin管理Identity
一.简介 abp vNext微服务框架中已经提供通用权限和用户角色管理模块,管理UI使用的是MVC模式,不适用于国内主打的MVVM开发模式.在前端框架选型后笔者决定改造abp vNext微服务框架中原 ...
- Blazor+Dapr+K8s微服务之状态管理
1 状态管理服务器端接口 1.1 添加Dapr.AspNetCore包 在DaprTest1.Server项目中添加Dapr.AspNetCore包,该包实现了ASP. ...
- 从 1.5 开始搭建一个微服务框架——日志追踪 traceId
你好,我是悟空. 前言 最近在搭一个基础版的项目框架,基于 SpringCloud 微服务框架. 如果把 SpringCloud 这个框架当做 1,那么现在已经有的基础组件比如 swagger/log ...
- 微服务-分布式日志系统Logstash部署
参考资料: 1 .Logstash中文官网 2. 阿里云Elasticsearch> 最佳实践 > logstash部署 3. logstash.elasticsearch.kibana搭 ...
- 微服务-springboot日志配置
springboot 默认会加载classpath:logback-spring.xml文件. springProfile 中的name名字对应application-xx.properties 中的 ...
- idea同时启动多个微服务模块进行管理
1,打开IDEA项目中的 .idea 下 的workspace.xml 找到文件中的 RunDashboard 配置块,增加如下圈起来的地方 代码: <option name="con ...
随机推荐
- 【转】多线程Core Data
原文地址:http://www.cocoanetics.com/2012/07/multi-context-coredata/ Multi-Context CoreData When you star ...
- css3—产品列表之鼠标滑过效果
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8" /> <title&g ...
- 「bzoj 4025: 二分图」
题目 显然二分图没有奇环 于是考虑使用并查集维护一下看看是否存在奇环 我们可以考虑加权并查集,维护出\(x\)到\(fa_x\)的实际距离 由于我们只需要考虑奇偶性,于是我们处理出到根的路径异或一下就 ...
- maven 编译替换占位符
首先开启资源配置的插件,由此插件替换占位符 <plugin> <groupId>org.apache.maven.plugins</groupId> <art ...
- UVA - 11987 Almost Union-Find(带删除的并查集)
I hope you know the beautiful Union-Find structure. In this problem, you’re to implement something s ...
- Docker 常用命令——容器
1.新建并启动容器 docker run [option] images [command][arg] #根据镜像新建容器并运行.如果本地没有镜像则从docker hub上拉取. --name ...
- oracle中查看一张表是否有主键,主键在哪个字段上
利用Oracle中系统自带的两个视图可以实现查看表中主键信息,语句如下:select a.constraint_name, a.column_name from user_cons_columns a ...
- Xcode 控制台打印Unicode字符串转换为中文
在Xcode的控制台里直接打印一个数组或者字典,输出的都是一些Unicode的编码,不方便调试. 要想看到中文,则要去获取对应的key或者数组下标.得到具体某一个对象才能看到中文,给我们调试起来 ...
- Apache安装排错
今天安装一下Apache,发现报错,且在网上没有找到相关解决方法,所以记录一下 安装步骤:将下载好的apache包放置到要放置的目录中,最好是盘根目录下,然后命令行下进入到apache下面的bin目录 ...
- 【2016 ICPC亚洲区域赛北京站 E】What a Ridiculous Election(BFS预处理)
Description In country Light Tower, a presidential election is going on. There are two candidates, ...