开源日志管理ELK和Graylog区别

一.为什么需要日志管理平台
作为DevOps工程师,会经常收到分析生产日志的需求。在机器规模较少、生产环境管理不规范时,可以通过分配系统账号,采用人肉的方式登录服务器查看日志。然而高可用架构中,日志通常分散在多节点,日志量也随着业务增长而增加。当业务达到一定规模、架构变得复杂,靠人肉登录主机查看日志的方式就会变得混乱和低效。解决这种问题的方法,需要构建一个日志管理平台:对日志进行汇聚和分析,并通过Web UI授权相关人员查看日志权限。

二.主流日志管理解决方案
关于企业级日志管理方案,比较主流的是ELK stack和Graylog。接下来我会对这两个常用方案进行对比,来帮助读者设计出更适合自己的日志收集系统。当然,我也会在后续的文章中,详细介绍这两个方案的实施步骤,来帮助读者快速上手。

三.ELK Stack
目前,最著名的开源日志管理解决方案应该是ELK Stack,之所以称为Stack,是因为它不是一个软件包,而是由同一个团队开发的开源工具组合:Elasticsearch、Logstash、Kibana、及周边工具。
Elasticsearch:是一个非常强大和高度可伸缩的搜索引擎,可以存储大量数据并作为集群使用。在ELK Stack中主要存储收集来的日志,并根据设置的索引,进行日志检索。
Logstash:具有许多功能的日志转发器。支持多种类型的输入、过滤和输出。此外,Logstash可以处理许多编解码器,例如Json。
Kibana:用户界面,可以查看日志条目、创建炫酷的仪表盘。
ELK Stack的优点:
1.成名更早
2.知名度更高

四.Graylog
Graylog是一个强大的平台,基于Scala语言开发。使用它能很容易对结构化和非结构化日志进行管理以及调试应用程序。它依赖Elasticsearch和MongoDB。Graylog的主服务从客户端节点获取数据,同时还提供Web接口,方便用户可视化聚合来的日志。
Graylog的优点包括以下方面:
1.免费的开源工具
2.相比ELK更优秀的报警功能
3.更好的交互,通过跟踪Graylog收到的错误堆栈,工程师可以了解源代码中的上下文。这大量节省了排错的时间和精力
4.强大的搜索功能,支持TB级别的查询
5.有归档功能,超过30天的所有内容都可以存储在廉价存储中,在出现查询需求时,可以重新导入到Graylog
6.Python库支持

五.总结
虽然两种解决方案在功能上非常相似,但仍有一些差异需要考虑。
两者之间最重要的区别在于,从一开始,Graylog就定位为强大的日志解决方案,而ELK则是大数据解决方案。 Graylog可以通过网络协议直接从应用程序接收结构化日志和标准syslog。相反,ELK是使用Logstash分析已收集的纯文本日志的解决方案,然后解析并将它们传递给ElasticSearch。
在ELK中,Kibana扮演仪表盘的角色并显示从Logstash收到的数据。Graylog在这点上更方便,因为它提供了单一应用程序解决方案(不包括ElasticSearch作为灵活的数据存储),具有几乎相同的功能。因此,部署所需的时间更短。此外,与ELK相比,Graylog开箱即用,且具有出色的权限系统,而Kibana则不具备此功能。作为Elasticsearch的粉丝,我更喜欢Graylog而不是ELK,因为它完全符合我在日志管理方面的需求。
Graylog具有直观的GUI,并提供警报、报告和自定义分析功能。最重要的是,它能在多个日志源和跨机房收集数TB的数据。基于这些优势,我更喜欢用Graylog而不是另一个具有类似功能的流行堆栈——ELK。

上一篇:DORA Research Program


下一篇:使用graylog2收集dhcp日志