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

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

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

安裝Elasticsearch

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

要下載和安裝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)容解壓縮到計算機上的一個目錄马靠,例如,C:\Program Files

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

cd C:\Program Files\elasticsearch-6.4.0

4.啟動Elasticsearch

bin\elasticsearch.bat

對于其他操作系統(tǒng)甩鳄,請訪問Elasticsearch下載頁面
要了解關(guān)于安裝额划、配置和運行Elasticsearch的更多信息娩贷,請閱讀Elasticsearch參考資料

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

要測試Elasticsearch守護進程是否啟動并運行,請嘗試在端口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è)計用于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)容解壓縮到一個目錄在您的計算機上瘟芝,例如,C:\Program Files
3.作為管理員打開命令提示符并導(dǎo)航到包含提取文件的目錄褥琐,例如:

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

4.啟動Kibana

bin\kibana.bat

對于其他操作系統(tǒng)锌俱,請訪問Kibana下載頁面
要了解關(guān)于安裝敌呈、配置和運行Kibana的更多信息贸宏,請閱讀Kibana參考資料造寝。

啟動Kibana web界面

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

安裝Beats

Beats是作為開源數(shù)據(jù)托運人代理安裝在服務(wù)器上线脚,用于向Elasticsearch發(fā)送操作數(shù)據(jù)赐稽。Beats可以直接將數(shù)據(jù)發(fā)送到Elasticsearch或通過Logstash,在Logstash里你可以進一步處理和增強數(shù)據(jù)浑侥。
每個Beat是一個單獨的可安裝的產(chǎn)品姊舵。在本教程中,你將了解如何安裝寓落、運行Metricbeat和系統(tǒng)模塊括丁,使之能夠收集系統(tǒng)指標。
要了解關(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圖標并選擇以管理員身份運行)。
5.從PowerShell提示符陨簇,運行以下命令將Metricbeat安裝為Windows服務(wù)

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

對于其他操作系統(tǒng)吐绵,請訪問Beats下載頁面

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

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

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

在你開始之前驗證Elasticsearch和Kibana正在運行,Elasticsearch準備從Metricbeat接收數(shù)據(jù)拨齐。
建立系統(tǒng)模塊并開始收集系統(tǒng)指標鳞陨。
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標志是可選的,并將輸出發(fā)送到標準錯誤掏导,而不是syslog享怀。
3.啟動Metricbeat
deb and rpm

sudo service metricbeat start

mac

./metricbeat -e

win

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

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

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

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

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

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

安裝Logstash

Logstash是一個強大的工具疆偿,可以集成多種部署咱筛。它提供了大量可供選擇的插件,可以幫助您解析杆故、充實眷蚓、轉(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)容解壓縮到計算機上的一個目錄叉钥,例如罢缸,C:\Program Files。使用短路徑(少于30個字符)以避免在Windows上遇到文件路徑長度限制投队。

對于其他操作系統(tǒng)枫疆,請訪問Logstash的下載頁面

要了解關(guā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包安裝的价说,請在Logstash 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輸出出來的收集、充實和轉(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默認向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,而沒有進行額外的處理行贪。接下來漾稀,您將學(xué)習(xí)如何定義篩選器階段。

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

Metricbeat收集的系統(tǒng)度量包括一個名為cmdline的字段建瘫,該字段包含用于啟動系統(tǒng)進程的完整命令行參數(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)系作者
  • 序言:七十年代末夫植,一起剝皮案震驚了整個濱河市讹剔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌详民,老刑警劉巖延欠,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沈跨,居然都是意外死亡由捎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門饿凛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狞玛,“玉大人,你說我怎么就攤上這事涧窒∥樱” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵杀狡,是天一觀的道長。 經(jīng)常有香客問我贰镣,道長呜象,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任碑隆,我火速辦了婚禮恭陡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘上煤。我一直安慰自己休玩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拴疤,像睡著了一般永部。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呐矾,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天苔埋,我揣著相機與錄音,去河邊找鬼蜒犯。 笑死组橄,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的罚随。 我是一名探鬼主播玉工,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼淘菩!你這毒婦竟也來了遵班?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤瞄勾,失蹤者是張志新(化名)和其女友劉穎费奸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體进陡,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡愿阐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了趾疚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缨历。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖糙麦,靈堂內(nèi)的尸體忽然破棺而出辛孵,到底是詐尸還是另有隱情,我是刑警寧澤赡磅,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布魄缚,位于F島的核電站,受9級特大地震影響焚廊,放射性物質(zhì)發(fā)生泄漏冶匹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一咆瘟、第九天 我趴在偏房一處隱蔽的房頂上張望嚼隘。 院中可真熱鬧,春花似錦袒餐、人聲如沸飞蛹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卧檐。三九已至墓懂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泄隔,已是汗流浹背拒贱。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留佛嬉,地道東北人逻澳。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像暖呕,于是被迫代替她去往敵國和親斜做。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

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