入門Elastic Stack

正在找Elastic Stack(ELK)指南,那本介紹如何搭建Elastic Stack和快速啟動運行的寶典?那你就找對地方了!首先,請安裝以下核心產品:

  • Elasticsearch
  • Kibana
  • Beats
  • Logstash(可選)
    之后你就可以學習到如何集成一套系統監測解決方案。用Metricbeat收集服務器指標數據,將數據發送到ElasticSearch,通過Kibana進行搜索和可視化數據。這些基礎的步驟完成之后,你還可以添加Logstash進行其他分析。

剛開始你可以將Elastic Stack安裝到單獨的虛擬機或者你的筆記本電腦上。

?? 在Elastic Stack設置中集成安全組件是非常重要的。為了快速啟動和運行樣例,現在暫時略去此步驟。但項目中在網絡上發送敏感數據前,請確保已經加密 secure the Elastic Stack啟用 encrypted communications.

開始之前
安裝Elasticsearch

Elasticsearch是一款實時,分布式存儲,搜索和分析引擎。用途廣泛,但最重要的一個特點是索引半結構化的數據,比如日志或者解碼的網絡數據包。

??你可以在自己的硬件上運行Elasticsearch,或者ElasticCloud運行 hosted Elasticsearch Service。這項服務在AWS和GCP上都有。免費試用Elasticsearch Service.

下載安裝Elasticsearch,打開終端并運行命令(deb for Debian/Ubuntu, rpm for Redhat/Centos/Fedora, mac or brew for OS X, linux for Linux, and win for Windows):
deb:
Version 7.8.0 of Elasticsearch has not yet been released.
rpm:
Version 7.8.0 of Elasticsearch has not yet been released.
mac:
Version 7.8.0 of Elasticsearch has not yet been released.
brew:
Version 7.8.0 of Elasticsearch has not yet been released.
linux:
Version 7.8.0 of Elasticsearch has not yet been released.
win:
Version 7.8.0 of Elasticsearch has not yet been released.
其他操作系統, 請訪問 Elasticsearch download 頁面.

??默認的 cluster.namenode.name分別是elasticsearch和你的主機名。如果你打算繼續使用這個集群或者添加更多的節點,那么最好把這些參數改成唯一的名稱。詳細關于這些修改和其他在elasticsearch.yml中的參數,參考Configuring Elasticsearch.

更多關于Elasticsearch安裝、配置和運行的細節,請參閱Elasticsearch Reference

確保Elasticsearch啟動運行

測試Elasticsearch守護進程啟動并運行,發送HTTP的GET請求到端口9200。

curl http://127.0.0.1:9200

Windows上,如果你沒有安裝cURL,那就直接在瀏覽器打開http://127.0.0.1:9200
如果運行正常,那么你可以看到如下的返回信息:

{
  "name" : "QtI5dUu",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "DMXhqzzjTGqEtDlkaMOzlA",
  "version" : {
    "number" : "7.8.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是用域數據分析和可視化的Elasticsearch最佳搭檔。通過Ki 辦啊可以與Elasticsearch索引進行交互,查詢,查看。你可以在Kibana使用高級的數據分析、數據可是化,它支持多種圖、表、地圖等。

??如果您在Elastic Cloud托管Elasticsearch,那么只需輕輕一點開關就可以啟用Kibana

我建議你在與Elasticsearch同一臺服務器上安裝Kibana,但倒也不是必須這么做。如果你將產品安裝在不同的服務器上,那么就需要啟動之前在Kibana配置文件kibana.yml上修改Elasticsearch服務器的地址(IP:PORT).

可以通過終端下載Kibana安裝包,國內可以使用huawei鏡像下載:
deb, rpm, or linux:
Version 7.8.0 of Kibana has not yet been released.
mac:
Version 7.8.0 of Kibana has not yet been released.
brew:
Version 7.8.0 of Kibana has not yet been released.
win:
Version 7.8.0 of Kibana has not yet been released.

其他操作系統, 訪問Kibana download頁面.

關于安裝、配置、運行Kibana的相關細節,參閱Kibana Reference

訪問Kibana頁面控制臺

訪問Kibana頁面控制臺,在瀏覽器中打開http://127.0.0.1:5601

安裝Beats

Beats是您作為代理安裝在服務器上的開源數據發送者,用于將運營數據發送到Elasticsearch。 Beats可以將數據直接發送到Elasticsearch或通過Logstash發送,您可以在其中進一步處理和增強數據。

每個Beat是單獨安裝的產品。在本指南中,您將學習如何在啟用system模塊以收集系統指標的情況下安裝和運行Metricbeat。

要了解有關安裝和配置其他Beats的更多信息,請參閱《入門指南》文檔.

Elastic Beats To capture
Auditbeat Audit data
Filebeat Log files
Functionbeat Cloud data
Heartbeat Availability monitoring
Journalbeat Systemd journals
Metricbeat Metrics
Packetbeat Network traffic
Winlogbeat Windows event logs
安裝Metricbeat

下載安裝Metricbeat,打開終端運行你的系統支持的命令:
deb:
Version 7.8.0 of Metricbeat has not yet been released.
rpm:
Version 7.8.0 of Metricbeat has not yet been released.
mac:
Version 7.8.0 of Metricbeat has not yet been released.
brew:
Version 7.8.0 of Metricbeat has not yet been released.
linux:
Version 7.8.0 of Metricbeat has not yet been released.
win:
Version 7.8.0 of Metricbeat has not yet been released.

其他系統,前往Beats download 頁面。

將系統數據發送到Elasticsearch

Metricbeat提供了預構建的模塊,可用于在約5分鐘內快速實現和部署系統監視解決方案,并帶有示例儀表板和數據可視化。

這一節中,您將學到如何運行system模塊從操作系統和服務器上運行的服務中收集數據。system模塊收集操作系統級別的數據,比如CPU用量,內存,文件系統,磁盤IO和網絡IO統計量,同時系統上運行的每個進程的頂級統計數據。

開始之前:檢查Elasticsearch和Kibana已經正常運行并且能夠接收來自Metricbeat的數據。

設置system模塊并開始收集系統數據:

  1. 從Metricbeat安裝目錄中啟動system模塊:

deb and rpm:

sudo metricbeat modules enable system

mac and linux:

./metricbeat modules enable system

brew:

metricbeat modules enable system

win:

PS C:\Program Files\Metricbeat> .\metricbeat.exe modules enable system
  1. 設置初始環境:

deb and rpm:

sudo metricbeat setup -e

mac and linux:

./metricbeat setup -e

brew:

metricbeat setup -e

win:

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

setup命令將加載Kibana儀表板。如果已經設置了儀表板,請忽略此命令。 -e標志是可選的,并將輸出發送到標準錯誤而不是syslog

啟動Metricbeat:

deb and rpm:

sudo service metricbeat start

mac and linux:

./metricbeat -e

brew:

metricbeat -e

win:

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

Metricbeat運行并開始將系統指標發送到Elasticsearch。

Kibana可視化系統數據

打開瀏覽器,訪問Metricbeat系統儀表盤

??如果你在Kibana中看不到數據,試著把數據范圍擴大。默認,Kibana只展示最近15分鐘之內的數據;如果有錯誤,請確保metricbeat正常運行,并刷新頁面。

單擊Host Overview以查看有關所選主機的詳細指標

儀表盤1

儀表盤2

現在您已經知道如何為Elastic Stack設置最簡單的架構-一個或多個Beats將事件數據直接發送到運行在同一服務器上的Elasticsearch實例-讓我們添加Logstash。

安裝Logstash(可選)

Logstash是一個可以與多種部署交互的強大的工具。它提供大陸昂可選插件來幫你從各種數據源解析、擴展、轉換、緩存數據。如果你的數據要求其他Beats里無法處理的需求,你可以在部署中添加Logstash。

下載安裝Logstash,打開你的系統終端,用系統支持的命令:
deb:
Version 7.8.0 of Logstash has not yet been released.
rpm:
Version 7.8.0 of Logstash has not yet been released.
mac and linux:
Version 7.8.0 of Logstash has not yet been released.
brew:
Version 7.8.0 of Logstash has not yet been released.
win:
Version 7.8.0 of Logstash has not yet been released.

其他系統,參閱 Logstash download

更多關于安裝、配置、運行Logstash,參閱Logstash Reference

配置Logstash監聽Beats的輸入

Logstash提供輸入插件可以從不同的輸入源獲取數據。在本指南中,你將創建一個Logstash管道配置監聽Beats作為輸入源,并將接收到的事件作為輸出發送給Elasticssearch。

配置Logstash:

  1. 新建一個Logstash管道,命名配置文件為demo-metricss-pipeline.conf。如果你是通過deb或者rpm包安裝的Logstash,將這個文件創建在Logstash的config目錄下,這個文件需要包含:
  • 輸入階段 :為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}"
  }
}

當你啟動有這份管道配置文件的Logstash時,Beats的事件通過Logstash路由,通過Logstash我們有完全的控制權限來收集、擴展、轉換和傳輸數據。

啟動Logstash

使用系統支持的命令行。如果你通過deb或者rpm包安裝Logstash,確保配置文件在config目錄下。其他平臺,config目錄不是必須的,但是最好能保持一致。
deb:

sudo /etc/init.d/logstash start

rpm:

sudo service logstash start

mac and linux:

cd logstash-7.8.0
./bin/logstash -f path/to/config/demo-metrics-pipeline.conf

brew:

logstash -f path/to/config/demo-metrics-pipeline.conf

win:

bin\logstash.bat -f path\to\config\demo-metrics-pipeline.conf

??如果出現JVM錯誤信息,請確保java 版本是跟 Installing Logstash
中匹配的。

Logstash開始監聽來自Beats的事件作為輸入。接下來你需要配置Metricbeat來發送事件到Logstash。

配置Metricbeat發送事件到Logstash

Metricbeat默認發送事件到Elasticsearch。發送事件到Logstash,修改Metricbeat配置文件metricbeat.yml。你可以在Metricbeat安裝目錄下找到這份文件。rpm和deb在/etc/metricbeat,brew在/usr/local/etc/metricbeat.

注釋output.elasticsearch這段來停用,然后刪掉注釋output.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來應用修改的配置。

Logstash從Beats中讀取數據然后往Elasticsearch發送索引事件。到目前位置,你還沒有定義過濾器,所以Logstash只是簡單地將事件轉發到Elasticsearch而沒有做任何其他的處理。接下來,你將學習如何定義過濾器。

定義過濾器從指定字段中提取數據

Metricbeat收集的系統指標包括一個名為cmdline的字段,其中包含用于啟動系統進程的完整命令行參數。例如:

"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"

除了發送這個命令行參數到Elasticsearch之外, 你可能還想要發送命令行的路徑。有一個方法就是用Grok過濾器。學習Grok超出了入門指南的范圍,你可以在 Grok filter plugin文檔中學習更多有關內容。

抓取路徑,可以在Logstash配置的輸入輸出配置之間添加下面Grok過濾器:

filter {
  if [system][process] {
    if [system][process][cmdline] {
      grok{
          match => { 1.
            "[system][process][cmdline]" => "^%{PATH:[system][process][cmdline_path]}"
}
        remove_field => "[system][process][cmdline]" 2.
}
}
}
}
  1. 使用模式匹配路徑,然后存儲這些路徑到一個名為cmdline_path的域中
  2. 移除最初的域cmdline,這樣它就不會在Elasticsearch里被索引

至此,整個配置文件會是這樣的:

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來更新配置。現在事件引入了一個名為cmdline_path的域:

"cmdline_path": "/Applications/Firefox.app/Contents/MacOS/plugin-container.app/Contents/MacOS/plugin-container"
接下來是什么?

恭喜!你已經成功的配置好了Elastic Stack。你學到了如何將系統數據導入Elasticsearch,在Kibana中可視化數據。你要學習了如何使用Logstash過濾Metricbeat收集的數據。

接下來,你想要在Elastic Stack設置安全性,激活你的試用許可,這樣你可以激活Elastic Stack的所有功能。如何學習?

否想通過指標監視和集中式日志分析快速啟動并運行?在Kibana中試用Metrics應用程序和Logs應用程序。更多細節,參見Metrics Monitoring GuideLogs Monitoring Guide.
隨后, 想要在生產環境中配置,參考 Elastic Stack Installation and Upgrade Guide

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

推薦閱讀更多精彩內容