
創作人:馮江濤
審稿人:劉帥
Beats 是輕量級(資源高效,無依賴性,小型)和開放源代碼日志發送程式的集合,這些日志發送程式充當安裝在基礎結構中不同伺服器上的代理,用于收集日志或名額(Metrics)。這些可以是日志檔案(Filebeat),網絡資料(Packetbeat),伺服器名額(Metricbeat)或 Elastic 和社群開發的越來越多的 Beats 可以收集的任何其他類型的資料。 收集後,資料将直接發送到 Elasticsearch 或 Logstash 中進行其他處理。Beats 建立在名為 libbeat 的 Go 架構之上,該架構用于資料轉發,這意味着社群一直在開發和貢獻新的 Beats。
Elastic Beats
環境準備
作為 Elastic Stack 的補充,在使用 Beats 之前,需要已安裝好 Elasticearch 和 Kibana。Elasticsearch 用來存儲,分析和檢索資料,而 Kibana 作為可視化,監控和管理端。
接下來将基于 Elastic Stack 7.1.0 版本為基礎,以 Metricbeat 元件為例,其他 Beats 元件使用方法類似。在安裝 Beats 時,需要注意的一點是 Beats 的版本要和 Elasticsearch 及 Kibana 的版本一緻,或至少是大版本是一緻的。
Beats 元件的下載下傳和安裝
根據不同作業系統,選擇合适的安裝包。下面以 Elastic Stack 7.10 為例來展示 Metricbeat 的安裝過程。如果你想安裝其它版本的 Metricbeat,請替換指令行中的版本 7.10.0,然後按照同樣的方法來進行安裝。
deb:
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.0-amd64.deb
sudo dpkg -i metricbeat-7.10.0-amd64.deb
rpm:
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.0-x86_64.rpm
sudo rpm -vi metricbeat-7.10.0-x86_64.rpm
mac:
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.0-darwin-x86_64.tar.gz
tar xzvf metricbeat-7.10.0-darwin-x86_64.tar.gz
brew:
brew tap elastic/tap
brew install elastic/tap/metricbeat-full
linux:
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.0-linux-x86_64.tar.gz
tar xzvf metricbeat-7.10.0-linux-x86_64.tar.gz
win:
- 下載下傳
- zip 安裝包:metricbeat-7.10.0-windows-x86_64.zip: https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.0-windows-x86_64.zip
- MSI 安裝包: metricbeat-7.10.0-windows-x86_64.msi : https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.0-windows-x86_64.msi
- 解壓并重命名 zip 安裝包到 C:\Program Files\Metricbeat 。
- 以管理者身份打開 CDM 指令視窗。
- 進入 Metricbeat 目錄執行安裝.
# 1.進入目錄
> cd C:\Program Files\Metricbeat
# 2.安裝Metricbeat為Windows服務
> .\install-service-metricbeat.ps1
更多 Beats 元件可以前往下載下傳頁面 Beats Download https://www.elastic.co/cn/downloads/beats
基礎配置
進入解壓後的 Metricbeat 目錄可以看到,安裝目錄的根目錄下如下檔案及檔案夾:
$ ls -l
fields.yml
kibana
LICENSE.txt
metricbeat
# 完整的配置檔案模闆
metricbeat.reference.yml
# 預設的配置檔案
metricbeat.yml
module
modules.d
NOTICE.txt
README.md
我們隻修改使用 metricbeat.yml 這個配置檔案。
如果你的 Elasticsearch 和 Kibana 都安裝在同一台主機上,并配置了預設的端口,可以跳過此步驟不修改配置,Metricbeat 預設指定了 localhost。
output.elasticsearch:
hosts: ["localhost:9200"]
# 如果ElasticSearch啟用了認證需要配置賬号密碼
username: "YOUR_ACCOUNT"
password: "YOUR_PASSWORD"
setup.kibana:
host: "localhost:5601"
# 如果kibana啟用了認證需要配置賬号密碼
username: "YOUR_ACCOUNT"
password: "YOUR_PASSWORD"
配置 Metricbeat,指定運作的子產品。
# 檢視所有支援的子產品
./metricbeat modules list
# 打開 system 子產品
./metricbeat modules enable system
設定初始化環境,在此之前確定 Elasticsearch 和 Kibana 已經正常運作
./metricbeat setup -e
上面的指令輸出為:
./metricbeat setup
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
如上所示
在 setup 這個過程中,它将為 Beat 生成相應的 Dashboard,Index patterns,Index template, 索引生命周期管理政策以及相應的 Ingest pipeline。這個指令的運作時間比較長。需要耐心等待。上面的指令針對一個 Beat 來說,隻需要運作一次就可以了。
啟動 Beats
Metricbeat 啟動後會發送 system metrics 資料到 Elasticsearch。
./metricbeat -e
是不是覺得記憶上面的安裝步驟很麻煩啊?在 Kibana 中,Elastic 已經為我們如何添加資料做了詳細的描述,而且安裝後的版本一定是和你安裝的 Elasticsearch 及 Kibana 的版本是一樣的。
具體的操作步驟如下:
在上面顯示了如下安裝各種 Metrics 的具體步驟。以 System metrics 為例,在上面的頁面中向下滾動:
在上面,我們選擇所需要的作業系統。再接着按照上面的安裝步驟一步一步向下走。我們就可以完成所需要的 Beat 的安裝。
檢查收集到的資料
我們首先打開 Kibana,并啟動 Dashboard:
在上面,我們搜尋 metricbeat system,我們就可以發現已經預置的 Dashboard。
我們選擇 [Metricbeat System] Overview ECS:
點選 Host Overview 可以檢視 Metrics 的詳情:
Docker 方式安裝
拉取鏡像
docker pull docker.elastic.co/beats/metricbeat:7.10.0
啟動 Docker 版 Metricbeat
通過 -E 設定 Elasticsearch 和 Kibana 的位址及其他參數(如果有必要)。
注意:如果是本機安裝的服務,Docker 是無法通過 localhost 連接配接到 Elasticsearch 和 Kibana 的,可以通過增加參數 docker run --net=host,讓 Docker 可以通路到主控端的 hostname,或者可以通過 ip addr show docker0 檢視 docker 的網關位址來通路主控端。
docker run --net=host \
docker.elastic.co/beats/metricbeat:7.10.0 \
setup -E setup.kibana.host=elastichost:5601 \
-E output.elasticsearch.hosts=["elastichost:9200"]
創作人簡介:
馮江濤,關注大資料相關技術棧,擅長 HDFS、Elasticsearch 存儲相關,Spark、
Flink 計算相關,以及大資料中台的開發。 Talk is cheap. Show me the code.