Beats:Beats 入門教程 (二)

這篇文章是 “Beats 入門教程 (一)”的續篇。在上一篇文章,我們主要講述了Beats的一些理論方面的知識。在這篇文章中,我們將具體展示如何使用Filebeat及Metriceat把數據導入到我們的Elasticsearch並對他們進行分析。

 

安裝Elastic Stack

對於我們的測試環境,我們可以有幾種選擇:

在今天的練習中,我將主要以本機的Elastic Stack及Elastic cloud來講述。針對其它的環境,基本都是一樣的。

 

Filebeat

我們打開我們的自己的Kibana,並按照如下的步驟來進行安裝:

由於Filebeat是log相關的,所以我們需要選擇“Add log data”。我們想對系統(System)日誌進行監控,所以,我們選擇“System logs”:

然後,我們根據我們自己運行的平臺,我們分別使用不同的命令來在我們的平臺上進行安裝:

在上面我們可以看到最詳細的安裝指令。根據我的情況,我在MacOS上部署我的Filebeat。具體的安裝步驟如下:

下載Filebeat

我們執行如下的指令來安裝Filebeat:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.0-darwin-x86_64.tar.gz
tar xzvf filebeat-7.5.0-darwin-x86_64.tar.gz
cd filebeat-7.5.0-darwin-x86_64/

配置Filebeat

我們在Filebeat的安裝目錄下,可以發現一個叫做filebeat.yml的文件。這個文件就是filebeat的配置文件:

$ pwd
/Users/liuxg/elastic8/filebeat-7.5.0-darwin-x86_64
liuxg-2:filebeat-7.5.0-darwin-x86_64 liuxg$ ls
LICENSE.txt            fields.yml             kibana
NOTICE.txt             filebeat               logs
README.md              filebeat.reference.yml module
data                   filebeat.yml           modules.d

我們用我們所喜愛的編輯打開filebeat.yml文件,並找到如下的部分:

output.elasticsearch:
  hosts: ["<es_url>"]
  username: "elastic"
  password: "<password>"
setup.kibana:
  host: "<kibana_url>"

在上面,我們需要把我們的Elasticsearch及Kibana的host地址填上。針對我本地的情況,我填入localhost:9200和localhost:5601。如果是針對本地安裝的Elastic Stack來說,這些都是默認的配置,我們甚至不需要做任何的修改。如果我們對我們的Elasticsearch已經設置用戶名及密碼的話,那麼請填入你自己的用戶名及密碼。

Elastic cloud

如下的配置只限於Elastic Cloud。針對Elastic cloud,我們可以避免把我們的用戶名及密碼寫到我們的filebeat.yml文件中,我們可以使用cloud.id來及keystore管理來幫我們實現。

我們首先在Terminal中打入如下的命令:

./filebeat keystore create

接着打入如下的命令:

./filebeat keystore add CLOUD_PWD

在這一步我們拷貝在Cloud中所創建的密碼,並粘貼下來。

最後,我們修改我們的filebeat.yml文件

根據上面的提示,一旦我們設置好cloud.id,它將覆蓋我們的output.elasticsearch中的設置。

啓動/禁止Filebeat模塊

我們可以通過如下的命令來展示所有Filebeat的模塊:

./filebeat modules list

在上面,我們可以看到redis模塊已經被成功地啓動了。如果我們想啓動system模塊,我們可以使用如下的命令:

./filebeat modules enable system

上面的命令的返回結果是:

Enabled system

如果我們想不啓動redis模塊,我們可以使用如下的命令:

./filebeat modules disable redis

上面的命令的返回結果是:

Disabled redis

我們可以使用如下的命令再次查詢我們啓動的模塊:

在上面,我們可以清楚地看到redis模塊已經被成功地關閉了,取而代之的是system模塊被成功地啓動了。我們可以在filebeat的安裝目錄下的modules.d子目錄下可以查看到system模塊的配置文件:

從上面我們可以清楚地看出來system.yml文件已經被成功地啓動了。我們可以用我們所喜愛的編輯器來修改這個文件的配置。

啓動Filebeat

在上面,我們已經成功地配置了filebeat,在接下來的步驟中,我們來啓動Filebeat:

./filebeat setup

setup命令將加載Kibana儀表板。 如果已經設置了儀表板,請忽略此命令。上面命令的輸出結果爲:

./filebeat setup
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded machine learning job configurations
Loaded Ingest pipelines

在上面,我們可以看出來在setup這一步它幫我們配置好dashboard,裝載機器學習及ingest pipleline。

我們接下來運行如下的命令來把我們的sysetm模塊的數據送入到Elasticsearch之中:

./filebeat -e

我們點擊“Check data”按鈕:

在Kibana中,我們可以看到已經收到數據。

運用Dashboard展示Filebeat數據

我們打開Kibana,並點擊Dashboard應用:

我們選擇“[Filebeat System] Syslog dashboard ECS”:

在上面它展示了我的電腦裏的Syslog的所有log信息。我們也可以在上面選擇“Sudo commands”,“SSH logins”及“New users and groups”分別進行查看。

從上面的展示我們可以查看來:Elastic公司除了提供一個強大的數據搜索引擎之外,也在Elastic Stack中提出了開箱即用的工具。我們只需要簡單的幾部配置,就可以很方便地把我們所需要的日誌數據導入到Elasticsearch中進行分析。
 

Metricbeat

Metricbeat的使用和Filebeat的使用非常地相似。我們打開我們的自己的Kibana,並按照如下的步驟來進行安裝:

由於Metricbeat是屬於Metrics範疇,所以我們選擇“Add metric data”:

同樣地,針對我們的metrics,我們也想對sysem模塊來做指標分析:

根據不同的平臺,我們選擇不同的方法進行安裝。針對我的情況,我在我們的MacOS上進行安裝。簡單地說:

下載Metricbeat

我們首先安裝如下的指令來下載並安裝metribeat:

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.5.0-darwin-x86_64.tar.gz
tar xzvf metricbeat-7.5.0-darwin-x86_64.tar.gz
cd metricbeat-7.5.0-darwin-x86_64/

配置Metricbeat

我們首先進入到Metricbeat的安裝目錄,我們可看到如下的文件:

 pwd
/Users/liuxg/elastic8/metricbeat-7.5.0-darwin-x86_64
liuxg-2:metricbeat-7.5.0-darwin-x86_64 liuxg$ ls
LICENSE.txt              fields.yml               metricbeat.reference.yml
NOTICE.txt               kibana                   metricbeat.yml
README.md                logs                     module
data                     metricbeat               modules.d

在安裝目錄的根目錄下, 我們可以發現一個叫做metribeat.yml的文件。這個文件就是metricbeat的配置文件。我們用我們喜愛的編輯器,並打開這個文件。找到如下的部分:

output.elasticsearch:
  hosts: ["<es_url>"]
  username: "elastic"
  password: "<password>"
setup.kibana:
  host: "<kibana_url>"

在上面,我們需要把我們的Elasticsearch及Kibana的host地址填上。針對我本地的情況,我填入localhost:9200和localhost:5601。如果是針對本地安裝的Elastic Stack來說,這些都是默認的配置,我們甚至不需要做任何的修改。如果我們對我們的Elasticsearch已經設置用戶名及密碼的話,那麼請填入你自己的用戶名及密碼。

Elastic cloud

如下的配置只限於Elastic Cloud。針對Elastic cloud,我們可以避免把我們的用戶名及密碼寫到我們的metricbeat.yml文件中,我們可以使用cloud.id來及keystore管理來幫我們實現。

我們首先在Terminal中打入如下的命令:

./metricbeat keystore create

接着打入如下的命令:

./metricbeat keystore add CLOUD_PWD

在這一步我們拷貝在Cloud中所創建的密碼,並粘貼下來。

然後修改我們的metricbeat.yml:

根據上面的提示,一旦我們設置好cloud.id,它將覆蓋我們的output.elasticsearch中的設置。

啓動/禁止Metricbeat模塊

我們可以通過如下的命令來展示所有Metricbeat的模塊:

在上面我們可以看出來redis模板已經被啓動,其它的模塊都被禁止。

如果我們想啓動system模塊,我們可以使用如下的命令:

./metricbeat modules enable system

上面命令的返回結果是:

Enabled system

如果我們想禁止redis模塊,我們可以使用如下的命令:

./metricbeat modules disable redis

上面命令的返回結果是:

Disabled redis

我們可以使用如下的命令再次查詢我們啓動的模塊:

我們可以看出來我們的redis模塊已經從Enabled裏移除了,取而代之的是system模塊。

我們可以在metricbeat的安裝目錄下的modules.d子目錄下可以查看到system模塊的配置文件:

我們可以在system.yml中找到system模塊的配置文件。

啓動Metricbeat

在上面,我們已經成功地配置了metric,在接下來的步驟中,我們來啓動Metricbeat:

./metricbeat setup

setup命令將加載Kibana儀表板。 如果已經設置了儀表板,請忽略此命令。上面命令的輸出結果爲:

./metricbeat setup
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards

我們接下來運行如下的命令來把我們的sysetm模塊的數據送入到Elasticsearch之中:

./metricbeat -e

這個時候,我們在Kibana中點擊“Check data”按鈕:

我們可以看到數據已經被Elasticsearch成功收到了。

運用Dashboard展示Merticbeat數據

在Kibana中,我們點擊Dashboard應用:

我們來點擊“[Metricbeat System] Overview ECS”:

 

我們可以看到我們的電腦的system指標信息。我們也可以點擊上面的“Host Overview”及“Container overview”。我們點擊上面所示的liu-2.local host,我們可以看到關於這個host的所有的system信息:

 

下面的就留給你們自己探索了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章