ELK(Elasticsearch+logstash+kibana)详细安装教程

蓝亚之舟
蓝亚之舟
蓝亚之舟
57
文章
17
评论
2021年5月21日18:27:31
评论
13,047 4738字阅读15分47秒

1、前提准备

1.1 在线安装 jdk

1.1.1 是否安装 jdk

Elasticsearch 的运行需要 jdk 环境,但是在 elasticsearch7 以上的版本中会自带 jdk(安装包由几十兆变成了几百兆就是这个原因),并且 elasticsearch7 以上的版本需要 jdk11 版本,平时使用的 jdk8 并不满足:

1.1.2 安装 jdk

因为可以 ping 通www.baidu.com,表明当前是联网状态,直接在线安装jdk,不过尝试之后已经不推荐了,下载速度太慢了,直接本地下载然后上传再安装比较好。

第一步:查看 yum 库中 jdk 的版本

ELK(Elasticsearch+logstash+kibana)详细安装教程

可以看到共有 1.6,1.7,1.8 和 11 四个版本,要使用版本 11,我之前使用的是 1.8 版本,然后提示版本不符(当然,不会报错,应该是警告)

第二步:选择 java-11.0 安装

第三步:配置环境变量

这里 jdk1.8.0 的文件夹路径是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64

添加内容如下:

注意:上面的 JAVA_HOME 对应的版本名称可能不一样,最后自己对应路径找一下更改一下。

第四步:环境变量生效

第五步:查看 jdk 是否安装成功

ELK(Elasticsearch+logstash+kibana)详细安装教程

1.2 本地下载 ELK

如果 linux 联网可以直接通过命令下载 ELK 软件,但是大多数情况都是离线状态,并且即便是联网状态下载速度也很慢,远不如在本地下载好安装包,然后上传到服务器中。

ELK 三个软件安装包(linux64 位,7.8.1 版本)已经上传百度云,百度云链接:https://pan.baidu.com/s/1K4M0eBFwGsiiv3q3y-yaDQ 提取码:bfp9

有需要的自行下载。

2、安装 Elasticsearch

简单介绍

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。

更多介绍,可以参考:

第一步:上传并解压缩

上传安装包到/opt 目录下,到该目录下执行:

解压缩完,对目录重命名:

第二步:配置系统参数

修改系统参数的目的是确保系统有足够的资源启动 Elasticsearch。

(a)设置内核参数

增加以下参数

执行以下命令,确保参数生效:

(b)设置资源参数

在末尾增加如下

(c)设置用户资源参数

添加如下:

第三步:增加新用户

因为 Elasticsearch 不允许使用 root 作为程序启动用户,所以要新增加一个系统用户,否则报错:

ELK(Elasticsearch+logstash+kibana)详细安装教程

创建分组,然后在该分组下创建用户名的命令如下:

如果创建错误,可以删除用户名,重新创建:

第四步:Elasticsearch 配置

修改 Elasticsearch 的配置文件/opt/elasticsearch/elasticsearch.yml。配置如下:

ELK(Elasticsearch+logstash+kibana)详细安装教程

    注意:配置参数时,冒号后面要有一个空格

第五步:关闭防火墙

远程登录需要关闭防火墙,这个可选,不需要可不用关闭。

第六步:运行 Elasticsearch

运行命令:

如果安装路径不一致,需要更改一下。

验证是否执行成功:

返回成功,则说明运行成功了。

第七步:查看进程

通过名称来查询 Elasticsearch 是查询不到的,因为 Elasticsearch 是运行在 java 中,需要使用端口号来查询:

ELK(Elasticsearch+logstash+kibana)详细安装教程

也可以通过如下进行查询:

第八步:开机自启动

(a)先查看当前的开机启动服务

ELK(Elasticsearch+logstash+kibana)详细安装教程

会列出当前系统的开机服务。

(b)创建 es 的系统启动服务文件

进入到 cd /etc/init.d 目录,执行:

(c)编写启动脚本

(d)修改文件权限

(e)添加和删除服务并设置启动方式

上面只需要执行添加系统服务即可,如果不想使用该服务再执行删除操作,两者并不是顺序执行。

(f)关闭和启动服务

(g)设置服务是否开机启动

遇到问题

解决方案可以参考:ELK 搭建过程中出现的问题与解决方法汇总

3、安装 kibana

简单介绍

Kibana 是一个开源的分析与可视化平台,设计出来用于和 Elasticsearch 一起使用的。你可以用 kibana 搜索、查看存放在 Elasticsearch 中的数据。Kibana 与 Elasticsearch 的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。

直白来说,就是一个可视化工具,某种程度上类似于 Navicat。

更多内容可以参考:https://www.elastic.co/cn/kibana

第一步:上传解压

依然是上传压缩包到/opt 路径下,然后解压缩:

第二步:修改配置文件

修改 配置 config 目录下的 kibana.yml 文件,配置 elasticsearch 地址和 kibana 地址信息:

想要 kibana 界面转换中文,需要在 yml 文件中添加(最后一行本身有,只是注释了):

第三步:启动

启动 kibana,打开/kibana/bin,运行命令:

启动后在浏览器打开:http://127.0.0.1:5601,如果不是本地安装,则更改一下ip即可

第四步:查看进程

通过 ps -e|grep kibana 命令是无法查看的,需要通过进程号或者搜索名称如下:

4、安装 logstash

简单介绍

Logstash 是一个具有实时管道的开源数据收集引擎。可以动态地统一不同来源的数据,并将数据归到不同目的地。也是一个管理事件和日志工具。你可以用它来收集日志,分析它们,并将它们储存起来以供以后使用。

Logstash 通常都是和 Kibana 以及 Elasticsearch 一起使用,但是在 ELK 中,Logstash 不是必须安装的。

第一步:上传解压

依然是上传压缩包到/opt 路径下,然后解压缩:

第二步:修改配置

logstash 最关键的就在于配置上,打开/opt/logstash/config/目录,然后根据自己的需求创建一个配置文件。

比如,我的需求是利用 logstash 读取一个.json 文件,然后将其内容发送给 Elasticsearch,那么我要创建一个配置文件:logstash.conf(名称随意)

文件内容如下:

配置文件主要内容是:读取"/opt/suricataFile/eve.json"文件内容,然后经过过滤后,发送给 Elasticsearch 的索引 json_index,如果没有索引,则要创建该索引。

上面的注释介绍的很详细,具体不再多说。

第三步:启动 logstash

运行命令如下:

运行命令中要指定配置文件(第二步中创建的)。

遇到问题

卡在:Successfully started Logstash API endpoint {:port=>9600}

ELK(Elasticsearch+logstash+kibana)详细安装教程

如上图所示,就是卡在这里了,我一开始以为这是成功了,但是去查询索引,没有任何增加和导入,不知道是哪里的问题,各种更改配置文件。

最后参考下面两个博客解决问题:

出现该问题的原因是一开始 logstash 读取 eve.json 文件时,全部读取完了,但是并没有发送(可能出现了某个 bug,暂时不知道),这时生成了一个 sincedb 文件,以后每次读取 eve.json 文件都是从最后开始读取,导致读取不出来。

需要增加 sincedb_path => "/dev/null",这是第一个博客获得的信息,但是并没有说增加在哪里?

第二个博客上知道了在哪里增加,于是顺利解决问题。

配置文件中需不需要写用户和密码

在解决第一个问题的时候,看了很多 logstash 的配置文件,发现有一部分博客中提到要在配置文件中写明 Elasticsearch 所在主机的用户名和密码。

但是,最后解决上面后,重新在 root 用户运行(配置文件中并没有写用户和密码),发现依然可以运行,说明并不需要

继续阅读
蓝亚之舟
JavaWeb开发

apisix安装详解

1、api网关介绍 api网关现在使用的是一个开源项目(apisix),然后在其上进行的二次开发(修改配置和增加插件),api网关本身相当于是代理服务器,或者说其本质就是一个代理服务器。 apisix...
weka

weka下载安装教程

前言介绍 Weka 的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是 SPSS 公司商业数据挖掘...

发表评论