使用Logstash + Elasticsearch作为大数据索引、分析工具
来源:互联网 发布:东莞网络推广 编辑:程序博客网 时间:2024/04/29 17:42
logstash(1.4.0)是一个不错的日志监控与分析工具,数据通过logstash使用后端的ElasticSearch(1.1.1)集群完成数据索引,以供后续的查询、分析使用。
logstash提供了一个geoip的filter,如果发送的事件数据中有IP地址之类的数据,就可以通过这个过滤器将对应的国家、城市等信息添加到数据中,为以后的上卷或下钻操作提供数据基础。我们的应用场景是这样的:
A Python Producer => Redis 消息队列(logstash input,默认支持)=> Filter(geoip,默认支持)=> ElasticSearch集群 => Kibana3
1. 搭建ES集群
其中,ES集群的搭建是非常简单的,装好JDK1.7之后(并设置好JAVA_HOME, PATH等环境变量),只需要下载官方软件包(elasticsearch-1.1.1.tar.gz)解压即可启动,具体启动命令:
bin/elasticsearch -d
在默认配置下,在局域网中启动多个这样的实例,就可以自动组建一个ES集群了,这个集群是去中心化的,非常简单。
2. 安装Kibana3
这实际上就是ES集群的一个查询引擎,也可以说是一层皮,其默认的配置(安装路径/config.js )中,只需要关心: elasticsearch: "http://"+window.location.hostname+":9200", 即可,不过如果你是在ES集群中的一个节点上部署的kibana,那么默认的配置就可以完美工作。Kibana3实际上就是纯粹的Javascript和CSS代码,只需要在Nginx设置一下对应的虚拟主机,使之能够访通过web访问即可,以下是我的Nginx配置:
## The default server#server { listen 8080 default_server; server_name _; #charset koi8-r; location / { root /opt/kibana; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }}
这样,在重新加载Nginx配置之后,就可以通过访问服务器的8080端口来访问到kibana的页面了。
3。 配置logstash
logstash的配置主要分成以下几个部分: input, codec, filter, output(具体请参见:http://logstash.net/docs/1.4.1/)。
顾名思义,input就是logstash的输入端,这个端口可以是一个队列,一个文件,标准输出也可以;codec就是数据的编码格式,logstash自己实现了多种编码格式,不过我们比较常用的还是JSON格式;filter就是数据过滤器,在这里我们可以过滤掉我们不想要的数据,或者为数据添加某些字段,比如我们这里要geoip;output一般是到Elasticsearch,不过logstash也提供了多种输出。
在我们的应用场景下,我们使用如下的配置启动logstash即可:
input { redis { host => "a00" port => "6379" key => "events" data_type => "list" codec => "json" type => "logstash-redis-demo" tags => ["logstashdemo"] }}filter { geoip { source => "[extra][ip]" add_tag => [ "geoip" ] }}output { elasticsearch { host => "a01" flush_size => 10240 }}
我们从一个redis队列(a00:6379)中获取数据,通过geoip过滤器,从ip信息得到对应的地理位置信息之后,最后将数据导入到elasticsearch集群中,对数据做索引。其中需要注意的是,对于嵌套字段的引用方式是:[parent][child]的方式引用。
最后来张效果图:
- 使用Logstash + Elasticsearch作为大数据索引、分析工具
- 使用Logstash + Elasticsearch作为大数据索引、分析工具
- 使用Logstash + Elasticsearch作为大数据索引、分析工具
- 使用Logstash + Elasticsearch作为大数据索引、分析工具
- 大数据日志分析logstash\elasticsearch\kibana
- 大数据日志分析logstash\elasticsearch\kibana
- 网络大数据分析 -- 使用 ElasticSearch + LogStash + Kibana 来可视化网络流量
- 【elasticsearch】使用工具迁移索引数据
- 日志收集分析工具logstash + elasticsearch
- 使用 Spring、Elasticsearch 及 Logstash 构建企业级数据搜索和分析平台
- 使用 Spring、Elasticsearch 及 Logstash 构建企业级数据搜索和分析平台
- elasticsearch源码分析---索引数据
- 使用Elasticsearch + Logstash + Kibana搭建日志集中分析平台实践
- 使用logstash将kafka数据入到elasticsearch
- Logstash 导入数据到Elasticsearch
- 使用Flume+Logstash+Kafka+Spark Streaming进行实时日志处理分析【公安大数据】
- 如何为logstash+elasticsearch配置索引模板?
- logstash输出到elasticsearch多索引
- 使用Chrome DevTools的Timeline和Profiles提高Web应用程序的性能
- C和指针课后习题(第七章)
- Linux多线程中使用信号-1
- 字符串中查找字符串的位置
- Cygwin学习笔记之wget
- 使用Logstash + Elasticsearch作为大数据索引、分析工具
- Storyboard会加载很多系统类库
- 理解MySQL——索引与优化
- 初学cocos2dx 写了个2048 跟大家一起分享下
- 黑马程序员-银行业务调度系统(自己写的)目前还有异常,不知道怎么处理?
- HTML5拍照上传图片&Phonegap封装HTML5调用Android相机拍照上传到PHP端
- mongoDB安装配置维护
- javascript正则表达式,jquery正则表达式
- 基于SymmetricDS的多主一从数据库同步方案