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 下载链接

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 的版本保持相同:

Kibana 历史版本下载

(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

最后的运行截图:

ELK 在 MacOS( Big Sur) 上安装与配置步骤的更多相关文章

  1. 在MacOS 10.12上安装Tomcat8.5

    在MacOS 10.12上安装Tomcat8.5 原文链接:https://wolfpaulus.com/journal/mac/tomcat8/ Context 已安装Java,使用java -ve ...

  2. 在 CentOS 上安装和配置 OpenNebula

    转自:http://www.aikaiyuan.com/4889.html 我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platf ...

  3. PHP 1:在Windows上安装和配置PHP,Apache和My SQL

    原文:PHP 1:在Windows上安装和配置PHP,Apache和My SQL 如果你Google一把类似的主题,你会发现相关的文章可以塞满你的硬盘.在这里之所以把它再次拿出来,目的是想记录我作为一 ...

  4. redis3.0.5在linux上安装与配置

    redis3.0.5在linux上安装与配置 rhel6/ubuntu14 1 下载 # wget http://download.redis.io/releases/redis-3.0.5.tar. ...

  5. 在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器

    #!/bin/bash # # 在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器: # # .安装服务 # .创建svn版本库 # .创建svn用户 # .配置sv ...

  6. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 6.在计算节点上安装并配置计算服务Nova

    安装和配置计算节点这个章节描述如何在计算节点上安装和配置计算服务. 计算服务支持几种不同的 hypervisors.为了简单起见,这个配置在计算节点上使用 :KVM <kernel-based ...

  7. Git学习系列之Windows上安装Git详细步骤(图文详解)

    前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...

  8. 如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器(转)

    如何在Ubuntu 18.04上安装和配置Apache 2 Web服务器 什么是Apache Web Server? Apache或Apache HTTP服务器是一个免费的开源Web服务器,由Apac ...

  9. Ubuntu上安装与配置JDK1.8

    Ubuntu上安装与配置JDK1.8 一.下载 下载JDK,由于是Ubuntu. 所以去官网下载tar.gz格式的就可以(ubuntu使用浏览器下载网速比較慢,所以推荐到window上下载好). ht ...

随机推荐

  1. 半监督学习方法(Semi-supervised Learning)的分类

    根据模型的训练策略划分: 直推式学习(Transductive Semi-supervised Learning) 无标记数据就是最终要用来测试的数据,学习的目的就是在这些数据上取得最佳泛化能力. 归 ...

  2. 三次给你讲清楚Redis之Redis是个啥

    摘要:Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings).哈希(hashes).列表(lists).集合(sets).有序集合(sorted sets)等. ...

  3. OxyPlot.SkiaSharp显示中文乱码的问题

    oxyplot 图表控件功能强大,使用很广泛.最近考虑到性能使用OxyPlot.SkiaSharp替代OxyPlot.WPF,曲线图表初步测试,性能提升近10倍左右.基于SkiaSharp图形引擎的一 ...

  4. day-04-列表

    列表的初识 容器型数据类型,可以承载大量的数据,有序的数据 why:int bool str:'123 True 太白' str: 存储少量的数据. str:切片还是对其进行任何操作,获取的内容全都是 ...

  5. C# WebView2 在你的应用中使用Chromium内核

    什么是WebView2? Win10上对标Edge浏览器 Chromium内核 简单的可视为WebBrowser组件的升级版 如何使用WebView2? 官网下载 WebView2 RunTime V ...

  6. OO UNIT 2 个人总结

    第二单元面向对象作业--性感电梯在线吃人 Part 1:单部可捎带电梯 多线程设计策略 本次电梯仅仅只有一部运行,因此,在多线程的设计中难度不大,并且,只需采用一对一的生产者-消费者模型即可解决问题. ...

  7. Java刷题-stack

    一.getMin栈 题目描述 实现一个特殊功能的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作. 输入描述: 第一行输入一个整数N,表示对栈进行的操作总数. 下面N行每行输入一个字符串S ...

  8. 分库分表之后,id主键如何处理?

    (1)数据库自增id 这个就是说你的系统里每次得到一个id,都是往一个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个id.拿到这个id之后再往对应的分库分表里去写入. 这个方案 ...

  9. JAVAEE_Servlet_21_Cookie

    Cookie * Cookie 是什么? - Cookie翻译过来是曲奇饼干的意思 - Cookie可以保存回话状态,但是这个会话状态是保存在客户端上的,只要清除Cookie,或者 Cookie失效, ...

  10. 【OO课下讨论】bug中的“二八定律”

    bug中的"二八定律" 本文主要为讨论2020/3/17下午OO课讨论的第三个思考题设立 有一个经典的经验性原则,叫帕累托原则,也称为二八定律.这个原则在经济.社会和科技等多个领域 ...