官术网_书友最值得收藏!

1.5 Beats概覽

Beats組件雖然是Elastic Stack家族中加入比較晚的組件,但它規范了數據采集的方式和流程,極大地拓寬了Elastic Stack的應用范圍。目前,Beats組件包括Filebeat、Packetbeat、Metricbeat、Heartbeat、Auditbeat、Journalbeat、Winlogbeat、Functionbeat八種類型,它們可以收集文件、網絡、指標、審計等各種各樣的數據。另外,還有一種稱為Topbeat的Beats組件,但它已經被Metricbeat取代,可以認為是Metricbeat中的一個模塊。它們基于統一的框架開發,所以在使用上有很多相似之處,本書第15~16兩章將對它們做具體介紹。本節先介紹如何安裝Filebeat,其他Beats組件的安裝與此類似。

1.5.1 安裝Filebeat

Filebeat一般安裝于宿主機,用于收集文本類型的日志數據。Filebeat支持Linux、Windows和Mac環境,也支持通過docker直接啟動。在Linux環境下,提供了DEB、RPM安裝包,也提供了tar.gz壓縮包;而Windows和Mac環境下,則只提供了tar.gz和zip壓縮包,直接解壓縮到特定的目錄即可。在Windows環境下,如果想將Filebeat安裝為服務,可以在PowerShell中運行安裝目錄下的install-service-filebeat.ps1腳本。

1.5.2 配置Filebeat

Filebeat的配置文件一般位于安裝目錄下,名稱為filebeat.yml。但使用DEB、RPM安裝包安裝的Filebeat則位于/etc/filebeat下。配置Filebeat時,最重要的是指明兩個參數:一個是從哪里提取文件數據;另一個是提取出來的數據發送到哪里。下面修改filebeat.yml文件,將Elasticsearch生成的日志數據發送給Logstash。

1.文件路徑

提取文件的路徑在配置文件的filebeat.inputs參數下指定,默認情況下配置文件的這個參數中已經添加了一項type為log的輸入,但未啟用。可以直接在這一項之前添加如下內容:

示例1-11 配置Filebeat

其中,enabled參數用于設置當前配置項是否啟用,paths參數則接收一組指向日志文件的路徑,Filebeat會從這些路徑上提取文件內容。在示例1-11中,Filebeat收集日志的路徑被指向了Elasticsearch的日志文件。

2.輸出組件

默認情況下,Filebeat將提取出來的文件數據直接發送到本機Elasticsearch的9200端口,可以通過修改filebeat.yml配置文件修改目標數據源。為了搭建圖1-1所示的日志收集系統,讓Filebeat與Elasticsearch、Logstash、Kibana共同工作,需要將Filebeat輸出組件配置成發送給Logstash。

首先將filebeat.yml文件中默認輸出給Elasticsearch的配置使用#號注釋掉,如果保留Elasticsearch輸出會在發送給Logstash的同時也發送給Elasticsearch。在Elasticsearch輸出配置的下面就是輸出給Logstash的配置,將它們前面的#號刪除從注釋中釋放出來,如示例1-12所示:

示例1-12 輸出給Logstash

在示例1-12中,hosts參數指定了Logstash的IP地址和端口,可以指定多個以實現負載均衡。為了能夠接收Filebeat發送過來的數據,Logstash管道配置文件也必須要做出相應修改。下面,先創建一個新的Logstash管道配置文件beats_es.conf,并在文件中添加如下內容:

示例1-13 Logstash使用Beats輸入插件

在示例1-13中,Logstash輸入插件被設置為beats,而輸出插件則被設置為elasticsearch。beats輸入插件的port參數指定了Logstash監聽Filebeat的端口為5044,這與Filebeat中配置的端口要一致。elasticsearch輸出插件的hosts參數指定了Elasticsearch的地址和端口,而index參數則指定了日志存儲的索引為es_logs。接下來,需要使用beats_es.conf重新啟動Logstash:

示例1-14 使用新配置文件啟動Logstash

1.5.3 啟動Filebeat

Filebeat是輕量級組件,一般做成系統服務隨系統啟動和關閉,但也可以通過命令行直接啟動。啟動命令位于Filebeat安裝路徑中,根據操作系統不同選擇運行filebeat或filebeat.exe命令。啟動后命令行沒有日志,日志存儲于安裝路徑的logs目錄下,其中包含了名為filebeat的文件。打開日志文件會看到類似“filebeat start running”的信息,如果沒有其他異常,就說明filebeat啟動成功。對于采用Docker應用來說,一般會通過Docker Compose將Filebeat與業務應用放在一個容器中啟動。

按照上面的配置,Filebeat會將日志數據采集出來傳輸給Logstash,而Logstash又會將數據傳輸給Elasticsearch的es_logs索引中。所以為了讓它們正常運行起來,在啟動Filebeat之前需要將Elasticsearch、Logstash和Kibana都啟動起來,如果一切正常就可以直接在Kibana中查看Filebeat收集上來的日志數據了。打開Kibana的開發工具,輸入“GET _cat/indices”會看到es_logs索引已經存在,輸入“GET /es_logs/_search”會看到索引中已經包含有Filebeat收集上來的日志信息了。

主站蜘蛛池模板: 精河县| 霍林郭勒市| 太和县| 绿春县| 塔河县| 文昌市| 石屏县| 景东| 霍山县| 义乌市| 荣成市| 巨野县| 贵溪市| 遵义市| 民乐县| 东乌珠穆沁旗| 巴青县| 东乡族自治县| 凌海市| 秦皇岛市| 化德县| 隆回县| 晋宁县| 甘泉县| 拉萨市| 金昌市| 绥江县| 固原市| 德保县| 嘉定区| 洛浦县| 招远市| 苏州市| 昌黎县| 双牌县| 泰来县| 文山县| 固镇县| 砚山县| 张家口市| 丰都县|