Elastic Beats介紹


需要學習的地方:概念,用法,模塊使用

Elastic Beats介紹

Elastic Stack傳統上由三個主要組件(Elasticsearch,Logstash和Kibana)組成,早已脫離了這種組合,現在也可以與名為“ Beats”的第四個元素結合使用--一個針對不同用例的日志運送者系列。 現在網上有一種說法叫做ELKB,這里的B就是指的beats.

在集中式日志記錄中,數據管道包括三個主要階段:聚合,處理和存儲。 在ELK堆棧中,傳統上,前兩個階段是堆棧工作量Logstash的職責。執行這些任務需要付出一定的代價。 由於與Logstash的設計有關的內在問題,性能問題變得經常發生,尤其是在復雜的管道需要大量處理的情況下。將Logstash的部分職責外包的想法也應運而生,尤其是將數據提取任務轉移到其他工具上。

Beats到底是什么呢

Beats是輕量級(資源高效,無依賴性,小型)和開放源代碼日志發送程序的集合,這些日志發送程序充當安裝在基礎結構中不同服務器上的代理,用於收集日志或指標(metrics)。這些可以是日志文件(Filebeat),網絡數據(Packetbeat),服務器指標(Metricbeat)或Elastic和社區開發的越來越多的Beats可以收集的任何其他類型的數據。 收集后,數據將直接發送到Elasticsearch或Logstash中進行其他處理。Beats建立在名為libbeat的Go框架之上,該框架用於數據轉發,這意味着社區一直在開發和貢獻新的Beats。

Filebeat

顧名思義,Filebeat用於收集和傳送日志文件,它也是最常用的Beat。 Filebeat如此高效的事實之一就是它處理背壓的方式-因此,如果Logstash繁忙,Filebeat會減慢其讀取速率,並在減速結束后加快節奏。
Filebeat幾乎可以安裝在任何操作系統上,包括作為Docker容器安裝,還隨附用於特定平台(例如Apache,MySQL,Docker等)的內部模塊,其中包含這些平台的默認配置和Kibana對象。

Packetbeat

網絡數據包分析器Packetbeat是第一個引入的beat。 Packetbeat捕獲服務器之間的網絡流量,因此可用於應用程序和性能監視。
Packetbeat可以安裝在受監視的服務器上,也可以安裝在其專用服務器上。 Packetbeat跟蹤網絡流量,解碼協議並記錄每筆交易的數據。 Packetbeat支持的協議包括:DNS,HTTP,ICMP,Redis,MySQL,MongoDB,Cassandra等。

Metricbeat

Metricbeat是一種非常受歡迎的beat,它收集並報告各種系統和平台的各種系統級度量。 Metricbeat還支持用於從特定平台收集統計信息的內部模塊。您可以使用這些模塊和稱為指標集的metricsets來配置Metricbeat收集指標的頻率以及要收集哪些特定指標。

Heartbeat

Heartbeat是用於“uptime monitoring”的。本質上,Heartbeat是探測服務以檢查它們是否可訪問的功能,例如,它可以用來驗證服務的正常運行時間是否符合您的SLA。 您要做的就是為Heartbeat提供URL和正常運行時間指標的列表,以直接發送到Elasticsearch或Logstash以便在建立索引之前發送到您的堆棧。

Auditbeat

Auditbeat可用於審核Linux服務器上的用戶和進程活動。 與其他傳統的系統審核工具(systemd,auditd)類似,Auditbeat可用於識別安全漏洞-文件更改,配置更改,惡意行為等。

Winlogbeat

Winlogbeat僅會引起Windows系統管理員或工程師的興趣,因為它是專門為收集Windows事件日志而設計的節拍。 它可用於分析安全事件,已安裝的更新等。

Functionbeat

Functionbeat被定義為“serverless”的發件人,可以將其部署為收集數據並將其發送到ELK堆棧的功能。 Functionbeat專為監視雲環境而設計,目前已針對Amazon設置量身定制,可以部署為Amazon Lambda函數,以從Amazon CloudWatch,Kinesis和SQS收集數據。

如何使用beats

現在我們來用metricbeat展示如何使用beats。其他的可以仿照這個方法來做。

安裝metricbeat

curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.3.2-linux-x86_64.tar.gz
tar xzvf metricbeat-7.3.2-linux-x86_64.tar.gz

Metricbeat 配置文件

等我們安裝完Metricbeat后,我們可以在安裝目錄的根目錄下看到如下的所有文件:

$ ls -F
LICENSE.txt			metricbeat*
NOTICE.txt			metricbeat.reference.yml
README.md			metricbeat.yml
data/				metricbeat.yml.org
fields.yml			module/
kibana/				modules.d/
logs/

在這個目錄下,我們可以看到有兩個文件配置文件:

metricbeat.yml:這是一個默認的配置文件
metricbeat.reference.yml:這是一個完整的樣本配置文件

只使用第一個配置文件。

配置Metricbeat時,需要指定要運行的模塊。 Metricbeat使用模塊來收集指標。 每個模塊都定義了從特定服務(例如Redis或MySQL)收集數據的基本邏輯。 一個模塊由獲取和構造數據的metricsets組成。比如針對Redis模塊,在這個模塊中使用了Info Metricset及Keyspace Metricset。它們會共用一個和host相連接的通道。

  1. 啟用要運行的模塊

如果您接受默認配置而不啟用其他模塊,則Metricbeat僅收集System指標。

# 路徑:metricbeat-7.3.2-darwin-x86_64/modules.d

# ls -a
.					kibana-xpack.yml.disabled
..					kibana.yml.disabled
aerospike.yml.disabled			kubernetes.yml.disabled
apache.yml.disabled			kvm.yml.disabled
aws.yml.disabled			logstash-xpack.yml.disabled
beat-xpack.yml.disabled			logstash.yml.disabled
beat.yml.disabled			memcached.yml.disabled
ceph.yml.disabled			mongodb.yml.disabled
cockroachdb.yml.disabled		mssql.yml.disabled
consul.yml.disabled			munin.yml.disabled
coredns.yml.disabled			mysql.yml.disabled
couchbase.yml.disabled			nats.yml.disabled
couchdb.yml.disabled			nginx.yml.disabled
docker.yml.disabled			oracle.yml.disabled
dropwizard.yml.disabled			php_fpm.yml.disabled
elasticsearch-xpack.yml.disabled	postgresql.yml.disabled
elasticsearch.yml.disabled		prometheus.yml.disabled
envoyproxy.yml.disabled			rabbitmq.yml.disabled
etcd.yml.disabled			redis.yml.disabled
golang.yml.disabled			system.yml
graphite.yml.disabled			traefik.yml.disabled
haproxy.yml.disabled			uwsgi.yml.disabled
http.yml.disabled			vsphere.yml.disabled
jolokia.yml.disabled			windows.yml.disabled
kafka.yml.disabled			zookeeper.yml.disabled

在Metricbeat下的子目錄下有一個叫做modules.d的。它里面顯示所有默認的metricbeat能支持的所有的模塊,在默認的情況下,只有system.yml是enabled的狀態。其它的都是在disabled的狀態。

我們可以通過在metricbeat安裝目錄下打入如下的命令來獲得當前所有被支持的模塊:

./metricbeat modules list

如果我們想打開某個模塊,我們可以這么做:

./metricbeat modules enable apache mysql

這樣我們就打開了apache及mysql的模塊。如果我們想關閉模塊的話,可以采用如下的命令:

./metricbeat modules disable apache mysql

  1. 配置output

Metricbeat支持多種輸出,但是通常您將事件直接發送到Elasticsearch或Logstash進行其他處理。

output.elasticsearch
  hosts: ["127.0.0.1:9200"]
  1. 如果您打算使用Metricbeat隨附的示例Kibana儀表板,請配置Kibana端點。 如果Kibana與Elasticsearch在同一主機上運行,則可以跳過此步驟。
setup.kibana:
  host: "127.0.0.1:5601"
  1. 如果Elasticsearch和Kibana受保護,請在運行設置和啟動Metricbeat的命令之前在metricbeat.yml配置文件中設置證書。
output.elasticsearch:
  hosts: ["myEShost:9200"]
  username: "filebeat_internal"
  password: "YOUR_PASSWORD" 
setup.kibana:
  host: "mykibanahost:5601"
  username: "my_kibana_user"  
  password: "YOUR_PASSWORD"
  1. 運行測試指令:

./metricbeat test config -e

目前只設置了system模塊。

  1. 設置Kibana模塊

我們運行如下的命令來配置Kibana儀表盤:

./metricbeat setup

顯示結果:

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

這個操作將在Kibana中為我們生產相應的index pattern,並生產相應的示例模板dashboard供我們使用。

運行Metricbeat

在上一步我們已經配置好我們的Metricbeat了,我們現在可以開始運行Metricbeat了。

./metricbeat -e

可以到Kibana上去看一下數據。選擇以metricbeat為開頭的index,可以看見數據是在不斷地增長,表明metricbeat是在不斷地收集數據。

點擊Discover圖標,然后選擇metricbeat的Index pattern,可以看到一件收集到的數據。

點擊Dashboard圖標,然后搜索Metricbeat的System顯示儀表盤

上面顯示的是System Overview,我們也可以點擊“Host Overview”:

通過這樣簡單的配置,我們就可以了解我們系統的整個使用情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM