一、常用日志平台

日志管理工具的作用:收集,解析,可视化

常用的日志平台:ELK(Elasticsearch+Logstash +Kibana )
Elasticsearch:一个基于Lucene的文档存储,主要用于日志索引、存储和分析。
Logstash:管理事件和日志的工具
Kibana:可视化日志和时间戳数据

其他日志组件:
Fluentd:日志收集和发出
Flume:分布式日志收集和聚合系统
Heka:流处理系统,可用于日志聚合
Octopussy:日志管理解决方案(可视化/报警/报告)

本次要和ELK对比的日志平台:
Graylog:具有报警选项的可插入日志和事件分析服务器,Graylog开源版官网: https://www.graylog.org/

二、Graylog与ELK方案的对比

1、组件

ELK:Elasticsearch + Logstash + Kibana
Graylog:Elasticsearch + Graylog Server + Graylog Web

2、ELK优缺

2.1、ELK优点

1、处理方式灵活:elasticsearch是实时全文索引,具有强大的搜索功能
2、配置相对简单:elasticsearch全部使用JSON 接口,logstash使用模块配置,kibana的配置文件部分更简单。
3、检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
4、集群线性扩展:elasticsearch和logstash都可以灵活线性扩展
5、前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单

2.2、ELK缺点

1、不能处理多行日志,比如Mysql慢查询,Tomcat/Jetty应用的Java异常打印
2、不能保留原始日志,只能把原始日志分字段保存,这样搜索日志结果是一堆Json格式文本,无法阅读。
3、不复合正则表达式匹配的日志行,被全部丢弃。

3、Graylog优缺

3.1、Graylog优点

1、一体化方案,安装方便,不像ELK有3个独立系统间的集成问题。
2、采集原始日志,并可以事后再添加字段,比如http_status_code,response_time等等。
3、自己开发采集日志的脚本,并用curl/nc发送到Graylog Server,发送格式是自定义的GELF,Flunted和Logstash都有相应的输出GELF消息的插件。自己开发带来很大的自由度。实际上只需要用inotify_wait监控日志的MODIFY事件,并把日志的新增行用curl/nc发送到Graylog Server就可。
4、搜索结果高亮显示,就像google一样。
5、搜索语法简单,比如: source:mongo AND reponse_time_ms:>5000 ,避免直接输入elasticsearch搜索json语法
6、搜索条件可以导出为elasticsearch的搜索json文本,方便直接开发调用elasticsearch rest api的搜索脚本。

3.2、Graylog缺点

1、控制台操作页面是英文的,针对国内开发使用者使用起来不方便,还得额外汉化,汉化可能失败
2、使用网络传输,可能会占用项目网络

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐