Filebeat采集數據與日志分析實戰

🌟Filebeat采集數據的原理

Filebeat默認按行采集數據,如果數據沒有換行,則該條數據無法采集到

屬于有狀態服務,可以記錄上一次采集數據的位置點信息

修改配置文件

vim /etc/filebeat/config/03-log-to-console.yaml
filebeat.inputs:
- type: logpaths:- /tmp/student.jsonoutput.console:pretty: true

啟動Filebeat

filebeat -e -c /etc/filebeat/config/03-log-to-console.yaml

發送測試數據

echo haha >> /tmp/student.json

offset記錄的是上一次采集數據的位置點,haha是第一行,所以offset偏移量是0

echo www >> /tmp/student.json[root@elk92 ~]# tail -1 /var/lib/filebeat/registry/filebeat/log.json
{"k":"filebeat::logs::native::1703963-2052","v":{"id":"native::1703963-2052","source":"/tmp/student.json","timestamp":[45803107,1756344477],"identifier_name":"native","FileStateOS":{"inode":1703963,"device":2052},"prev_id":"","offset":0,"ttl":-1,"type":"log"}}

echo -n .zhubl. >> /tmp/student.json
echo xyz >> /tmp/student.json

🌟Filebeat采集nginx日志

安裝nginx

apt -y install nginx
systemctl start nginx
ss -ntl | grep 80

訪問nginx測試

http://10.0.0.92

編寫Filebeat采集nginx日志

vim /etc/filebeat/config/04-nginx-to-es.yaml
filebeat.inputs:
- type: logpaths:- /var/log/nginx/access.log*#output.console:
#  pretty: true# 將數據寫入到ES集群
output.elasticsearch:# 指定ES集群地址hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]# 指定ES的索引名稱index: zhu-nginx# 禁用索引的生命周期,否則自定義索引名稱無效
setup.ilm.enabled: false
# 定義索引模板
setup.template.name: "zhu-nginx"
# 定義索引模板的匹配模式
setup.template.pattern: "zhu-nginx*"
# 如果索引模板已經存在是否覆蓋
setup.template.overwrite: false
# 配置索引模板
setup.template.settings:# 指定分片數量index.number_of_shards: 3# 指定副本數量index.number_of_replicas: 0

啟動Filebeat

filebeat -e -c /etc/filebeat/config/04-nginx-to-es.yaml

Kibana查看數據

🌟Filebeat采集tomcat日志案例

下載tomcat

官網下載tomcat:https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.10/bin/apache-tomcat-11.0.8.tar.gz

wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.10/bin/apache-tomcat-11.0.8.tar.gz

解壓軟件包

tar xf apache-tomcat-11.0.8.tar.gz -C /usr/local/

添加環境變量

1.編輯環境變量配置文件
vim /etc/profile.d/tomcat.sh
#!/bin/bash
export TOMCAT_HOME=/usr/local/apache-tomcat-11.0.8
export JAVA_HOME=/usr/share/elasticsearch/jdk
export PATH=$PATH:$TOMCAT_HOME/bin:$JAVA_HOME/bin2.加載環境變量配置文件
source /etc/profile.d/tomcat.sh

啟動tomcat

startup.sh

瀏覽器訪問

http://10.0.0.93:8080/

編寫Filebeat的配置文件

vim /etc/filebeat/config/05-tomcat-to-es.yml
filebeat.inputs:
- type: logpaths:- /usr/local/apache-tomcat-11.0.8/logs/localhost_access_log.*.txt#output.console:
#  pretty: true# 將數據寫入到ES集群
output.elasticsearch:# 指定ES集群地址hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]# 指定ES的索引名稱index: zhu-tomcat# 禁用索引的生命周期,否則自定義索引名稱無效
setup.ilm.enabled: false
# 定義索引模板
setup.template.name: "zhu-tomcat"
# 定義索引模板的匹配模式
setup.template.pattern: "zhu-tomcat*"
# 如果索引模板已經存在是否覆蓋
setup.template.overwrite: false
# 配置索引模板
setup.template.settings:# 指定分片數量index.number_of_shards: 3# 指定副本數量index.number_of_replicas: 0

啟動Filebeat

filebeat -e -c /etc/filebeat/config/06-tomcat-to-es.yaml

Kibana查看數據

🌟Filebeat多實例

如果在工作中需要啟動多個Filebeat實例,則可以使用" --path.data"參數指定不同的數據目錄,若目錄不存在則會自動創建

如果工作中Filebeat停止可以使用kill命令操作來停止服務

啟動實例一

filebeat -e -c /etc/filebeat/config/04-nginx-to-es.yml

啟動實例二

filebeat -e -c /etc/filebeat/config/05-tomcat-to-es.yaml --path.data /tmp/xixi

查看進程信息

ps -ef | grep filebeat

🌟Filebeat采集多種業務日志

編寫Filebeat配置文件

vim /etc/filebeat/config/06-multiple_input-to-es.yaml
filebeat.inputs:
- type: logpaths:- /var/log/nginx/access.log*tags: "nginx"
- type: logpaths:- /usr/local/apache-tomcat-11.0.8/logs/localhost_access_log.*.txttags: "tomcat"output.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]# 根據條件判斷,將數據寫入不同的索引indices:# 指定索引的名稱- index: "zhu-contains-nginx-%{+yyyy.MM.dd}"# 指定匹配條件when.contains:tags: "nginx"- index: "zhu-contains-tomcat-%{+yyyy.MM.dd}"when.contains:tags: "tomcat"setup.ilm.enabled: false
setup.template.name: "zhu-contains"
setup.template.pattern: "zhu-contains*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

啟動實例

filebeat -e -c /etc/filebeat/config/06-multiple_input-to-es.yaml

kibana出圖展示

🌟Filebeat采集docker日志

安裝Filebeat

dpkg -i filebeat-7.17.29-amd64.deb

編寫Filebeat配置文件

vim /etc/filebeat/docker-to-es.yaml
filebeat.inputs:
- type: containerpaths: - '/var/lib/docker/containers/*/*.log'# 添加處理器。
processors:# 添加docker的元數據信息。- add_docker_metadata:# 找本地的套接字文件。host: "unix:///var/run/docker.sock"output.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-dockersetup.ilm.enabled: false
setup.template.name: "zhu-docker"
setup.template.pattern: "zhu-docker*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 6index.number_of_replicas: 0

啟動實例

filebeat -e -c /etc/filebeat/docker-to-es.yaml

kibana查詢

🌟Filebeat排除不必要的行exclude_lines

編寫Filebeat配置文件

vim /etc/filebeat/docker-to-es.yaml
filebeat.inputs:
- type: containerpaths: - '/var/lib/docker/containers/*/*.log'# 排除不必要的行。exclude_lines: ['.*notice','.*entrypoint','.*listen']# 添加處理器。
processors:# 添加docker的元數據信息。- add_docker_metadata:# 找本地的套接字文件。host: "unix:///var/run/docker.sock"output.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-dockersetup.ilm.enabled: false
setup.template.name: "zhu-docker"
setup.template.pattern: "zhu-docker*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 6index.number_of_replicas: 0

啟動Filebeat實例

filebeat -e -c /etc/filebeat/docker-to-es.yaml

Kibana出圖展示

🌟Kibana分析容器的相關指標

創建可視化

選擇基于聚合

選擇指標

選擇docker

計數顯示記錄的日志總數

顯示容器的數量

🌟Filebeat模塊應用案例

啟用模塊

filebeat modules enable nginx tomcat

修改nginx的模塊文件

vim /etc/filebeat/modules.d/nginx.yml
- module: nginxaccess:enabled: truevar.paths: ["/var/log/nginx/access.log*"]error:enabled: truevar.paths: ["/var/log/nginx/error.log*"]ingress_controller:enabled: false

修改tomcat的模塊文件

vim /etc/filebeat/modules.d/tomcat.yml
- module: tomcatlog:enabled: truevar.input: filevar.paths:- /usr/local/apache-tomcat-11.0.8/logs/localhost_access_log.*.txt

修改Filebeat的配置文件

vim /etc/filebeat/config/07-modules-to-es.yaml
# 啟用Filebeat模塊
filebeat.config.modules:# 指定模塊的路徑path: ${path.config}/modules.d/*.yml# 是否支持熱加載配置reload.enabled: trueoutput.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-modules-xixisetup.ilm.enabled: false
setup.template.name: "zhu-modules"
setup.template.pattern: "zhu-modules*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

啟動Filebeat實例

filebeat -e -c /etc/filebeat/config/07-modules-to-es.yaml

🌟基于Filebeat的模塊分析nginx訪問日志

Filebeat模塊配置

vim /etc/filebeat/modules.d/nginx.yml
- module: nginxaccess:enabled: truevar.paths: ["/root/access.log*"]error:enabled: falsevar.paths: ["/var/log/nginx/error.log*"]ingress_controller:enabled: false

編寫Filebeat配置文件

vim /etc/filebeat/config/08-modules_nginx-to-es.yaml
filebeat.config.modules:path: ${path.config}/modules.d/nginx.ymlreload.enabled: trueoutput.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-modules-efk-nginxsetup.ilm.enabled: false
setup.template.name: "zhu-modules"
setup.template.pattern: "zhu-modules*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

啟動Filebeat實例

filebeat -e -c /etc/filebeat/config/08-modules_nginx-to-es.yaml

Kibana出圖分析指標

wc -l /root/access.log

kibana統計全球用戶分布圖

kibana統計帶寬

kibana統計PV

kibana統計IP

Kibana統計設備類型

kibana統計操作系統占比

kibana儀表盤Dasboard制作

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

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

相關文章

Fluent Bit針對kafka心跳重連機制詳解(下)

#作者:程宏斌 文章目錄disconnectreconnect接上篇:https://blog.csdn.net/qq_40477248/article/details/150957571?spm1001.2014.3001.5501disconnect 斷開連接的情況主要是兩種: 連接或傳輸過程中有錯誤發生 超時, 比如空閑時間超時 ** * Close and …

React 第七十一節 Router中generatePath的使用詳解及注意事項

前言 generatePath 是 React Router 的一個實用工具函數,用于根據路徑模式和參數對象生成實際的 URL 路徑。它在需要動態構建鏈接的場景中非常有用,比如生成導航鏈接或重定向路徑。 1、基本用法和注意事項 import { generatePath } from react-router-do…

Python 爬蟲案例:爬取豆瓣電影 Top250 數據

一、案例背景與目標 豆瓣電影 Top250 是國內權威的電影評分榜單之一,包含電影名稱、評分、評價人數、導演、主演、上映年份、國家 / 地區、類型等關鍵信息。本案例將使用 Python 編寫爬蟲,實現以下目標: 自動請求豆瓣電影 Top250 的 10 個分…

SPA安全警示:OAuth2.0致命漏洞

OAuth2.0在SPA應用中的安全陷阱SPA(單頁應用)通常采用隱式授權(Implicit Flow)或PKCE(Proof Key for Code Exchange)授權模式,但存在以下安全隱患:隱式授權模式的漏洞訪問令牌直接暴…

table表格字段明細展示

文章目錄1、字段渲染2、異步請求展示明細3、hover展示問題3.1 基本邏輯3.2 hover時長判斷3.3 renderhover表格字段明細展示,屬于比較小的需求,但是也有一定交互細節,本文選取部分場景。 1、字段渲染 render和渲染組件是有區別的。render常見為…

主網上線后生態極速擴張的 Berachain 生態,有哪些值得關注的項目?

Berachain 是典型的將 DeFi 思維嵌入到共識機制中的 Layer1,其核心是 PoL(Proof of Liquidity)共識。PoL 要求驗證者在獲得區塊獎勵前,必須將流動性導入白名單協議,并由市場決定資金流向。這樣,驗證者的權重…

claude-code對比GitHub-Copilot

Claude Code 文檔日期:2025 年 08 月 20 日 定位 項目級開發助手,專注于全局視野和復雜任務的處理。 特點 超長上下文支持:支持 200k 超長上下文,適合處理復雜項目。豐富的自定義命令:提供靈活的命令配置,滿…

Roo Code自定義Mode(模式)

什么是自定義模式? 簡單來說,自定義模式就像是給Roo Code穿上不同的"職業裝"。你可以創建針對特定任務或工作流程量身定制的模式,讓Roo在不同場景下表現出專業的行為。 這些模式分為兩種類型:全局模式(在所有…

Next.js渲染模式:SSR、SSG與ISR揭秘

Next.js 核心渲染模式深度解析:SSR、SSG 與 ISR 在構建現代 Web 應用時,性能和用戶體驗是至關重要的考量。Next.js 作為 React 生態中一個備受推崇的框架,其強大的服務端渲染(SSR)、靜態站點生成(SSG&#…

Veo Videos Generation API 對接說明

本文介紹了如何對接 Veo Videos Generation API,通過輸入自定義參數生成Veo官方視頻。 下面將詳細闡述 Veo Videos Generation API 的對接流程。 申請流程 使用 API 前,需前往 Veo Videos Generation API 頁面申請服務。進入頁面后,點擊「…

YOLO 目標檢測:YOLOv3網絡結構、特征輸出、FPN、多尺度預測

文章目錄一、YOLOV31、網絡結構1.1 整體結構1.2 主干網絡1.3 特征輸出1.4 特征融合FPN(Feature Pyramid Networks)FPN 融合上采樣融合2、多尺度預測3、損失函數4、性能對比一、YOLOV3 YOLOv3(You Only Look Once v3)是YOLO系列中…

【GIS圖像處理】有哪些SOTA方法可以用于將1.5米分辨率遙感圖像超分辨率至0.8米精度的?

針對將1.5米分辨率遙感圖像超分辨率至0.8米的需求,當前主流方法可分為以下幾類,結合最新研究進展和實際應用場景,具體技術方案及SOTA方法如下: 一、基于Transformer的高效建模 1. Top-k標記選擇Transformer(TTST) 核心機制:通過動態選擇前k個關鍵標記(token),消除冗…

【電力電子】逆變器控制策略:PQ Droop下垂控制、電壓電流雙環控制與SPWM調制

逆變器中的 PQ Droop 控制。 1. PQ Droop 控制的定義 PQ Droop(有時也稱為功率下垂控制,Power Droop Control)是微電網、并聯系統或逆變器并網運行中常用的一種分布式功率控制方法。 P-Droop(有功下垂):通過調節逆變器輸出頻率與有功功率之間的關系實現功率分配。 Q-Dro…

【LeetCode 熱題 100】5. 最長回文子串——中心擴散法

Problem: 5. 最長回文子串 文章目錄整體思路完整代碼時空復雜度時間復雜度:O(N^2)空間復雜度:O(1)整體思路 這段代碼旨在解決經典的 “最長回文子串” (Longest Palindromic Substring) 問題。問題要求在一個給定的字符串 S 中,找到一個最長…

六、練習3:Gitee平臺操作

練習3:Gitee平臺操作 練習目標 掌握Gitee平臺的基本操作,包括創建倉庫、推送代碼、團隊協作等。 練習步驟 步驟1:Gitee賬號準備 訪問 gitee.com注冊賬號(如果還沒有)登錄Gitee 步驟2:配置SSH密鑰 # …

Git軟件版本控制

軟件版本控制作用:軟件源碼版本管理、多人協作開發、版本多分支開發、代碼回滾(回退)等功能。集中式版本控制:將代碼倉庫放在一臺服務器上,開發時要依賴這臺服務器。優點:簡單、方便管理、適合中小型項目缺…

生產環境Spark Structured Streaming實時數據處理應用實踐分享

生產環境Spark Structured Streaming實時數據處理應用實踐分享 一、業務場景描述 我們所在的電商平臺需要實時監控用戶行為數據(如點擊、下單、支付等),基于事件級別的流式數據進行實時統計、會話聚合、漏斗分析,并將結果推送到Da…

海康相機開發---HCNetSDK

HCNetSDK(Hikvision Network Software Development Kit)是海康威視專為旗下安防監控設備打造的二次開發工具包,是連接上層應用與海康設備的核心橋梁。其封裝了設備底層通信協議(包括私有協議與部分標準協議)&#xff0…

構建無廣告私人圖書館Reader與cpolar讓電子書庫隨身攜帶

文章目錄前言:告別書荒,拯救靈魂的“摸魚神器”1、關于Reader:小而美的開源在線閱讀器2、Docker部署3、簡單使用reader和添加書源4.群暉安裝Cpolar工具5.創建reader閱讀器的公網地址6.配置固定公網地址前言:告別書荒,拯…

amd cpu是x86架構嗎

是的,AMD CPU屬于x86架構?,其64位擴展(x86-64)最初由AMD設計并成為行業標準。? ?AMD與x86架構的關系? ?技術淵源?:AMD自1976年起通過技術授權成為x86架構的合法制造商,與英特爾共同主導x86市場。2003…