作者:馮江濤
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"]