日志分析系统主要是通过搜索引擎来处理数据,所以先了解一下当前比较热门的搜索引擎
搜索引擎对比
DB-Engines Ranking排名
根据最新的数据库引擎排名显示,ElasticSearch,Splunk和Solr分别占据了数据库搜索引擎的前三位。
各个引擎简介,优缺点
ElasticSearch
简介:
Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎.可以进行以下工作:
- 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
- 实时分析的分布式搜索引擎。
- 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
使用案例:
- 维基百科使用Elasticsearch来进行全文搜做并高亮显示关键词,以及提供search-as-you-type、did-you-mean等搜索建议功能。
- 英国卫报使用Elasticsearch来处理访客日志,以便能将公众对不同文章的反应实时地反馈给各位编辑。
- StackOverflow将全文搜索与地理位置和相关信息进行结合,以提供more-like-this相关问题的展现。
- GitHub使用Elasticsearch来检索超过1300亿行代码。
- 每天,Goldman Sachs使用它来处理5TB数据的索引,还有很多投行使用它来分析股票市场的变动。
优点
- Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。
- Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。
- 处理多租户(multitenancy)不需要特殊配置,而Solr则需要更多的高级设置。
- Elasticsearch 采用 Gateway 的概念,使得完备份更加简单。
- 各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作。
缺点
- 不够自动(不适合当前新的Index Warmup API)
- 运维成本高
Solr
简介
Solr是用Java编写、运行在Servlet容器(如 Apache Tomcat 或Jetty)的一个独立的全文搜索服务器。 Solr采用了 Lucene Java 搜索库为核心的全文索引和搜索。Solr强大的外部配置功能使得无需进行Java编码,便可对 其进行调整以适应多种类型的应用程序。Solr有一个插件架构,以支持更多的高级定制。
优点
- Solr有一个更大、更成熟的用户、开发和贡献者社区。
- 支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。
- Solr比较成熟、稳定。
- 不考虑建索引的同时进行搜索,速度更快。
缺点
建立索引时,搜索效率下降,实时索引搜索效率不高。
因为实时索引效率效率不高,所以并不适合做日志分析系统。
Splunk
简介
Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣。
从功能上讲,Splunk是一款功能完善、强大的机器数据(MachineData)分析平台,涵盖机器数据收集、索引、搜索、监控、分析、可视化、告警等功能。
从技术上讲,Splunk是一个时间序列索引器(time-seriesindexer)。在Splunk索引数据时,它基于数据的时间戳(Timestamp)将数据拆分为事件(Event)。事件通常也称为记录或者数据行,并且每一个时间都有一个时间戳,它是Splunk数据分析的一个关键元素。
产品:
- Splunk Enterprise,企业版,B/S架构,按许可收费,即每天索引的数据量。(购买20GB的许可,则默认每天可索引20G数据量;一次购买永久使用;如果使用试用版,试用期结束之后会切换到免费版)
- Splunk Free,免费版,每天最大数据索引量500MB,可使用绝大多数企业版功能。(免费版没有例如:身份验证、分布式搜索、集群等功能)
- Splunk Universal Forwarder,通用转发器,是Splunk提供的数据采集组件,免费,部署在数据源端,无UI界面,非常轻量,占用资源小。
- (转发器无许可证,是免费的;企业版专用的;所以部署在数据源,例如:部署在你的WEB服务器上,监控你的WEB日志,实时监控,产生一条日志则转发一条,进行增量转发;一般配置修改配置文件或者使用CLI命令。占用资源小)
优点
- 功能齐全,拥有数据管理、索引,搜索/分布式搜索、监控和告警、报表、数据模型、单站点/多站点集群、数据可视化等功能。在ELK,slor没出现之前,在日志分析系统中独占鳌头。
- 截止2015年初,全球客户超过9000家,中国客户超过300家。客户覆盖IT、金融、电商、电信、通信、能源、制造业等众多行业。
- Splunk与众多企业IT知名企业合作,打造生态圈。截至目前,其官网提供了超过800款开箱即用的App供用户使用。
缺点
- 商业软件,很多功能免费版不支持;
- 全面性的技术文档较少,大部分配置参考官方文档;
日志分析系统解决方案
Splunk单机免费版
下载部署Splunk单机版软件,部署日志分析系统,通过插件收集日志,处理数据,展示图形;
优点
功能强大,企业版的基础功能单机版都继承。
缺点
可能会出现某些需要用到的功能需要付费;
由于商业软件,网上文档较少,软件配置或者软件功能故障大概率需要自己解决;
图形展示
阿里云日志服务/日志易日志平台
阿里云日志服务底层通过elasticsearch集群处理数据,logtail采集数据,通过后台展示数据,形成可视化图表;
提供500M免费额度每月。
图形展示
阿里云日志服务定价
日志易为国人自主研发的日志分析系统,提供功能强大、简单易用的搜索方式,包括范围查询、字段过滤、正则表达式、NOT/AND/OR布尔值、模糊匹配等方式,并能对查询字段高亮显示、定位日志上下文(TB级海量数据可快速返回搜索结果)。
目前SaaS版提供每天免费5G日志额度
图形展示
ELK
ELK是一组开源软件的简称,其包括Elasticsearch、Logstash 和 Kibana。
Elasticsearch: 能对大容量的数据进行接近实时的存储,搜索和分析操作。
Logstash: 数据收集引擎,它支持动态的的从各种数据源获取数据,并对数据进行过滤,分析,丰富,统一格式等操作,然后存储到用户指定的位置。
Kibana: 数据分析与可视化平台,对Elasticsearch存储的数据进行可视化分析,通过表格的形式展现出来。
图形展示
优点
开源产品,网上文档丰富,该有的功能基本都有,插件,和第三方工具也比较多
集群处理速度快发
缺点
部署占用系统资源较多
ELK通过多个工具处理数据,从功能上来说,衔接性没有Splunk流畅,配置比较复杂;
告警、权限管理、关联分析等功能实现需要团队支大量成本,技术人才、时间的投入。
Rsyslog+LogAnalyzer+MySQL
LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。
图形展示:
优点
资源占用少,配置相对较少
缺点
文档过于陈旧
数据量大时使用MySQL用来查询数据速度变慢