EFK(elasticsearch、fluent、kibana)学习1--在CentOS7上搭建并测试排错

EFK 简介:

Elasticsearch,Fluentd和Kibana(EFK)组合允许收集,索引,搜索和可视化日志数据(visualize log data)。是目前比较主流的日志中心化,可视化并提供索引,搜索,分析的开软软件组合。

Elasticsearch是一个数据搜索引擎和分布式NoSQL数据库的组合,提过日志的存储和搜索功能。

Fluentd是一个消息采集,转化,转发工具,目的是提供中心化的日志服务。

Kibana是一个带有强大数据整理,分析的web前端,将数据以可视化的方式呈现给用户。

另一个流行的组合为Elasticsearch,Logstash和Kibana(ELK)。两种组合架构完全相同,Logstash和Fluentd的功能也大同小异,目标都是解决日志中心化的问题。但是两者的设计出发点稍有不同,造成在解决问题的优先级,重心上可能稍有不同。Logstash强调灵活性和互操作性,而Fluentd更倾向于简单和鲁棒性(Logstash emphasizes flexibility and interoperability whereas Fluentd prioritizes simplicity and robustness.)。

 

EFK 在CentOS7上安装过程及进行Docker下日志搜集:

此处搭建过程推荐一篇深度好文:http://blog.csdn.net/gsying1474/article/details/52426366

按照文章的安装步骤即可完成,但是本人在按步骤的搭建过程中遇到一处错误,如下:

2018-03-06 14:31:37 +0800 [warn]: #0 Elasticsearch rejected 1 documents due to invalid field arguments

2018-03-06 14:31:37 +0800 [error]: #0 Could not push log to Elasticsearch: {"took"=>23, "errors"=>true, "items"=>[{"index"=>{"_index"=>"logstash-2018.03.06", "_type"=>"_doc", "_id"=>nil, "status"=>400, "error"=>{"type"=>"mapper_parsing_exception", "reason"=>"Failed to parse mapping [_doc]: mapping type name [_doc] can't start with '_'", "caused_by"=>{"type"=>"invalid_type_name_exception", "reason"=>"mapping type name [_doc] can't start with '_'"}}}}]}

此处出现的错误的原因是 Elasticsearch 无法映射以 "_" 开头的映射类型名称,也就是说我们必须在 Fluentd 转发日志至  Elasticsearch 的过程设置中,给映射类型添加相应前缀,来防止映射失败的发生。

解决办法:再次修改 td-agent 的配置(vim /etc/td-agent/td-agent.conf)


  @type elasticsearch
  host 127.0.0.1
  type_name fluentd
  include_tag_key true
  tag_key log_name
  flush_interval 10s # for testing
  logstash_format true
  logstash_prefix logstash

增加了四句话,分别是:

  type_name fluentd                // type_name是对应elasticsearch的_type

  include_tag_key true             // 允许使用tag_key

  tag_key log_name                 // tag_key的参数Log_name是收集Logging文件传入的log_name参数

  logstash_prefix logstash        // 设置在value值的日期前面增加前缀,如 {"_index": "logstash-2017.11.20"}

修改完保存之后,重启 td-agent 即可实现:

systemctl restart td-agent
systemctl status td-agent

 

你可能感兴趣的:(Linux)