大数据hadoop之 五十九.开源实时日志分析ELK平台
本文于2083天之前发表,文中内容可能已经过时。
概述
开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最新版本5.2.2进行一次整合测试。
ElasticSearch是一个高可扩展的开源的全文搜索分析引擎。它允许你快速的存储、搜索和分析大量数据。ElasticSearch通常作为后端程序,为需要复杂查询的应用提供服务。
Elasticsearch是一个基于Lucene的开源分布式搜索引擎,具有分布式多用户能力。Elasticsearch是用java开发,提供Restful接口,能够达到实时搜索、高性能计算;同时Elasticsearch的横向扩展能力非常强,不需要重启服务,基本上达到了零配置。
写到一半,发现一个非常好的Logstash的文章集合,大家直接参考吧。我之后会实验为主,至于理论详解,我感觉以下三篇文章,写的比我好多好多了。
环境要求:
- JDK1.8
- ElasticSearch 5.2.2
##下载地址
https://www.elastic.co/downloads/elasticsearch
安装过程
- 1.解压ElasticSearch并进入目录:
1 | chu888chu888@hadoopmaster:~$ tar xvfz elasticsearch-5.2.2.tar.gz |
- 2.启动ElasticSearch
1 | chu888chu888@hadoopmaster:~/elasticsearch-5.2.2$ cd bin |
日志中启动了两个端口分别是:9300和9200,9300用于跟其他的节点的传输,9200用于接受HTTP请求,ctrl+c可以结束进程
如果想要后台运行,可以用以下方法
1 | ./bin/elasticsearch -d |
- 测试ElasticSearch
1 | chu888chu888@hadoopmaster:~$ curl 127.0.0.1:9200 |
也可以使用curl尝试远程关闭
1 | chu888chu888@hadoopmaster:~$ curl -XPOST 'http://localhost:9200/_shutdown' |
- Elasticsearch配置文件
ElasticSearch的配置文件一般放置在安装目录下的config目录中。config目录中有两个文件,分别是elasticsearch.yml 和logging.yml。前者用来配置ElasticSearch不同模块的属性,比如网络地址,路径等,后者则用来配置自身的日志记录选项。
配置文件是YAML格式的,下面简要地介绍一些配置参数。
网络地址,指定网络相关模块的绑定和发布地址
1 | network: |
路径指定数据和日志文件的路径
1 | path: |
集群名,指定生产集群的名字,集群将根据这个名字来自动发现和加入节点
1 | cluster: |
节点名,指定每个节点的默认名称
1 | node: |
因为elasticsearch安装在虚拟机里面,我希望我的主机也可以访问,需要config/elasticsearch.yml进行配置:
1 | network.host: 192.168.1.159 |
重新启动后会出现错误
1 | /bin$ ./elasticsearch |
解决办法:
切换到root用户,修改配置limits.conf
1 | chu888chu888@hadoopmaster:/etc/security$ sudo nano limits.conf |
修改配置sysctl.conf
1 | chu888chu888@hadoopmaster:/etc/security$ sudo nano /etc/sysctl.conf |
重新再启动后,成功
1 | chu888chu888@hadoopmaster:~/elasticsearch-5.2.2/bin$ ./elasticsearch |
ElasticSearch插件
ElasticSearch有各种插件,可以简化诸如管理索引、集群等任务。其中一些常用的插件有kopf Marvel Sense Shield等等。
ElasticSearch安装错误FAQ
Elasticsearch5.0 安装问题集锦
elasticsearch 5.0 安装过程中遇到了一些问题,通过查找资料几乎都解决掉了,这里简单记录一下 ,供以后查阅参考,也希望可以帮助遇到同样问题的你。
- 1.问题一:警告提示
1 | [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter: |
- 2.问题二:ERROR: bootstrap checks failed
1 |
|
- 3.问题三:max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
1 |
|
- 4.问题四:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
1 |
|
LogStash
Logstash是一个完全开源的工具,可以对你的日志进行收集、过滤,并将其存储供以后使用,参考官网的介绍图:
写到一半,发现一个非常好的Logstash的文章集合,大家直接参考吧。
安装
- 1.解压进入目录
1 | chu888chu888@hadoopmaster:~$ unzip logstash-5.2.2.zip |
- 2.添加配置文件
1 | chu888chu888@hadoopmaster:~/logstash-5.2.2/config$ nano logstash.conf |
- 3.添加如下内容
我们通过一个股票的例子(从yahoo下载下来的数据),来讲解通过logstash导入数据到elasticsearch中,http://finance.yahoo.com/q/hp?s=GOOG
这个数据集中最重要的字段包括 date(日期) open price(开盘价格) close price(收盘价格) high price(最高价) volume(成交量) adjusted price(调整价格)
1 | Date,Open,High,Low,Close,Volume,Adj Close |
每行代表了某一天的股票价格,字段之间以逗号分割.
1 | input |
- 4.启动服务
1 | chu888chu888@hadoopmaster:~/logstash-5.2.2/bin$ ./logstash -f /home/chu888chu888/logstash.conf |
- 5.启动成功后的日志
1 | chu888chu888@hadoopmaster:~/logstash-5.2.2/bin$ ./logstash -f /home/chu888chu888/logstash.conf |
Kibana
Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助您汇总、分析和搜索重要数据日志。
- 解压进入目录
1 | chu888chu888@hadoopmaster:~$ tar xvfz kibana-5.2.2-linux-x86_64.tar.gz |
- 修改配置文件
1 | nano config/kibana.yml |
- 添加如下配置项
1 | server.port: 5601 |
- 启动服务
1 | ./bin/kibana |
- 启动成功日志如下
1 | chu888chu888@hadoopmaster:~/kibana-5.2.2-linux-x86_64/bin$ ./kibana |
- 浏览器访问
默认第一次需要Configure an index pattern,默认的Index name是logstash-*,直接create就行了。
1 | http://192.168.1.159:5601/app/kibana#/management/kibana/index/?_g=() |