ELK学习笔记 - 安装篇
作为一篇开始学习《ELK》的博客,将会详细去介绍构成 ELK 的三个软件模块:ElasticSearch、LogStash、Kibana 的相关知识背景以及在 Mac OS Big Sur Version 11.2.3 环境中的安装的步骤;
适合刚开始接触 ELK 的入门的初学者群体;
估计阅读时间为:20分钟
估计实操时间为:40分钟
1. ElasticSearch
1.1 发展历史及现状
ElasticSearch
作为一个非常有名的开源日志处理、分析软件,由 Elastic Inc 公司开发,已经拥有了超过3.5亿次的下载次数 和 近 10w+ 的社区成员,Elastic Inc 也提供了在云上的相关服务,并且在国内已经与 腾讯云 展开了合作。
有很多非常著名的网站应用了 ElasticSearch 的相关特性,对于程序员比较熟悉的有: Github 、Wiki 等网站都使用了ElasticSearch 的搜索引擎;
ElasticSearch
起源为:Lucene
- Doug Cutting, 缺点: 不支持水平扩展的能力;
ElasticSearch
发源为:Compass
- Shay Banon, 是ElasticSearch
发源框架;
ElasticSearch
相比于 Lucene 以及 Compass 的特性:
- 支持了水平扩展,即分布式的部署,支持了容器的操作;
- 改变之前单一语言的局限,支持了很多种语言比如:Python、Jruby、Ruby 等语言;
- 支持 Hot & Warm 架构; - 多种方式集群接入
- 支持 RESTful API;
ElasticSearch 以其 近实时 (Near Real Time) 和 分布式存储、搜索、分析引擎 以及支持集群部署等特性,位列 搜索引擎排名的第一名;
与 ElasticSearch 相比,比较著名的有:
- Solr - Apache 背景的搜索框架;
- Splunk - 全球第一家上市大数据公司,以Java作为核心开发语言;
ElasticSearch 提供的功能:
- 搜索:
- 近实时搜索,提供结构化、全文搜索等
- 聚合:
- 海量数据的近实时分析
- 分布式存储:
- 海量数据的分布式存储以及集群管理
- 服务与数据的高可用、水平扩展保障
1.2 ElasticSearch 的安装
1.首先你需要打开 ElasticSearch - cn 的官网 去下载已经内置了Java开发环境的包,下载单击这里: 下载链接
选择:MACOS 版本
注意:
-
如果你的本机的Java环境不可用或者版本老旧,请下载最新的 Jre 环境,具体的环境建议 Java jdk 11 以上的版本;
本机中的JDK版本为:
java version "13" 2019-09-17 Java(TM) SE Runtime Environment (build 13+33) Java HotSpot(TM) 64-Bit Server VM (build 13+33, mixed mode, sharing)
-
在浏览器中单击 Elastic 的官网下载链接并从浏览器中下载文件是非常缓慢的,因此需要使用别的办法:
wget
命令,下载速度能快一点: (我选择的是 7.10.1 版本, 最新的版本已经可以达到了 7.12.0了,无所谓这个看个人)wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-darwin-x86_64.tar.gz
2.将下载好的ElasticSearch
包解压在目录下 ~
新创建一个 app
的文件夹,解压完成的后的路径如下:
(base) [20:05] ~/apps $ls
elasticsearch-7.10.1
3.接下来我们需要将 ~/apps/elasticsearch-7.10.1/bin
目录添加到环境变量目录中:
$sudo vim ~/.bash_profile
将下边的内容加入到 ~/.bash_profile
中:
# 这个要根据你自己的 Java 版本确定
# 确定 MacOSX 本机的 方法是: /usr/libexec/java_home -V
# 然后修改下边的内容
export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)"
export JAVA_13_HOME="$(/usr/libexec/java_home -v 13)"
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk13="export JAVA_HOME=$JAVA_13_HOME"
export JAVA_HOME=$JAVA_13_HOME
#Elasticsearch
export ES_HOME=~/apps/elasticsearch-7.10.1
export PATH=$ES_HOME/bin:$JAVA_HOME/bin:$PATH
4.现在我们就已经安装好了 elasticsearch
,在终端中输入:
$ source ~/.bash_profile
$elasticsearch #等待进程启动一段时间之后,
验证:
-
在浏览器中输入:
http://localhost:9200/
,出现下边的信息即已经安装成功{ "name" : "DoHeras-MacBook-Pro.local", "cluster_name" : "elasticsearch", "cluster_uuid" : "blwcrCEHSyyJ4UWkV9eMiw", "version" : { "number" : "7.10.1", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa", "build_date" : "2020-12-05T01:00:33.671820Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
2. Logstash
2.1 Logstash简介
Logstash 作为一款与 ElasticSearch 相配套的开源数据处理管道工具或者数据收集引擎,可以将不同的数据源相互统一起来,并将数据标准化的送入到数据处理引擎中进行处理,当然选择的数据处理引擎应该是: ElasticSearch。
Logstash 支持多种数据流的输入格式,你可以从下边的几个场景中配置 Logstash 的配置文件做到输入:
- 日志文件
- 指标数据
- Web应用
- 数据存储
- AWS 服务
工作流程:
需要处理的数据当通过 Logstash 的过滤器时,通过预先设定好的识别字段来解析数据流的各个事件,并构建对应的数据结构,最后转化成为通用的格式。
- 往往数据流不一定是具有结构化的,Logstash 的
Grok
可以智能分析数据流并派生出对应的结构; - 解析IP地址从而知道对应的 GeoLocation;
- 利用
PII
进行数据的脱敏,完全排除敏感字段;
2.2 Logstash 的安装
1.类似于 Elasticsearch 的安装方法,首先需要下载从官网上Elasticsearch 相同版本的Logstash 安装包,比如之前我选择的是 7.10.1 版本,那么我也选择 7.10.1 版本的 Logstash:
[Logstash 7.10.1 下载链接][https://www.elastic.co/downloads/past-releases/logstash-7-10-1] Logstash 历史版本
# 将两个软件放在一个目录下,方便学习
(base) [20:05] ~/apps $wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.1-darwin-x86_64.tar.gz
2.解压压缩包到 ~/app
目录下,并给 ~/.bash_profile
加入 Logstash 的启动文件:
#LogStash
export LGS_HOME=~/apps/logstash-7.10.1
export PATH=$LGS_HOME/bin:$JAVA_HOME/bin:$PATH
3.在命令行中直接输入 logstash
启动:
(base) $ source ~/.bash_profile
(base) $ logstash
# 等待启动
# 如果你想让 logstash 正确的启动,那么就需要先运行 elasticsearch 再启动 logstash
3. Kibana
Kibana 作为 ELK 中的开源可视化前端应用程序,可以为 Elasticsearch 中已经加上索引的数据提供搜索功能以及数据可视化的相关功能。
3.1 Kibana 的安装
1.和前边安装的步骤相同,Kibana 的下载也需要与 elasticsearch / logstash 的版本保持相同:
(base) [20:05] ~/apps $ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.1-darwin-x86_64.tar.gz
2.在 ~/.bash_profile
文件中加入以下的内容:
export KIB_HOME=~/apps/kibana-7.10.1-darwin-x86_64
export PATH=$KIB_HOME/bin:$JAVA_HOME/bin:$PATH
3.启动 Kibana 服务
$ source ~/.bash_profile
$ kibana
# 请先启动 elasticsearch 再 启动 kibana
最后的运行截图: