- Elastic Stack應用寶典
- 田雪松編著
- 1406字
- 2020-07-22 17:21:22
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收集上來的日志信息了。
- Angular UI Development with PrimeNG
- Java 開發從入門到精通(第2版)
- Mastering OpenCV Android Application Programming
- Learning Informatica PowerCenter 10.x(Second Edition)
- Python機器學習經典實例
- 軟件架構:Python語言實現
- Raspberry Pi Robotic Blueprints
- FPGA嵌入式項目開發實戰
- Mastering Docker
- 軟件工程基礎與實訓教程
- Kotlin Programming By Example
- 嵌入式Linux C語言程序設計基礎教程
- Mastering JavaScript
- Drupal 8 Development Cookbook(Second Edition)
- C/C++代碼調試的藝術(第2版)