问题:


  大型企业应用规模大,调试 / 解决问题由于在生产环境中不会有开发环境的调试工具,如果需要模拟还原当时的环境,

目前的解决办法是进行日志记录

  日志记录的常用方式:

解决:


  ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。

  和传统的日志处理方案相比,ELK Stack 具有如下几个优点:

  •   处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
  •   配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
  •   检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
  •   集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;

  传统的日志收集方案有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)日志管理的更多相关文章

  1. .net core 微服务之日志落盘设计

    原文:.net core 微服务之日志落盘设计 目录 1.设计目标 2.日志流程 3.串联请求事务 3.1 请求ID 3.2 处理服务器.服务 3.3 处理接口名 3.4 日志的发生时间 3.5 接口 ...

  2. ServiceStage-华为微服务开发与管理平台

    前言 在上一篇文章一年前,我来到国企搞IT 中,和小伙伴分享了我在国企这一年当中的所见,所闻,所想,很高兴能够获得很多同道中人的共鸣.过去一年,我的很大一部分工作都投入到公司技术平台的建设中.Jira ...

  3. .Net Core with 微服务 - Seq 日志聚合

    上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心,来实现服务的注册与发现.那么本次我们讲会演示如何做日志聚合.日志聚合比较常用的有 ELK 等,但是这次我想要介绍的是一款比较小众 ...

  4. [Abp vNext微服务实践] - vue-element-admin管理Identity

    一.简介 abp vNext微服务框架中已经提供通用权限和用户角色管理模块,管理UI使用的是MVC模式,不适用于国内主打的MVVM开发模式.在前端框架选型后笔者决定改造abp vNext微服务框架中原 ...

  5. Blazor+Dapr+K8s微服务之状态管理

    1         状态管理服务器端接口 1.1         添加Dapr.AspNetCore包 在DaprTest1.Server项目中添加Dapr.AspNetCore包,该包实现了ASP. ...

  6. 从 1.5 开始搭建一个微服务框架——日志追踪 traceId

    你好,我是悟空. 前言 最近在搭一个基础版的项目框架,基于 SpringCloud 微服务框架. 如果把 SpringCloud 这个框架当做 1,那么现在已经有的基础组件比如 swagger/log ...

  7. 微服务-分布式日志系统Logstash部署

    参考资料: 1 .Logstash中文官网 2. 阿里云Elasticsearch> 最佳实践 > logstash部署 3. logstash.elasticsearch.kibana搭 ...

  8. 微服务-springboot日志配置

    springboot 默认会加载classpath:logback-spring.xml文件. springProfile 中的name名字对应application-xx.properties 中的 ...

  9. idea同时启动多个微服务模块进行管理

    1,打开IDEA项目中的 .idea 下 的workspace.xml 找到文件中的 RunDashboard 配置块,增加如下圈起来的地方 代码: <option name="con ...

随机推荐

  1. 2、Python文件操作工具 xlrd 工具

    #打开excel文档workbook = xlrd.open_workbook('..\cye.xls',encoding_override='utf-8') #获取sheet页信息sheet = w ...

  2. Java基础知识强化之集合框架笔记78:ConcurrentHashMap之 ConcurrentHashMap、Hashtable、HashMap、TreeMap区别

    1. Hashtable: (1)是一个包含单向链的二维数组,table数组中是Entry<K,V>存储,entry对象: (2)放入的value不能为空: (3)线程安全的,所有方法均用 ...

  3. Linux环境下GNU, GCC, G++编译器

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012823258/article/details/36890125 一.GNU GNU是" ...

  4. [SHOI2010]最小生成树

    题目 首先让其余所有边都减\(1\)和让自己加\(1\)没什么区别 考虑\(kruskal\)的过程 首先边权大于这条边的是不用考虑的 考虑把那些边权比这条边小的调节到比这条边大,这样就相当于在生成树 ...

  5. 【[CQOI2018]交错序列】

    这个题简直有毒,\(O((a+b)^3logn)\)的做法不卡常只比\(O(2^n*n)\)多\(10\)分 看到\(a\)和\(b\)简直小的可怜,于是可以往矩阵上联想 发现这个柿子有些特殊,好像可 ...

  6. 【QT】QString类型转换为const char*(toLatin1)

    Qstring str = "helloworld"; char *s; QByteArray ba = str.toLatin1(); s = ba.data(); toLati ...

  7. Odoo中的向导

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281320.html 一:向导及其效果 向导类似于弹窗,用于接收用户的输入,然后作出相应的处理. 二:定义向导 ...

  8. 4.12 Spark环境更新

    addJar方法是做什么的呢?它用于将Jar文件添加到Driver的RPC环境中. 通过addJar和addFile可以将各种任务执行所依赖的文件添加到Driver的RPC环境中, •小结 伴生对象是 ...

  9. BootStrap启动类

    来源 本文整理自 <Tomcat内核设计剖析>.<Tomcat结构解析> 加上自己的理解.源码来自 Tomcat8.5 版本 // org.apache.catalina.st ...

  10. 知乎TensorFlow入门学习记录

    知乎地址:https://zhuanlan.zhihu.com/p/30487008 import tensorflow as tf a=tf.placeholder(tf.int16) # 接受的数 ...