Elastic Stack學(xué)習(xí)

原文鏈接
Elastic Stack簡稱ELK,在本教程你將學(xué)習(xí)如何快速搭建并運(yùn)行Elastic Stack。
首先你要安裝核心開源產(chǎn)品:
Elasticsearch:
Kibana:
Beats:
Logstash:
然后,你將了解如何實(shí)現(xiàn)一個系統(tǒng)監(jiān)視解決方案,該方案使用Metricbeat收集服務(wù)器度量并將數(shù)據(jù)發(fā)送到Elasticsearch,在Elasticsearch里你可以使用Kibana搜索和可視化數(shù)據(jù)。在你完成基本的設(shè)置之后,你可以添加Logstash來進(jìn)行額外的解析。
你可以在一個單個虛擬機(jī)甚至你的筆記本上安裝Elastic Stack。
重要
實(shí)現(xiàn)安全性是建立Elastic Stack的關(guān)鍵步驟。要使用示例安裝快速啟動和運(yùn)行,現(xiàn)在就跳過這些步驟。在通過網(wǎng)絡(luò)發(fā)送敏感數(shù)據(jù)之前,請確保對Elastic Stack進(jìn)行安全保護(hù),并啟用加密通信
在你開始之前

  • 有關(guān)支持的操作系統(tǒng)和產(chǎn)品兼容性的信息,請參閱Elastic Support Matrix
  • 驗(yàn)證您的系統(tǒng)滿足Logstash和Elasticsearch的最低JVM需求

安裝Elasticsearch

Elasticsearch是一個實(shí)時、分布式存儲、搜索和分析引擎。它可以用于許多用途,但它擅長的一個上下文是對半結(jié)構(gòu)化數(shù)據(jù)流(如日志或解碼網(wǎng)絡(luò)數(shù)據(jù)包)進(jìn)行索引。

要下載和安裝Elasticsearch,打開終端窗口,使用系統(tǒng)的命令(deb為Debian/Ubuntu, rpm為Redhat/Centos/Fedora, mac為OS X, win為Windows):

deb

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.deb
sudo dpkg -i elasticsearch-6.4.0.deb
sudo /etc/init.d/elasticsearch start

rpm

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.rpm
sudo rpm -i elasticsearch-6.4.0.rpm
sudo service elasticsearch start

mac

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
tar -xzvf elasticsearch-6.4.0.tar.gz
cd elasticsearch-6.4.0
./bin/elasticsearch

win
1.從Elasticsearch下載頁面下載Elasticsearch 6.4.0 Windows zip文件。

2.將zip文件的內(nèi)容解壓縮到計(jì)算機(jī)上的一個目錄,例如,C:\Program Files

3.作為管理員打開命令提示符并進(jìn)入到包含提取文件的目錄,例如:

cd C:\Program Files\elasticsearch-6.4.0

4.啟動Elasticsearch

bin\elasticsearch.bat

對于其他操作系統(tǒng),請?jiān)L問Elasticsearch下載頁面
要了解關(guān)于安裝、配置和運(yùn)行Elasticsearch的更多信息,請閱讀Elasticsearch參考資料

確保elasticsearch已經(jīng)啟動并運(yùn)行

要測試Elasticsearch守護(hù)進(jìn)程是否啟動并運(yùn)行,請嘗試在端口9200上發(fā)送HTTP GET請求。

curl http://127.0.0.1:9200

在Windows上,如果沒有安裝cURL,則將瀏覽器指向URL。
你會看到類似這樣的回應(yīng):

{
"name" : "QtI5dUu",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "DMXhqzzjTGqEtDlkaMOzlA",
"version" : {
"number" : "6.4.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "00d8bc1",
"build_date" : "2018-06-06T16:48:02.249996Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

安裝kibana

Kibana是一個開源的分析和可視化平臺,設(shè)計(jì)用于Elasticsearch。使用Kibana搜索、查看和與存儲在Elasticsearch索引中的數(shù)據(jù)交互。你可以輕松地執(zhí)行高級數(shù)據(jù)分析并在各種圖表、表格和地圖中可視化數(shù)據(jù)。
我們建議你將Kibana安裝在與Elasticsearch相同的服務(wù)器上,但這不是必需的。如果將產(chǎn)品安裝在不同的服務(wù)器上,在開始Kibana之前,則需要更改Kibana配置文件kibana.yml中的Elasticsearch服務(wù)器的URL (IP:PORT)。
要下載和安裝Kibana,打開終端窗口,使用與系統(tǒng)匹配的命令:
deb or rpm

curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz
tar xzvf kibana-6.4.0-linux-x86_64.tar.gz
cd kibana-6.4.0-linux-x86_64/
./bin/kibana

mac

curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-darwin-x86_64.tar.gz
tar xzvf kibana-6.4.0-darwin-x86_64.tar.gz
cd kibana-6.4.0-darwin-x86_64/
./bin/kibana

win

  1. 從Kibana下載頁面下載Kibana 6.4.0 Windows zip文件。

2.將zip文件的內(nèi)容解壓縮到一個目錄在您的計(jì)算機(jī)上,例如,C:\Program Files
3.作為管理員打開命令提示符并導(dǎo)航到包含提取文件的目錄,例如:

cd C:\Program Files\kibana-6.4.0-windows

4.啟動Kibana

bin\kibana.bat

對于其他操作系統(tǒng),請?jiān)L問Kibana下載頁面
要了解關(guān)于安裝、配置和運(yùn)行Kibana的更多信息,請閱讀Kibana參考資料

啟動Kibana web界面

要啟動Kibana web界面,請將瀏覽器指向端口5601。例如,http://127.0.0.1:5601

安裝Beats

Beats是作為開源數(shù)據(jù)托運(yùn)人代理安裝在服務(wù)器上,用于向Elasticsearch發(fā)送操作數(shù)據(jù)。Beats可以直接將數(shù)據(jù)發(fā)送到Elasticsearch或通過Logstash,在Logstash里你可以進(jìn)一步處理和增強(qiáng)數(shù)據(jù)。
每個Beat是一個單獨(dú)的可安裝的產(chǎn)品。在本教程中,你將了解如何安裝、運(yùn)行Metricbeat和系統(tǒng)模塊,使之能夠收集系統(tǒng)指標(biāo)。
要了解關(guān)于安裝和配置其他Beat的更多信息,請參閱入門文檔:
<colgroup style="box-sizing: border-box;"><col class="col_1" style="box-sizing: border-box;"><col class="col_2" style="box-sizing: border-box;"></colgroup>

Elastic Beats To capture
Auditbeat Audit data
Filebeat Log files
Heartbeat Availability monitoring
Metricbeat Metrics
Packetbeat Network traffic
Winlogbeat Windows event logs

安裝Metricbeat

要下載和安裝Metricbeat,打開終端窗口并使用與您的系統(tǒng)匹配的命令:
deb

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-amd64.deb
sudo dpkg -i metricbeat-6.4.0-amd64.deb

rpm

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-x86_64.rpm
sudo rpm -vi metricbeat-6.4.0-x86_64.rpm

mac

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.4.0-darwin-x86_64.tar.gz
tar xzvf metricbeat-6.4.0-darwin-x86_64.tar.gz

win
1.從Metricbeat下載頁面下載Metricbeat Windows zip文件。
2.將zip文件的內(nèi)容解壓縮到 C:\Program Files中。
3.將Metricbeat -6.4.0-windows目錄重命名為Metricbeat。
4.作為管理員打開PowerShell提示符(右鍵單擊PowerShell圖標(biāo)并選擇以管理員身份運(yùn)行)。
5.從PowerShell提示符,運(yùn)行以下命令將Metricbeat安裝為Windows服務(wù)

PS > cd 'C:\Program Files\Metricbeat'
PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1

對于其他操作系統(tǒng),請?jiān)L問Beats下載頁面

將系統(tǒng)指標(biāo)傳到Elasticsearch

Metricbeat提供預(yù)先構(gòu)建的模塊,您可以使用這些模塊在大約5分鐘內(nèi)快速實(shí)現(xiàn)和部署一個系統(tǒng)監(jiān)控解決方案,包括樣例指示板和數(shù)據(jù)可視化。

在本節(jié)中,您將了解如何運(yùn)行系統(tǒng)模塊,以從運(yùn)行在服務(wù)器上的操作系統(tǒng)和服務(wù)收集指標(biāo)。系統(tǒng)模塊收集系統(tǒng)級指標(biāo),如CPU使用率、內(nèi)存、文件系統(tǒng)、磁盤IO和網(wǎng)絡(luò)IO統(tǒng)計(jì)數(shù)據(jù),以及系統(tǒng)上運(yùn)行的每個進(jìn)程的頂級統(tǒng)計(jì)數(shù)據(jù)。

在你開始之前驗(yàn)證Elasticsearch和Kibana正在運(yùn)行,Elasticsearch準(zhǔn)備從Metricbeat接收數(shù)據(jù)。
建立系統(tǒng)模塊并開始收集系統(tǒng)指標(biāo)。
1.從Metricbeat安裝目錄,啟用系統(tǒng)模塊:
deb and rpm

sudo metricbeat modules enable system

mac

./metricbeat modules enable system

win

PS C:\Program Files\Metricbeat> .\metricbeat.exe modules enable system

2.設(shè)置初始環(huán)境
deb and rpm

sudo metricbeat setup -e

mac

./metricbeat setup -e

win

PS C:\Program Files\Metricbeat> metricbeat.exe setup -e

setup命令加載Kibana儀表板。如果儀表板已經(jīng)設(shè)置好,則省略此命令。e標(biāo)志是可選的,并將輸出發(fā)送到標(biāo)準(zhǔn)錯誤,而不是syslog。
3.啟動Metricbeat
deb and rpm

sudo service metricbeat start

mac

./metricbeat -e

win

PS C:\Program Files\Metricbeat> Start-Service metricbeat

Metricbeat運(yùn)行并開始向Elasticsearch發(fā)送系統(tǒng)指標(biāo)。

在Kibana中可視化系統(tǒng)指標(biāo)

要可視化系統(tǒng)指標(biāo),打開瀏覽器并導(dǎo)航到Metricbeat系統(tǒng)概述儀表板:
http://localhost:5601/app/kibana#/dashboard/Metricbeat-system-overview

TIP:如果在Kibana沒有看到數(shù)據(jù),請嘗試將日期范圍更改為更大的范圍。默認(rèn)情況下,Kibana會顯示最后15分鐘。如果看到錯誤,請確保Metricbeat正在運(yùn)行,然后刷新頁面。

現(xiàn)在你已經(jīng)知道了如何為Elastic Stack建立最簡單的體系結(jié)構(gòu)—一個或多個Beats將事件數(shù)據(jù)直接發(fā)送到同一個服務(wù)器上運(yùn)行的Elasticsearch實(shí)例—現(xiàn)在讓我們添加Logstash。

安裝Logstash

Logstash是一個強(qiáng)大的工具,可以集成多種部署。它提供了大量可供選擇的插件,可以幫助您解析、充實(shí)、轉(zhuǎn)換和緩沖各種來源的數(shù)據(jù)。

要下載和安裝Logstash,打開終端窗口并使用與您的系統(tǒng)匹配的命令:
deb

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.deb
sudo dpkg -i logstash-6.4.0.deb

rpm

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.rpm
sudo rpm -i logstash-6.4.0.rpm

mac

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.tar.gz
tar -xzvf logstash-6.4.0.tar.gz

win
1.從Logstash下載頁面下載Logstash 6.4.0 Windows zip文件。
2.將zip文件的內(nèi)容解壓縮到計(jì)算機(jī)上的一個目錄,例如,C:\Program Files。使用短路徑(少于30個字符)以避免在Windows上遇到文件路徑長度限制。

對于其他操作系統(tǒng),請?jiān)L問Logstash的下載頁面

要了解關(guān)于安裝、配置和運(yùn)行Logstash的更多信息,請閱讀logstash的參考資料

配置logstash監(jiān)聽beats輸入

Logstash提供從各種輸入讀取的輸入插件。在本教程中,你將創(chuàng)建一個Logstash管道配置,它偵聽Beats輸入并將接收到的事件發(fā)送到Elasticsearch輸出。

配置logstash:
1.創(chuàng)建一個新的日志存儲管道配置文件,名為demo-metrics-pipeline.conf。如果您將Logstash作為deb或rpm包安裝的,請?jiān)贚ogstash config目錄中創(chuàng)建該文件。該文件必須包含:

  • 一種輸入階段,配置Logstash在端口5044上偵聽傳入Beats連接。
  • 一個輸入階段,將事件索引到Elasticsearch。輸出階段還配置Logstash寫入Metricbeat索引。
    例如:
input {
  beats {
    port => 5044
  }
}

# The filter part of this file is commented out to indicate that it
# is optional.
# filter {
#
# }

output {
  elasticsearch {
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

當(dāng)你開始使用這個管道配置Logstash時,Beats事件是通過logstash輸出出來的,你可以完全訪問logstach輸出出來的收集、充實(shí)和轉(zhuǎn)換數(shù)據(jù)的功能。

啟動logstash

使用與系統(tǒng)匹配的命令。如果你將Logstash作為deb或rpm包安裝的,請確保config文件位于config目錄中。
deb

sudo /etc/init.d/logstash start

rpm

sudo service logstash start

mac

./bin/logstash -f demo-metrics-pipeline.conf

win

bin\logstash.bat -f demo-metrics-pipeline.conf

TIP:如果你收到JVM錯誤消息,請檢查Java版本,如安裝Logstash中所示。

Logstash開始偵聽來自Beats輸入的事件。接下來需要配置Metricbeat將事件發(fā)送到Logstash。

配置Metricbeat以發(fā)送事件到logstash

Metricbeat默認(rèn)向Elasticsearch發(fā)送事件。要將事件發(fā)送到Logstash中,請修改Metricbeat配置文件Metricbeat .yml。你可以在Metricbeat安裝目錄下找到這個文件,或者對于rpm和deb,在找到/etc/metricbeat。

通過注釋它以禁用輸出到Elasticsearch,然后取消注釋以啟用輸出到logstash:

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
.
.
.
#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

保存文件,然后重新啟動Metricbeat應(yīng)用配置更改。

Logstash從Beats輸入讀取數(shù)據(jù)并將事件索引到Elasticsearch。你還沒有定義篩選器部分,因此Logstash只是將事件轉(zhuǎn)發(fā)給Elasticsearch,而沒有進(jìn)行額外的處理。接下來,您將學(xué)習(xí)如何定義篩選器階段。

定義一個過濾器以使從字段中提取數(shù)據(jù)

Metricbeat收集的系統(tǒng)度量包括一個名為cmdline的字段,該字段包含用于啟動系統(tǒng)進(jìn)程的完整命令行參數(shù)。例如:

"cmdline": "/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container -childID 3
-isForBrowser -boolPrefs 36:1|299:0| -stringPrefs 285:38;{b77ae304-9f53-a248-8bd4-a243dbf2cab1}| -schedulerPrefs
0001,2 -greomni /Applications/Firefox.app/Contents/Resources/omni.ja -appomni
/Applications/Firefox.app/Contents/Resources/browser/omni.ja -appdir
/Applications/Firefox.app/Contents/Resources/browser -profile
/Users/dedemorton/Library/Application Support/Firefox/Profiles/mftvzeod.default-1468353066634
99468 gecko-crash-server-pipe.99468 org.mozilla.machname.1911848630 tab"

與其將整個命令行參數(shù)發(fā)送到Elasticsearch,不如只發(fā)送命令的路徑。一種方法是使用Grok過濾器。學(xué)習(xí)Grok超出了本教程的范圍,但是如果您想了解更多,請參閱Grok filter插件文檔。

要提取路徑,在之前創(chuàng)建的Logstash配置文件的輸入和輸出部分之間添加以下Grok過濾器:

filter {
    if [system][process] {
        if [system][process][cmdline] {
            grok {
                match => { 
                    "[system][process][cmdline]" => "^%{PATH:[system][process][cmdline_path]}"
                }
                remove_field => "[system][process][cmdline]" 
            }
        }
    }
}
  • 使用正則模式匹配路徑,然后將路徑存儲在一個名為cmdline_path的字段中。
  • 移除原始字段cmdline,所以它不在Elasticsearch中索引。

完成之后,完整的配置文件應(yīng)該如下所示:

input {
  beats {
    port => 5044
  }
}

filter {
  if [system][process] {
    if [system][process][cmdline] {
      grok {
        match => {
          "[system][process][cmdline]" => "^%{PATH:[system][process][cmdline_path]}"
        }
        remove_field => "[system][process][cmdline]"
      }
    }
  }
}

output {
  elasticsearch {
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

重新啟動Logstash以獲取更改。事件現(xiàn)在包含一個名為cmdline_path的字段,該字段包含命令路徑:

"cmdline_path": "/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container"

接下來是什么

恭喜你! 你已經(jīng)成功地建立了Elastic Stack。你學(xué)習(xí)了如何流傳輸系統(tǒng)度量到Elasticsearch中在Kibana中可視化這些數(shù)據(jù)。你還學(xué)習(xí)了如何使用Logstash來過濾Metricbeat收集的事件。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內(nèi)容