web 系统是典型的分布式部署,由此对其运行状况,硬件运转情况监控也显得尤为重要,这些监控数据表面上对业务运行没有多大的用处(属于基础数据),但正是这些基础数据形成了业务“流”。比如,用户搜索爱好,浏览商品爱好,购买爱好、分布,用户成员之间的关系(在推荐系统中比较常见)。

现在成熟的web监控系统,有logstash—开源免费,splunk—不开源,有免费的版本但数据大小有限制,现在对比下这两个系统,我跳过这两个系统安装步奏。

LogStash

1、定义: 时间+事件=日志;

2、语言实现:

客户端用ruby实现,依赖JRuby等,嵌入了elasticsearch,形成logstash-1.2.2-flatjar.jar 大约20M的包,个人而言很不喜欢这种方式,在生产环境中是不会把存储和搜集放到一个地方的,但官方却加入了es且你不能修改配置。

3、体系架构:

可以看出这是典型的:数据源+Broker+存储+webUI,这套体系非常灵活从数据采集到数据输出都可以自定义,尤其是后端的Search 使用ES,ES这个搜索引擎鼎鼎大名,我非常喜欢他查询DSL,呵呵。

4、input ,output配置:

这是个最简单的日志监控了,结果输出到es中,当然也可以输出到redis中,这里的输出位置可以配置是个很讨人喜欢的功能;其input的type是ES的存储索引表,这个可以自定义,其他filter也是可以配置的这样可以只收集需要的信息,非常灵活,(splunk也可自定义的,下面我再分析)(题外话,logstash在windows安装有点麻烦,要仔细点),我们看看官方提供的配置,如下

这里我只截了部分图,可以说非常齐全,具体的可以参考http://logstash.net/docs/1.2.2/

5、ES 存储:

这里存储也是可以配置的,我配置为3个片,2个副本,其实日志属于内部使用,访问量很小,所以可以节约点用存储成本,从上面可以看出索引名是系统自动生成的好处是很明显一天一个日志类别,不好的是如果我想某个域下的日志放到一起,是不能自定义的。

可以看出其日志搜集是一行一行读取的,如果你在记事本写一大块日志信息而存储到ES中,可能回出现多行日志的错觉,这个不是很重要

6、web UI:

logstash 1.2.2版本使用了全新的webUI 大致是htm5+JS构成,这样可以搭建个独立web Ui 而不必像之前的版本那样”粘“在一起。这个UI和splunk UI有点类似,但其功能远没有splunk UI丰富

7、事件预警:

logstash 可以执行script,exec程序达到预警的作用(本人没有使用这个功能)

8、外部接口:

ES rest风格接口非常强大,完全可以定制化

基于上面几个方面的对比,logstash 这套系统,配置灵活,天生融入ES引擎,webUI 就我个人来说其体验不好,单调繁琐,可能以后的版本的会改进吧。如果你有时间完全可以使用其数据源服务,后端存储使用ES,WEbUI 自己写

 Splunk 

1、定义:IT数据收集,分析器 。范围挺广的

2、语言:C/C++,Python

3、架构:

splunk 不开源,其关键模块index,我猜想可能为luncen C++版本吧(现成的不要,难道从头到尾写搜索引擎?)

4、input,output 配置:

splunk配置更为强大,提供了默认的全局配置(default),及个性化定制(local),收集的数据颇多

从配置可以看出Index 这个关键配置,filter也是可以配置的,是可以把数据按需分别存储的,这个比logstash 灵活,其中host是机器名,推荐手写,否则splunk 自动收集未必是你想要的

5、服务端存储:

增加indexes.conf配置,默认所有数据存储到main索引中,推荐数据分开存储,由于其不开源,所以无法看到内部数据存储具体样式,当然可以看到存储文件路径的

6、web UI

几个关键字段,index,host,sourcetype这几个最好自定义处理,splunk 提供以下几个非常有用的功能

1)、是“字段提取”,这样达到灵活日志切割,而logStash是没有这个功能的,但是splunk 的字段提取是在搜集之后执行的,如果在收集数据时就执行这个功能,那性能应该比收集完后提供高

2)、splunk 提供了job配置功能,这个类似数据存储过程了,非常强大,如图。(我手动执行的这个job,统计30秒内日志中错误,按类别,host,由于Job太多所以不贴图了)

3)、splunk 提供了权限管理,这个也很棒的

4)、可以把除日志之外的数据手动上传到splunk,splunk实现分析,统计

5)、splunk支持集群搜索

6)、支持UI端索引操作

7)、五花八门的报表,这个有点花俏了—个人观点

7、外部接口

支持REST风格的python,java,C#客户端

8、预警功能

预警功能是我自己开发的一个子程序,很简单,项目内部使用RX net EDA驱动和TASK协作实现,支持邮件,短信,只需配置就几个文件就行了,报警形式大致 如:

“时段:xx,机器:xx,类别:xx,数量:xx”,项目结构如下:

9、splunk 提供的功能五花八门,常用的就那么几个

10、splunk其他功能这里我不再赘诉

总结如下:

这两个系统,架构都遵循了,数据源+格式化,过滤+分布式存储+web UI,其实这里也隐含了监控系统架构的模式

1)、独立agent或者是寄宿式agent,(我们内存net异常监控AIC系统就是使用的寄宿式agent)

2)、直接和服务端交互或者通过broker (分布式系统中大多使用了broker这种模式)

,在结构上logstash 更加灵活,而splunk 一手包办,从目前来看splunk功能更强大,以后呢?期待logstash,我更喜欢开源的项目

3)、这两个系统都缺乏事件处理跟踪了,当然这个有点超出其系统本身范围了,而我们内部的AIC系统是集成了net日志搜集,分析,事件跟踪但缺少一般日志收集分析,正好二者互补了。

logstash VS splunk的更多相关文章

  1. logstash+ElasticSearch+Kibana VS Splunk

    logstash+ElasticSearch+Kibana VS Splunk 最近帮磊哥移植一套开源的日志管理软件,替代Splunk. Splunk是一个功能强大的日志管理工具,它不仅可以用多种方式 ...

  2. NET Core微服务之路:简单谈谈对ELK,Splunk,Exceptionless统一日志收集中心的心得体会

    前言 日志,一直以来都是开发人员和运维人员最关心的问题.开发人员可通过日志记录来协助问题定位,运维人员可通过日志发现系统隐患,故障等定位问题.如果你的系统中没有日志,就像一个断了线的风筝,你永远不知道 ...

  3. Splunk和ElasticSearch深度对比解析(转)

    转载自:http://www.sohu.com/a/154105465_354963 随着Splunk越来越被大家熟知和认可,现在市面上也不断涌各种同类产品,作为大数据搜索界的翘楚Splunk和Ela ...

  4. 日志收集以及分析:Splunk

    转自:http://blog.163.com/guaiguai_family/blog/static/20078414520132181010189/ 写代码的人都知道日志很重要,机器不多的时候,查看 ...

  5. Splunk和ELK深度对比

    转自:http://blog.51cto.com/splunkchina/1948105 日志处理两大生态Splunk和ELK深度对比 heijunmasd 0人评论 5312人阅读 2017-07- ...

  6. 大数据日志分析产品——SaaS Cloud, e.g. Papertrail, Loggly, Sumo Logic;Open Source Frameworks, e.g. ELK stack, Graylog;Enterprise Products, e.g. TIBCO LogLogic, IBM QRadar, Splunk

    Learn how you can maximize big data in the cloud with Apache Hadoop. Download this eBook now. Brough ...

  7. Elastic Stack核心产品介绍-Elasticsearch、Logstash和Kibana

    Elastic Stack 是一系列开源产品的合集,包括 Elasticsearch.Kibana.Logstash 以及 Beats 等等,能够安全可靠地获取任何来源.任何格式的数据,并且能够实时地 ...

  8. Logstash实践: 分布式系统的日志监控

    文/赵杰 2015.11.04 1. 前言 服务端日志你有多重视? 我们没有日志 有日志,但基本不去控制需要输出的内容 经常微调日志,只输出我们想看和有用的 经常监控日志,一方面帮助日志微调,一方面及 ...

  9. logstash file输入,无输出原因与解决办法

    1.现象 很多同学在用logstash input 为file的时候,经常会出现如下问题:配置文件无误,logstash有时一直停留在等待输入的界面 2.解释 logstash作为日志分析的管道,在实 ...

随机推荐

  1. maven的聚合与继承

    新建一个空的maven项目user-parent Pom.xml内容 <project xmlns="http://maven.apache.org/POM/4.0.0" x ...

  2. Spring学习记录(十一)---使用注解和自动装配

    Spring支持用注解配置Bean,更简便. 上面的组件,是根据实际情况配的.比如写的一个类,是做业务处理的,那就用注解@Service表示服务层组件,以此类推.将整体分成不同部分. 要在xml加入c ...

  3. 基于stm32f4的ucGUI通过外部flash存储汉字库显示任意英文字符和汉字组合(控件可用)

    在做一个用到ucGUI的项目的时候要用到不定的汉字和英文字符,但是ucGUI本身又不支持读取芯片外部flash的字库来显示,于是查了下资料,如下: http://www.cnblogs.com/hik ...

  4. SQL Server 堆表行存储大小(Record Size)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 堆表行记录存储格式(Heap) 案例分析(Case) 参考文献(References) 二.背 ...

  5. win8下IE10的鼠标mouse事件响应错误BUG

    具体症状就是有时候鼠标左键响应,有时候右键才能响应 问题的原因就是事件对象的detail没有复位 https://github.com/clientside/amplesdk/issues/187

  6. 一起学微软Power BI系列-官方文档-入门指南(4)Power BI的可视化

    在前面的系列文章中,我们介绍了官方有关获取数据,以及建模的原始文档和基本介绍.今天继续给大家介绍官方文档中,有关可视化的内容.实际上获获取数据和建模更注重业务关系的处理,而可视化则关注对数据的解读.这 ...

  7. AngularJs 动态加载模块和依赖

    最近项目比较忙额,白天要上班,晚上回来还需要做Angular知识点的ppt给同事,毕竟年底要辞职了,项目的后续开发还是需要有人接手的,所以就占用了晚上学习的时间.本来一直不打算写这些第三方插件的学习笔 ...

  8. T-Sql(二)事务(Transaction)

    今天讲下T-Sql语法中事务的用法,事务在项目中一般用的很少,主要用于转账,或是一些多表操作,第一步完成不了滚回,不执行接下的步骤.要么都不完成要么都完成,这是事务的特征. 语法很简单,示例代码如下: ...

  9. 尽量使用translate而不是改变top/left进行动画(翻译)

    前言 本文翻译自 Why Moving Elements With Translate() Is Better Than Pos:abs Top/left,本文有改动,添加了一些作者自己的理解,不当之 ...

  10. virtual 修饰符与继承对析构函数的影响(C++)

    以前,知道了虚函数表的低效性之后,一直尽量避免使用之.所以,在最近的工程中,所有的析构函数都不是虚函数.今天趁着还书的机会到图书馆,还书之后在 TP 分类下闲逛,偶然读到一本游戏编程书,里面说建议将存 ...