雲計算

安裝 Beats (本地及 Docker)-Elastic Stack 實戰手冊

作者:馮江濤

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:

# 1.進入目錄
> cd C:\Program Files\Metricbeat
# 2.安裝Metricbeat為Windows服務
> .\install-service-metricbeat.ps1

更多 Beats 組件可以前往下載頁面 Beats Downloadhttps://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"] 

Leave a Reply

Your email address will not be published. Required fields are marked *