大數據初探之Elastic Stack全面瞭解

原創做者,公衆號【程序員讀書】,歡迎關注公衆號,轉載文章請註明出處哦。node

相信不少作開發的小夥伴對Elasticsearch應該都聽過或有必定的瞭解吧,畢竟Elasticsearch是時下最火的開源全文搜索引擎。linux

除了搜索功能以外,Elasticsearch也是一款大數據分析引擎,能夠用於大數據實時分析,好比用於日誌分析、指標監控、信息安全等方面,而要完成這些功能,則還須要與其餘組件配合,這即是咱們如今要講的Elastic Stack程序員

什麼是Elastic Stack?

Elastic Stack是一套構建在開源基礎之上,可讓咱們安全可靠地採集任何來源、任何格式的數據,而且實時地對數據進行搜索、分析和可視化工具鏈。docker

從上面這段定義能夠看出Elastic Stack的幾個特色:採集、轉換、搜索、分析、可視化,這些功能分別由ElasticSearchKibanaBeatsLogstash這幾個組件來實現。api

Elasticsearch

ElasticsearchElastic Static的核心,能夠用Elasticsearch來存儲咱們的文檔數據,利用Elasticsearch強大的搜索和分析功能爲咱們的網站提供支持,ElasticSearch是分佈式搜索引擎和大數據實時分析引擎,能夠實時分析計算數據並得出結果,還能夠經過Kibana的各類圖表將分析結果可視化。瀏覽器

下面的思惟導圖,是我學習Elasticsearch的一點簡單的梳理:安全

Kibana

一圖勝萬言,KibanaElastic Stack產品中的一款可視化工具,支持柱狀圖、線狀圖、餅圖、旭日圖等多種圖形,還可使用Vega 語法來設計獨屬於咱們本身的可視化圖形。bash

經過Kibana能夠實時呈現Elastichsearch聚合分析的數據,看到數據的趨勢,爲決策提供依據。服務器

Beats

Beats是一個輕量型採集器的平臺,集合了多種輕量級的、單一的數據採集器,幾乎能夠兼容全部的數據類型,這些採集器能夠從成千上萬的系統中採集數據並向LogstashElasticsearch發送數據。restful

下面是Beats支持的採集器列表:

  • Filebeat:文件文件
  • Metricbeat:指標數據
  • Packetbeat:網絡數據
  • Winlogbeat:Windows事件日誌
  • Auditbea:審計數據
  • Heartbeat:運行時間監控
  • Functionbeat:無需服務器的採集器

固然,若是上面提供的採集器沒法知足咱們的需求,Beats也支持自定義採集器。

Logstash

Logstash是開源的服務器端數據處理管道,可以同時從多個來源採集數據,轉換數據,而後將數據發送到您最喜歡的存儲庫中,通常就是發送到Elasticsearch當中。

從上面的定義中,咱們能夠看出,LogstashBeats有相似的功能,而實際上,Logstash的功能比Beats更強大,Logstash支持豐富的過濾器,能夠經過過濾器將很是結構化的數據轉換成結構化的數據,以下圖所示:

經過上面的介紹,咱們應該對Elastich Stack中各個組件的功能有所瞭解,下面咱們經過示圖意瞭解一下各組件之間的關係:

安裝

Elastic Stack支持多種不一樣的操做系統,不一樣的操做系統也支持多種不一樣的安裝方式,咱們只是介紹在Linux操做系統的安裝過程,使用的版本是最新的7.2

ElasticSearch安裝

7.0以前的版本,安裝Elasticsearch以前須要先安裝Java SDK,在7.0以後,在Elasticsearch的安裝中包含了Java SDK

下載安裝

ElasticSearch支持多種操做系統,下面的示例是在Linux上的安裝過程:

# 下載壓縮安裝包
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-linux-x86_64.tar.gz

# 解壓
$ tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz

# 修改安裝目錄名稱,不改也能夠的
$ mv elasticsearch-7.2.0-linux-x86_64 /usr/local/elasticsearch
複製代碼

安裝的過程很是簡單,直接解壓即可以了。

啓動ElasticSearch
# 進入到elasticsearch安裝目錄
$ cd /usr/local/elasticsearch

# 在elasticsearch安裝目錄運行如下命令
$ bin/elasticsearch
複製代碼
在Docker上運行

除了本身下載安裝外,能夠elasticsearch的docker鏡像進行安裝,這種方式也很方便。

# 拉取elasticsearch的docker鏡像
$ docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0 

# 運行鏡像,建立容器
$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.2.0
複製代碼
測試是否安裝成功

在瀏覽器輸入地址http://localhost:9200,或使用在命令行中使用curl工具,輸入如下語句:

$ curl http://localhost:9200
複製代碼

若是在瀏覽器或命令中輸出以下Elasticsearch的狀態信息,則說明已經安裝成功。

{
  "name" : "localhost.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "IcfpUJx8TOOU9udd2fXWkw",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
複製代碼

在安裝成功後,即可以調用Elasticsearch提供的restful api,往Elasticsearch建立索引和文檔,開始Elasticsearch的學習了。

Kibana安裝

下載安裝
# 使用wget命令獲取安裝包
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.0-linux-x86_64.tar.gz
#解壓
$ tar -zxvf kibana-7.2.0-linux-x86_64.tar.gz

# 修改安裝目錄名稱,不改也能夠的
$ mv kibana-7.2.0-linux-x86_64 /usr/local/kibana
複製代碼

上面簡單兩條命令便已經安裝好了kibana

啓動kibana

安裝成功後,可使用如下命令啓動kibana

# 進入kibana安裝目錄
$ cd /usr/local/kibana

# 運行命令啓動
$ bin/kibana
複製代碼
測試是否安裝成功

安裝成功後,Kibana默認運行在5601端口,所以在瀏覽器中輸入http://localhost:5601,若是安裝成功,則會進入以下界面:

Beats安裝

Beats是一個多種單一採集器的平臺,每一種採集器都須要單獨安裝,所以咱們能夠根據本身的須要進行安裝,下面以Filebeat安裝爲例:

# 下載安裝包
$ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-linux-x86_64.tar.gz

# 解壓
$ tar -zxvf filebeat-7.2.0-linux-x86_64.tar.gz

# 修改安裝目錄名稱,不改也能夠的
$ mv filebeat-7.2.0-linux-x86_64 /usr/local/filebeat
複製代碼
啓動filebeat
# 啓動
/usr/local/filebeat/filebeat -e -c filebeat.yml
複製代碼

Logstash安裝

下載安裝
# 下載
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gz

#解壓
$ tar -zxvf logstash-7.2.0.tar.gz

# 修改安裝目錄名稱,不改也能夠的
$ mv logstash-7.2.0 /usr/local/logstash
複製代碼
啓動Logstash

啓動logstash時,須要指定一個配置文件,配置文件的結構通常是下面的結構,input指定數據來源,filter指定過濾器,output指定輸出。

input {
  ...
}

filter {
  ...
}

output {
  ...
}
複製代碼

好比咱們使用下面的logstash.conf文件,將一個txt文件的每一行記錄導入到elasticsearch中:

input {
  file {
    path => "/data/users.txt"
    start_position => beginning
  }
}
filter {
  txt {
    separator => ","
    columns => ["id","username","age"]
  }
}
output {
   elasticsearch {
     hosts => "http://localhost:9200"
     index => "user_list"
     document_id => "%{id}"
   }
  stdout {}
}
複製代碼

接下來使用下面的命令,即可以啓動logstash了。

# 運行
logstash -f logstash.conf
複製代碼

小結

在這篇文章中,咱們只是對Elastic Stack創建一個全面的瞭解以及如何安裝,而對Elastic Stack的使用與開發,則須要在後續中更多地學習。


你的關注,是我寫做路上最大的鼓勵!

相關文章
相關標籤/搜索