Metricbeat安裝

startshineye發表於2022-02-08
Beats 是輕量級(資源高效,無依賴性,小型)和開放原始碼日誌傳送程式的集合,這些日誌傳送程式充當安裝在基礎結構中不同伺服器上的代理,用於收集日誌或指標(Metrics)。這些可以是日誌檔案(Filebeat),網路資料(Packetbeat),伺服器指標(Metricbeat)或 Elastic 和社群開發的越來越多的 Beats 可以收集的任何其他型別的資料。收集後,資料將直接傳送到 Elasticsearch 或 Logstash 中進行其他處理。Beats建立在名為 libbeat 的 Go 框架之上,該框架用於資料轉發,這意味著社群一直在開發和貢獻新的 Beats。


環境準備

​ 作為 Elastic Stack 的補充,在使用 Beats 之前,需要已安裝好 Elasticearch 和Kibana。Elasticsearch 用來儲存,分析和檢索資料,而 Kibana 作為視覺化,監控和管理端。接下來將基於 Elastic Stack 7.13.4 版本為基礎,以 Metricbeat 元件為例,其他Beats 元件使用方法類似。在安裝 Beats 時,需要注意的一點是 Beats 的版本要和Elasticsearch 及 Kibana 的版本一致,或至少是大版本是一致的。

Beats 元件的下載和安裝

tar包方式安裝

我們這裡以linux的為例子:其他的類似:

  • 建立檔案目錄

    mkdir -p /usr/local/beats
  • 下載解壓包:
curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.13.4-linux-x8 6_64.tar.gz tar xzvf metricbeat-7.13.4-linux-x86_64.tar.gz

如果我們的網路比較慢的話,我們可以採用國內映象下載:

  • 解壓
tar xzvf metricbeat-7.13.4-linux-x86_64.tar.gz

基礎配置

​ 進入解壓後的 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 來說,只需要執行一次就可以了。

Docker 方式安裝

我們在機器:192.168.2.14上的虛擬機器linux的centos/7下安裝。

拉取映象

docker pull docker.elastic.co/beats/metricbeat:7.13.4

啟動 Docker 版 Metricbeat

下載映象

我們也可以先啟動docker容器,然後再次設定es或者kibana的地址:

docker run -d --name=metricbeat docker.elastic.co/beats/metricbeat:7.13.4

下載 metricbeat.docker.yml 模板檔案

curl -L -O https://raw.githubusercontent.com/elastic/beats/7.13/deploy/docker/metricbeat.docker.yml

如果出現以下問題:

[vagrant@loaclhost /]$ curl -L -O https://raw.githubusercontent.com/elastic/beats/7.13/deploy/docker/metricbeat.docker.yml

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) Failed connect to raw.githubusercontent.com:443; Connection refused

說明我們不能訪問上面的githubusercontent網路,參考:https://github.com/hawtim/blo...

在ip地址查詢地方輸入:raw.githubusercontent.com得出如下結果:
34.png

此時我們需要把對應的raw.githubusercontent.com涉及到的地址新增到linux下的hosts檔案:

185.199.108.133 raw.githubusercontent.com
185.199.108.133 user-images.githubusercontent.com
185.199.108.133 avatars2.githubusercontent.com
185.199.108.133avatars1.githubusercontent.com

35.png

在新增es跟kibana資訊:

output.elasticsearch:
  hosts: '192.168.2.11:9200'
  username: 'elastic'
  password: 'elastic'
setup.kibana:
  host: 192.168.2.14:5601

啟動 metricbeat 容器

docker run -d \
  --name=metricbeat \
  --user=root \
  --volume="$(pwd)/metricbeat.docker.yml:/usr/share/metricbeat/metricbeat.yml:ro" \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  --volume="/sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro" \
  --volume="/proc:/hostfs/proc:ro" \
  --volume="/:/hostfs:ro" \
  docker.elastic.co/beats/metricbeat:7.13.4

metricbeat 配置 整合kibana、 elasticsearch

進入容器

 docker exec -it metricbeat bash

啟動 system 和 容器 監控 modules:

metricbeat modules enable system
metricbeat modules enable docker

啟動 Beats

​ Metricbeat 啟動後會傳送 system metrics 資料到 Elasticsearch。

./metricbeat -e

是不是覺得記憶上面的安裝步驟很麻煩啊?在 Kibana 中,Elastic 已經為我們如何新增資料做了詳細的描述,而且安裝後的版本一定是和你安裝的 Elasticsearch 及Kibana 的版本是一樣的。

具體的操作步驟如下:

Add data(新增資料)

27.png

Metrics

28.png

​ 在上面顯示瞭如下安裝各種 Metrics 的具體步驟。以 System metrics 為例,在上面的頁面中向下滾動:

29.png

30.png

​ 在上面,我們選擇所需要的作業系統。再接著按照上面的安裝步驟一步一步向下走。

我們就可以完成所需要的 Beat 的安裝。

檢查收集到的資料

我們首先開啟 Kibana,並啟動 Dashboard:

31.png

​ 在上面,我們搜尋 metricbeat system,我們就可以發現已經預置的 Dashboard。我們選擇 [Metricbeat System] Overview ECS:

39.png

常見問題

kibana的metricbeat上的Dashboard不展示系統監控資訊

訪問:http://192.168.2.14:5601/api/...出現:

{"statusCode":403,"error":"Forbidden","message":"Access to Fleet API require the superuser role, and for stack security features to be enabled."}

解決方案:

參考:https://www.elastic.co/guide/...

需要配置kibana的安全訪問密碼。

ES設定密碼:

https://blog.csdn.net/qq_3123...

Exiting: data path already locked by another beat. Please make sure that multiple beats are not sharing the same data path (path.data).

進入docker執行的metricbeat容器中之後出現上面問題,

需要重新啟動

kibana的dashboard中無法看到metricbeat部分system資料

原因是我們查詢監控的時候,選擇的是14分鐘,時鐘不一致導致了我們查詢不到最新的展示資訊
38.png

參考

https://blog.csdn.net/u011337...

https://blog.csdn.net/weixin_...

Failed to connect to raw.githubusercontent.com port 443: Connection refused 的問題

https://github.com/hawtim/blo...

官網:

https://www.elastic.co/guide/...

相關文章