Flume-ng 1.6.0+ Elasticsearch 1.7.2+ Kibana4
日志收集分析系统环境搭建及介绍
1.Flume-ng介绍
FlumeNG 是Cloudera提供的一个分布式、可靠、可用的系统,它可用将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心数据存储系统。
Flume 使用 java 编写,其需要运行在 Java1.6 或更高版本之上。
- 官方网站:http://flume.apache.org/
- 用户文档:http://flume.apache.org/FlumeUserGuide.html
- 开发文档:http://flume.apache.org/FlumeDeveloperGuide.html
具体原理参考: http://blog.javachen.com/2014/07/22/flume-ng.html
2.Elasticsearch介绍
ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例。支持时间时间索引和全文检索。
它对外提供一系列基于 JAVA 和 HTTP 的 API,用于索引、检索、修改大多数配置。
3.Kibana4介绍
Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图标的形式展现出来。
Kibana 让海量数据变得更容易理解。简单的基于浏览器的界面让你可以快速创建并分享动态的仪表板,用以实时修改Elasticsearch 请求。
- 官网:https://www.elastic.co/products/kibana
- 参考:http://www.code123.cc/docs/kibana-logstash/v4/index.html
4.Flume-ng安装
1.下载Flume-ng 1.6.0版本,地址为: http://www.gtlib.gatech.edu/pub/apache/flume/1.6.0/apache-flume-1.6.0-bin.tar.gz
2.解压
tar zxvf apache-flume-1.6.0-bin.tar.gz
5.Elasticsearch安装
1. 下载Elasticsearch 1.7.2版本,地址为:
https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.tar.gz
2. 解压
tar zxvf elasticsearch-1.7.2.tar.gz
3. 运行 bin/elasticsearch,在浏览器中运行127.0.0.1:9200,如果在浏览中会出现以下内容:
4. 安装ElasticSearch Head 插件
bin/plugin –install mobz/elasticsearch-head
6.Kibana安装
1. 下载Kibana4.1.2版本,下载地址为:
- Mac: https://download.elastic.co/kibana/kibana/kibana-4.1.2-darwin-x64.zip
- Linux: https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz
2. 解压
tar zxvf kibana-4.1.2-linux-x64.tar.gz(linux)
7.Flume + Elasticsearch+ Kibana 配置
1.对Flume进行配置
进入flume的安装目录,执行 vim config/es_log.conf,输入以下内容:
agent.sources =tail
agent.channels =memoryChannel
agent.channels.memoryChannel.type= memory
agent.sources.tail.channels= memoryChannel
#source传送日志的类型
agent.sources.tail.type= exec
#指定传送的日志文件
agent.sources.tail.command= tail -F /Users /flume-1.6.0/logs/stderr.log
#配置source的过滤器
agent.sources.tail.interceptors=i1i2 i3
#使用正则表达式
agent.sources.tail.interceptors.i1.type=regex_extractor
agent.sources.tail.interceptors.i1.regex=(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2},\\d{3})\\s*([A-Z]{4})\\s*([a-zA-Z-.]*)\\s(\\d+)\\s([a-zA-Z-.0–9]*)\\s([a-zA-Z-.0–9]*):(\\d*)
agent.sources.tail.interceptors.i1.serializers= s1 s2 s3 s4 s5 s6 s7
agent.sources.tail.interceptors.i1.serializers.s1.name= timestamp
agent.sources.tail.interceptors.i1.serializers.s1.type= org.apache.flume.interceptor.RegexExtractorInterceptorMillisSerializer
agent.sources.tail.interceptors.i1.serializers.s1.pattern= yyyy-MM-dd HH:mm:ss,SSS
agent.sources.tail.interceptors.i1.serializers.s2.name= level
agent.sources.tail.interceptors.i1.serializers.s3.name= logger
agent.sources.tail.interceptors.i1.serializers.s4.name= line
agent.sources.tail.interceptors.i1.serializers.s5.name= thread
agent.sources.tail.interceptors.i1.serializers.s6.name= component
agent.sources.tail.interceptors.i1.serializers.s7.name= value
agent.sources.tail.interceptors.i2.type=org.apache.flume.interceptor.TimestampInterceptor$Builder
agent.sources.tail.interceptors.i3.type=org.apache.flume.interceptor.HostInterceptor$Builder
agent.sources.tail.interceptors.i3.hostHeader= host
#指定source接受的sink为elasticsearch
agent.sinks =elasticsearch
agent.sinks.elasticsearch.channel= memoryChannel
agent.sinks.elasticsearch.type=org.apache.flume.sink.elasticsearch.ElasticSearchSink
agent.sinks.elasticsearch.batchSize=100
#配置sink的主机名称
agent.sinks.elasticsearch.hostNames=127.0.0.1:9300
agent.sinks.k1.indexType= bar_type
agent.sinks.elasticsearch.indexName=logstash
agent.sinks.elasticsearch.clusterName=elasticsearch
agent.sinks.elasticsearch.serializer=org.apache.flume.sink.elasticsearch.ElasticSearchLogStashEventSerializer
2.Flume导入与Elasticsearch关联的jar包
将elasticsearch安装目录下lib文件夹中的elasticsearch-1.7.2.jar和 lucene-core-4.10.4.jar复制到Flume得lib文件夹下,flume启动elasticsearch类型的sink依赖这两个jar包
3.配置Elasticsearch
进入elasticsearch安装目录,执行vim elasticsearch.yml,在其中对elasticsearch进行配置,输入:
cluster.name: elasticsearch
node.name: "flume"
node.master: true
node.data: true
4.Kibana与Elasticsearch进行关联
进入Kibana安装目录,执行vimconf/kabana.yml,将elasticsearch_url改为Elasticsearch的地址,在我本机上为:http://localhost:9200
5.启动Flume、Elasticsearch、Kibana
· 进入Flume的安装目录,执行bin/flume-ng agent --conf conf --conf-file conf/es_log.conf--name agent -Dflume.root.logger=INFO,console
· 进入elasticsearch安装目录,执行bin/elasticsearch,启动elasticsearch
· 进入kibana安装目录,执行bin/kibana,启动kibana
在浏览器中输入 http://127.0.0.1:5601,就能看到kibana的操作界面了,flume-ng、elasticsearch、kibana安装就完成了。
8.参考
· https://medium.com/@omallassi/elasticsearch-kibana-flume-a1e20649b2ae
· https://logging.apache.org/log4j/2.x/manual/appenders.html- FlumeAppender