這篇文章是 “Beats 入門教程 (一)”的續篇。在上一篇文章,我們主要講述了Beats的一些理論方面的知識。在這篇文章中,我們將具體展示如何使用Filebeat及Metriceat把數據導入到我們的Elasticsearch並對他們進行分析。
安裝Elastic Stack
對於我們的測試環境,我們可以有幾種選擇:
- 安裝本機的Elastic Stack。您可以參閱我之前的文章“Elastic:菜鳥上手指南”來進行安裝Elasticsearch及Kibana
- 安裝Elastic Cloud:您可以參閱我之前的文章“在Elastic雲上3分鐘部署Elastic集羣”來部署Elastic Stack。你也可以參考我錄的視頻教程
- 安裝阿里Elastic集羣:您可以參閱文章“如何在阿里雲上構建Elastic集羣”
- 安裝AWS Elastic集羣:您可以參閱文章“如何在AWS上一步一步地安裝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信息:
下面的就留給你們自己探索了。