ELK(六)—Filebeat安裝部署

目錄

  • 一、介紹
    • 1.1特點
    • 1.2使用原因
    • 1.3結構圖
    • 1.4工作流程
  • 二、安裝部署
    • 2.1下載
    • 2.2啟動
    • 2.3監控日志文件
    • 2.4自定義字段
  • 三、連接Elasticsearch
  • 四、工作原理

一、介紹

Filebeat是一個輕量級的日志和文件數據收集器,屬于Elastic Stack(ELK Stack)中的一個組件。它的主要作用是搜集、傳輸和轉發各種類型的日志和事件數據,將這些數據發送到中央的Elasticsearch集群或者Logstash進行處理和存儲。以下是Filebeat的一些關鍵特性和使用原因:

Filebeat的官網網址如下:https://www.elastic.co/cn/beats/filebeat

image.png

1.1特點

  1. 輕量級: Filebeat是一個小型的、輕量級的代理,對系統資源的消耗相對較低。
  2. 易于配置: Filebeat的配置相對簡單,可以通過YAML文件輕松配置日志路徑、數據輸入、輸出等。
  3. 多數據輸入: 支持多種輸入源,包括文件、日志文件、系統日志等。
  4. 多數據輸出: 可以將數據發送到Elasticsearch、Logstash等多個目標。
  5. 模塊化: 支持模塊化的配置,可輕松集成到Elastic Stack中。
  6. 實時性: 提供近實時的數據傳輸,支持快速檢測和響應。

1.2使用原因

  1. 集中日志管理: Filebeat幫助組織集中管理日志數據,通過將日志數據發送到Elasticsearch中,用戶可以使用Kibana等工具來輕松搜索和分析數據。
  2. 實時監控: Filebeat的實時數據傳輸能力使得用戶能夠迅速監測系統中發生的事件,幫助實現實時監控和警報。
  3. 日志數據分析: Filebeat能夠解析和發送各種日志格式,包括結構化和非結構化的數據,以便進行更深入的分析。
  4. 簡化數據流程: Filebeat通過將數據發送到Elasticsearch或Logstash,使得整個數據流程更為簡單和靈活。
  5. 集成到Elastic Stack: 作為Elastic Stack的一部分,Filebeat無縫集成到Elasticsearch、Logstash、Kibana等組件中,為日志和事件處理提供了完整的解決方案。

總體而言,Filebeat是一個強大的工具,使得日志和事件數據的搜集和處理變得更為簡單和高效。通過與其他Elastic Stack組件配合使用,用戶可以建立一個強大的實時日志分析和監控系統。

1.3結構圖

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

1.4工作流程

Filebeat的工作流程可以總結為以下幾個步驟:

  1. Input 輸入: 在Filebeat的配置中,可以指定多個數據輸入源,這些源可以是文件、日志文件、系統日志等。用戶可以使用通配符指定多個源,以便匹配到相應的日志文件。
  2. Harvester 收割機: 一旦Filebeat匹配到日志文件,就會啟動一個稱為Harvester的組件。Harvester負責從日志文件中源源不斷地讀取數據,確保Filebeat可以實時地捕捉到新的日志事件。
  3. Spooler 卷軸: Harvester將收割到的日志數據傳遞給Spooler,這是Filebeat內部的一個組件。Spooler的作用是將接收到的數據進行緩沖和處理,并將它們傳遞到后續的輸出目標。
  4. Output 輸出: Filebeat支持將數據發送到多個輸出目標,其中最常見的是Elasticsearch和Logstash。數據可以通過輸出插件配置,靈活地傳遞到用戶指定的目標,從而實現集中式存儲、分析和可視化。

整個流程中,Filebeat保證了日志數據的實時性,從而滿足了用戶對于快速響應和實時監控的需求。通過將Filebeat與Elasticsearch、Logstash等組件結合使用,用戶可以輕松地構建強大的實時日志處理和分析系統。

二、安裝部署

2.1下載

機器是直接wget下載

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.1-linux-x86_64.tar.gz

也可以去官網上下載 https://www.elastic.co/cn/downloads/beats/filebeat

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

image.png

下載完成后,就是解壓操作了

tar -zxvf filebeat-8.11.1-linux-x86_64.tar.gz

重命名

mv filebeat-8.11.1-linux-x86_64 filebeat

進入到filebeat目錄下,進行操作(需要新建一個.yml文件)

vim hmiyuan.yml

在文件輸入下面的內容

filebeat.inputs: # filebeat input輸入
- type: stdin    # 標準輸入enabled: true  # 啟用標準輸入
setup.template.settings: index.number_of_shards: 3 # 指定下載數
output.console:  # 控制臺輸出pretty: true   # 啟用美化功能enable: true
  1. filebeat.inputs: 定義Filebeat的輸入源。在這里,您配置了一個 stdin 輸入,表示通過標準輸入讀取日志。
  2. setup.template.settings: 配置模板的一些設置。在這里,您指定了索引的分片數為 3。
  3. output.console: 配置Filebeat的輸出目的地。在這里,您將日志輸出到控制臺,并啟用了美化功能。

2.2啟動

./filebeat -e -c hmiyuan.yml

./filebeat -e -c hmiyuan.yml 命令是在以 hmiyuan.yml 為配置文件運行 Filebeat,-e 標志表示在啟動時顯示調試信息。

啟動成功畫面

image.png

然后我們在控制臺輸入信息

image.png

隨后我們在控制臺可以看到一個json格式的輸出,內容如下

image.png

2.3監控日志文件

在filebeat目錄下創建一個“hmiyuan-log.yml”文件,文件內容如下:

filebeat.inputs:
- type: logenabled: truepaths:- /opt/elk/logs/*.log
setup.template.settings:index.number_of_shards: 3
output.console:pretty: trueenable: true

filebeat.inputs: 定義 Filebeat 的輸入配置,這里指定了一個日志輸入。

  • type: log: 表示輸入類型是日志文件。
  • enabled: true: 啟用該輸入。
  • paths: 指定要監視的日志文件路徑。在這個例子中,它監視 /opt/elk/logs/ 目錄下所有以 .log 結尾的文件。

setup.template.settings: 用于設置模板相關的配置。

  • index.number_of_shards: 3: 設置 Elasticsearch 索引的分片數量為

output.console: 配置輸出到控制臺的設置。

  • pretty: true: 啟用漂亮的輸出,使日志更易讀。
  • enable: true: 啟用控制臺輸出。

文件創建好了之后,我們需要創建上文中的path中文件了。

mkdir -p /opt/elk/logs

上面的配置完成后,我們就可以進行測試看是否配置完成了。

echo "hello world" >> /opt/elk/logs/test.log

重啟啟動filebeat并指定配置文件

./filebeat -e -c hmiyuan-log.yml

image.png

可以看到文件中的內容以及被filebeat讀取出來了

追加數據

 echo "你好,陌生人" >> test.log

可以看到新增的數據也成功被收集了

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

在"/opt/elk/log"中的添加新文件,同時添加數據

echo "a new directory" >> one.log

image.png

2.4自定義字段

當我們的元數據沒辦法支撐我們的業務時,我們還可以自定義添加一些字段.

修改"filebeat-log.yml"文件的內容。

filebeat.inputs:
- type: logenabled: truepaths:- /opt/elk/logs/*.logtags: ["web", "test"]  fields:  from: web-testfields_under_root: true 
setup.template.settings:index.number_of_shards: 3
output.console:pretty: trueenable: true

新添加部分解析

  1. Tags(標簽):

    tags: ["web", "test"]
    

    這里通過 tags 字段為事件添加了兩個標簽,即 “web” 和 “test”。標簽是一種用于標識事件的方式,它可以在后續的處理中用于過濾或分類事件。

  2. Fields(字段):

    fields:from: web-test
    

    通過 fields 字段添加了一個自定義字段,即 from: web-test。這是一種為事件添加額外信息的方式,您可以根據需要添加不同的字段。在這個例子中,為事件指定了來源是 “web-test”。

  3. Fields Under Root(添加到根節點):

    fields_under_root: true
    

    fields_under_root 設置為 true,這表示將自定義字段添加到事件的根節點,而不是作為子節點。這樣,添加的字段會直接位于事件的頂層,而不是嵌套在其他字段中。

這些配置的添加使您能夠在 Filebeat 采集的日志事件中附加額外的信息,以便更好地進行后續處理和分析。

修改完成后,重啟filebeat

./filebeat -e -c hmiyuan-log.yml

添加數據到“/opt/elk/logs/test.log”中

echo "a god day" >> /opt/elk/logs/test.log

image.png

可以看到自定義字段已經成功顯示出來了。

三、連接Elasticsearch

繼續修改“hmiyuan-log.yml”文件,添加elasticsearch的ip以及暴露出來的端口號。

filebeat.inputs:
- type: logenabled: truepaths:- /opt/elk/logs/*.logtags: ["web", "test"]fields:from: web-testfields_under_root: false
setup.template.settings:index.number_of_shards: 1
output.elasticsearch:hosts: ["192.168.150.190:9200"] #這里填寫elasticsearch機器的ip以及端口,可以添加多臺機器

重啟啟動filebeat

./filebeat -e -c hmiyuan-log.yml

查看filebeat啟動的時候輸出的相關信息,可以看到已經成功連接到了190這臺機器上了,接下來繼續向"/opt/elk/log/"目錄下的文件輸入信息,查看elasticsearch是否也可以接收到數據。

image.png

向“test.log”文件追加信息。

echo "dog" >> /opt/elk/logs/test.log

在ES中,我們可以看到,多出了一個 filebeat的索引庫

image.png

然后我們瀏覽對應的數據,看看是否有插入的數據內容

image.png

elasticsearch已經拿到了數據了,并展示到了elasticsearch-head中。

四、工作原理

Filebeat工作原理

Filebeat主要由下面幾個組件組成: harvester、prospector 、input

harvester
負責讀取單個文件的內容
harvester逐行讀取每個文件(一行一行讀取),并把這些內容發送到輸出
每個文件啟動一個harvester,并且harvester負責打開和關閉這些文件,這就意味著harvester運行時文件描述符保持著打開的狀態。
在harvester正在讀取文件內容的時候,文件被刪除或者重命名了,那么Filebeat就會續讀這個文件,這就會造成一個問題,就是只要負責這個文件的harvester沒用關閉,那么磁盤空間就不會被釋放,默認情況下,Filebeat保存問價你打開直到close_inactive到達

prospector
prospector負責管理harvester并找到所有要讀取的文件來源

如果輸入類型為日志,則查找器將查找路徑匹配的所有文件,并為每個文件啟動一個harvester

Filebeat目前支持兩種prospector類型:log和stdin

Filebeat如何保持文件的狀態

Filebeat保存每個文件的狀態并經常將狀態刷新到磁盤上的注冊文件中
該狀態用于記住harvester正在讀取的最后偏移量,并確保發送所有日志行。
如果輸出(例如ElasticSearch或Logstash)無法訪問,Filebeat會跟蹤最后發送的行,并在輸出再次可以用時繼續讀取文件。
在Filebeat運行時,每個prospector內存中也會保存的文件狀態信息,當重新啟動Filebat時,將使用注冊文件的數量來重建文件狀態,Filebeat將每個harvester在從保存的最后偏移量繼續讀取
文件狀態記錄在data/registry文件中

input
一個input負責管理harvester,并找到所有要讀取的源

如果input類型是log,則input查找驅動器上與已定義的glob路徑匹配的所有文件,并為每個文件啟動一個harvester

每個input都在自己的Go例程中運行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208646.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208646.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208646.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

近期Chrome瀏覽器 不知哪個版本升級后原先http強制跳轉到https,導致服務端302強制跳轉到http也沒反應

關于Chrome更新http強制跳轉到https解決方法 近期Chrome瀏覽器 不知哪個版本升級后原先http強制跳轉到https,導致服務端302強制跳轉到http也沒反應一、F12檢查加載的Response Headers中有沒有Non-Authoritative-Reason二、找了資料后得到解決方案:三、找…

云原生數據庫是什么?它的作用是啥?

目前來說,各廠商的云原生數據庫在演進路線上分成了兩個略有不同的路徑來解決不同的問題。 一種是各大公有云廠商選擇的,優先保證上云兼容性的路線,就是基于存算分離架構對傳統數據庫進行改造的路線:通過把大量的日志操作放到后臺…

插入排序——直接插入排序和希爾排序(C語言實現)

文章目錄 前言直接插入排序基本思想特性總結代碼實現 希爾排序算法思想特性總結代碼實現 前言 本博客插入排序動圖和希爾排序視頻參考大佬java技術愛好者,如有侵權,請聯系刪除。 直接插入排序 基本思想 直接插入排序是一種簡單的插入排序法&#xff…

圖空圖床圖片外鏈系統源碼-支持自定義權限策略-圖片大小格式

含視頻搭建教程。 大致功能: 支持本地等多種第三方云儲存 AWS S3、阿里云 OSS、騰訊云 COS、七牛云、又拍云、SFTP、FTP、WebDav、Minio多種數據庫驅動支持,MySQL 5.7、PostgreSQL 9.6、SQLite 3.8.8、SQL Server 2017支持配置使用多種緩存驅動&#xff…

車聯網軟件定義汽車安全攻擊示例

目錄 導言 名詞解釋 TBox QNX介紹 ADB 威脅分析

Flameshot的安裝、配置及使用

概要:本篇主要介紹在Ubuntu22.04環境下,截圖軟件Flameshot的安裝、配置及使用。 一、安裝 推薦命令行安裝 sudo apt install flameshot 二、修改gdm3配置文件 這一步是為了解決截圖時沒有光標的問題,解決方法我是從這里學到的解決flam…

【hugging face】bitsandbytes中8 bit量化的理解

8 位量化使數十億參數規模的模型能夠適應更小的硬件,而不會降低性能。 8 位量化的工作原理如下: 1.從輸入隱藏狀態中按列提取較大值(離群值)。 2.對 FP16 中的離群值和 int8 中的非離群值執行矩陣乘法。 3.改變非異常值結果以將值…

unity中:搭建在線AR應用

使用Imagine WebAR - Image Tracker插件部署WebGL應用 在使用Imagine WebAR - Image Tracker插件進行WebGL應用開發時,有兩個關鍵知識點需要掌握: 1. 部署到支持HTTPS的服務器 由于WebGL應用需要訪問用戶的攝像頭,因此必須在支持HTTPS的服…

微前端 模塊聯邦技術

目錄 介紹 基本使用 演示用法 初始化配置文件 remote 項目 host 項目 為什么講這個呢,很多人覺得他不是微前端,也有人定義它也是微前端,看怎么理解了,我覺得他是一個去中心化技術,它可以讓多個獨立構建的應用…

【力扣100】9.和為k的子數組

添加鏈接描述 class Solution:def subarraySum(self, nums: List[int], k: int) -> int:# 思路是從第一個元素開始遍歷,加到爆,就把指針向前移一位result0for i in range(len(nums)):# 如果爆了,就向后移一位if i!len(nums)-1:ji1sumnums…

高并發爬蟲用Python語言適合嗎?

不管你用什么語言沒在進行高并發前,有幾點是需要考慮清楚的,;例如:數據集大小,算法、是否有時間和性能方面的制約,是否存在共享狀態,如何調試(這里指的是日志、跟蹤策略)…

C#云LIS系統源碼 B/S架構,SaaS模式,可擴展性強

基于B/S架構的云LIS檢驗系統源碼,整個系統的運行基于WEB層面,只需要在對應的工作臺安裝一個瀏覽器軟件有外網即可訪問。全套系統采用云部署模式,部署一套可支持多家醫院檢驗科共同使用。 采用.Net Core新的技術框架、DEV報表、前端js封裝、分…

騰訊云CentOS8 jenkins war安裝jenkins步驟文檔

騰訊云CentOS8 jenkins war安裝jenkins步驟文檔 一、安裝jdk 1.1 上傳jdk-11.0.20_linux-x64_bin.tar.gz 1.2 解壓jdk安裝包文件 tar -zxvf jdk*.tar.gz 1.3 在/usr/local 目錄下創建java目錄 cd /usr/local mkdir java 1.4 切到java目錄,把jdk解壓文件改名為jd…

【抽象策略模式】實踐

前言 剛果商城,用戶登錄 Or 注冊 發送郵箱驗證碼場景,使用抽象策略模式實現 什么是抽象策略模式 抽象策略模式是一種行為型設計模式,它允許定義一系列算法,將每個算法封裝起來,并使它們可以互相替換。這使得客戶端代碼…

Java_LinkedList鏈表詳解

目錄 前言 ArrayList的缺陷 鏈表 鏈表的概念及結構 鏈表的種類 1.單向或雙向 2.帶頭或不帶頭 3.循環或不循環 LinkedList的使用 什么是LinkedList LinkedList的使用 LinkedList的構造 LinkedList的其他常用方法介紹 LinkedList的遍歷 ArrayList和LinkedList的…

OpenCL學習筆記(四)手動編譯開發庫(ubuntu+gcc+rk3588)

前言 筆者本次使用的是RK3588的開發板,內部燒寫的是ubuntu20.04,gcc版本是9 本文檔簡單記錄下編譯的過程,有需要的小伙伴可以參考下 一、安裝所需軟件 1.安裝git,教程比較多,不再重復 2.安裝cmake,教程…

UWB的matlab仿真源碼

作品詳細文章與下載鏈接 第一部分:TR-UWB信號的產生和調制 簡介 該實踐涉及使用 MATLAB 生成和調制 TR-UWB 信號。超寬帶信號是一類在頻譜中具有寬帶而不是窄帶的信號信號,具有時間寬度的脈沖產生它。在本次實踐中,MATLAB 程序是開發用于生成基帶 TR-UWB 信號,我們用…

在Windows電腦上獲取硬盤ID的方法

如果你想在Windows電腦上獲取硬盤的ID,可以使用DiskPart命令。以下是具體步驟: 打開命令提示符 按下Win鍵R,輸入cmd,然后回車,即可打開命令提示符。 輸入diskpart并回車 在命令提示符中輸入diskpart,然后…

WordPress 注冊/重置密碼/更改密碼鉤子

wordpress在提供郵件提醒的地方都留了hook,方便讓開發者自定義。最新在添加第三方登錄時遇到虛擬郵箱發信問題,為了防止給指定郵件地址后綴發信,可以利用如下wordpress提供的鉤子來實現。 //https://www.wwttl.com/101.html //禁止用戶注冊時…

用23種設計模式打造一個cocos creator的游戲框架----(十)迭代器模式

1、模式標準 模式名稱:迭代器模式 模式分類:行為型 模式意圖:提供一種方法順序訪問一個聚合對象中的各個元素,且不需要暴露該對象的內部表示. 結構圖: ? 適用于: 1、當你需要遍歷一個復雜的數據結構…