Linux日志分析ELK环境搭建

场景:ELK作为一个日志收集和检索系统,感觉功能还是相当的强大的。 

ELK是啥, 其实是是三个组件的缩写, 分别是elasticsearch, logstash, kibana. ELK平台可以用于实现日志收集、日志搜索和日志分析. 当然, 如果你有花不完的money, 完全可以使用商业版的Splunk, Orz...

ELK分别是什么

1). ELK现在都是属于elastic公司的产品, 产品主页.

1.elasticsearch(es): 它是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
2.logstash: 简单说是一个日志收集工具, 可以定义从哪里获取数据, 并且可以简单处理数据, 最后可以定义将数据输出到哪里, 一般输出到es. 
3.kibana: 其实就是一个数据展示界面, 并且可以分析数据, 例如从es中读取数据进行展示分析. es自己也带有简单的展示dashboard: :9200/_plugin/head/, 当然 前提是你安装了head插件, 这个下面再说.

2). 简单流程

下面图简单的展示了三组件之间的协作,

1.elasticsearch(es): 它是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
2.logstash: 简单说是一个日志收集工具, 可以定义从哪里获取数据, 并且可以简单处理数据, 最后可以定义将数据输出到哪里, 一般输出到es. 
3.kibana: 其实就是一个数据展示界面, 并且可以分析数据, 例如从es中读取数据进行展示分析. es自己也带有简单的展示dashboard: :9200/_plugin/head/, 当然 前提是你安装了head插件, 这个下面再说.

总的来说分成四大部分, 第一, 应用产生数据, 第二, logstash从应用收集数据, 第三, 将数据放入es, 第四, 使用kibana进行数据展示以及分析.

1 准备 1.1 环境检测

本文介绍安装 logstash 2.2.0 和 elasticsearch 2.2.0,操作系统环境版本是

安装 JDK 是必须的,一般操作系统都会有,只是版本的问题,这里在安装的过程中发现ELK大部分都要求1.8以上的JDK,所以果断换1.8版本的JDK省事些。

而 Kibana 只是一个用纯 JavaScript 写的前端 UI。一定要注意 Kibana 的版本,它会要求 ES 的版本。下表展示了kibana和Elasticsearch之间的对应关系

Linux日志分析ELK环境搭建

1.2 软件下载

注意:这三个软件之间的版本如果选择不对,中间会出现很多想不到的问题。我这里的总结是elasticsearch和logstash最好保持版本一直,kibana和es的版本如上表所示的对应。

在网站中搜索下面三个软件的压缩包。https://www.elastic.co/

这里我都是选择Linux 64位的压缩包,然后将这三个文件通过FTP工具上传到自己建立的目录下面,这里以Etest为例。

ps:ELK三个软件的安装基本就是解压,然后执行就可以运行了,所以安装的目录完全可以自己选择。

logstash all plugins 2.2.0 elasticsearch 2.2.0 kibana 4.4.1

Linux日志分析ELK环境搭建

1.3 解压缩软件

#将软件解压到/usr/local目录 ##tar -xzvf elasticsearch-5.0.1.tar.gz -C /usr/local #首先切换到软件下载目录,然后将三个软件直接解压到Etset目录 tar -xzvf elasticsearch-2.2.0.tar.gz tar -xzvf logstash-all-plugins-2.2.0.tar.gz tar -xzvf kibana-4.4.1-linux-x64.tar.gz

解压后文件如下图所示:

Linux日志分析ELK环境搭建

2 elasticsearch 2.1 启动elasticsearch

ps:启动时候不能以root用户启动,否则会报错。

cd /home/ipsp/Etest/elasticsearch-2.2.0 #启动命令 bin/elasticsearch

正常启动情况的状态如下图所示:

Linux日志分析ELK环境搭建

注意:为了能够通过浏览器访问elasticsearch,我们需要配置elasticsearch的配置文件,主要是修改network.host和http.port

vim config/elasticsearch.yml


#修改配置文件内容如下:

network.host: 0.0.0.0

http.port: 9200

Linux日志分析ELK环境搭建

之所以修改端口,是因为ES 每次启动时,端口可能会变(端口被占用,ES 自己会改端口)~

如果还不能正常启动 ES,并提示端口被占用,就查看一下什么程序占用 9200 端口,kill 掉,重启 ES 就行。

我遇到的,Java 把 9200 端口占用了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f63066f7fbbb34603424b0db907d7dd9.html