使用 Elastic-Agent 或 Beats 將 Journald 中的 syslog 和 auth 日志導入 Elastic Stack

作者:來自 Elastic?TiagoQueiroz

我們在 Elastic 一直努力將更多 Linux 發行版添加到我們的支持矩陣中,現在 Elastic-Agent 和 Beats 已正式支持 Debian 12!

本文演示了我們正在開發的功能,以支持使用 Journald 存儲系統和身份驗證日志(auth logs)的 Linux 發行版。

一些 Linux 發行版(如 Debian 12)已經完全放棄了傳統的系統日志文件,因此現在獲取這些日志的唯一方法是讀取 Journald

使用 Elastic-Agent 攝取系統日志

Elastic-Agent 的系統集成 可從服務器收集系統日志和指標。從 1.63.0 版(Elastic-Agent 8.17.0) 開始,它還支持從 Journald 攝取日志。

我們將在 Debian 12 VM 上進行示例。不過,如果你想在其他 Linux 發行版上通過 Journald 收集系統日志,只需稍作配置調整即可。

簡而言之:

只需在 Debian 12 VM 上安裝 Elastic-Agent 8.17.0,添加系統集成,你就能從 Journald 獲取日志。如果你在 Debian 11 等其他發行版上安裝 Elastic-Agent,它將讀取日志文件。就是這么簡單!

詳細解析:

這并不是 “魔法”,而是對 Elastic-Agent 功能的巧妙利用。在進入具體操作之前,先來了解它是如何工作的。

系統集成中的 syslogauth 數據流 現在新增了一個 Journald 輸入,該輸入在默認配置下 僅在 Debian 12 和 Amazon Linux 2023 上運行。現有的日志輸入則相反,它不會在 Debian 12 和 Amazon Linux 2023 上運行。

Elastic-Agent 集成支持條件(?conditions)判斷,用于決定是否運行某個輸入。例如,系統集成已經使用此功能來防止 winlog 輸入在 Linux 或 macOS 上運行。現在,我們利用它來決定在不同的 Linux 發行版 上運行 Journald 還是傳統日志輸入

如果查看 系統集成的配置,你會發現一個新的 conditions 字段,其中 Journald 輸入的配置 類似于:

${host.os_version} == "12 (bookworm)" or (${host.os_platform} == "amzn" and ${host.os_version} == "2023")

如果該條件的評估結果為 true,則輸入將運行;否則,輸入不會運行。

要在不同的 Linux 發行版上運行該輸入,只需編輯條件以匹配你的需求。如果將其留空,輸入將始終運行。

? 注意! 如果你在同時支持 傳統日志文件Journald 的 Linux 發行版上同時運行 日志輸入Journald 輸入,你將會 產生重復數據,系統儀表板也會顯示 重復的數值!

以下是 集成配置 的示例:

配置完成后(或接受默認設置),選擇是將其添加到新策略還是現有策略

然后點擊 "Save and continue"(保存并繼續),并繼續執行 "Add Elastic Agent to your hosts"(將 Elastic Agent 添加到你的主機)

然后按照說明使用 Linux Tar 添加代理,你需要在主機上運行以下命令:

curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.17.0-linux-x86_64.tar.gz 
tar xzvf elastic-agent-8.17.0-linux-x86_64.tar.gz
cd elastic-agent-8.17.0-linux-x86_64
sudo ./elastic-agent install --url=https://<YOUR FLEET SERVER ADDRESS>:8220 --enrollment-token=<YOUR ENROLMENT TOKEN>

安裝 Elastic-Agent 后,進入其 Overview 頁面,你會看到 Journald 輸入 正在運行,而 日志輸入?(log input)不可用:

如何為我的主機自定義條件( condition)?

這很簡單!主機提供商(host provider)的文檔 會列出它提供的鍵。例如,在上面的示例中,我們使用了 host.os_versionhost.os_platform

如果你想檢查主機實際報告的值,可以按照以下步驟操作:

  1. 進入 Kibana,依次導航到:
    Management -> Fleet -> Agents
  2. 選擇你的代理,然后點擊 "Diagnostics"
  3. 點擊 "Request diagnostics .zip" 請求診斷文件
  4. 診斷文件生成后,下載并解壓 ZIP 壓縮包
  5. 找到 variables.yml 文件
  6. host 鍵下,你可以看到主機提供商報告的所有 鍵值對,例如:
     host:architecture: x86_64id: ad88a1859979427ea1a7c24f0ae0320aip:- 127.0.0.1/8- ::1/128mac:- 08:00:27:5e:8a:a5name: debian12os_family: debianos_platform: debianos_version: 12 (bookworm)platform: linux

那么獨立運行的 Beats 呢?

很高興你問這個問題!是的,Filebeat 也支持 Debian 12 或任何使用 Journald 的 Linux 發行版。從 8.17.0 版本開始,system 模塊?(system module?)就已經支持 Journald。

不過,Filebeat 的配置方式略有不同,因為它是按主機配置的,需要手動編輯配置文件。因此,你需要:

  1. 啟用 system 模塊
  2. 在 syslog 和 auth 這兩個 fileset 配置中,將 var.use_journald 設置為 true

? 注意: 你需要以 root 身份執行這些步驟,因為讀取部分 Journal 日志需要 root 權限

操作步驟

  • 下載并解壓 tar.gz
  • 配置 filebeat.yml,填寫你的 Elasticsearch 和 Kibana 憑據(Kibana 憑據用于設置數據視圖、儀表板等)
  • 確保啟用了相關模塊,例如:
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: falsereload.period: 10s
  • 通過運行 ./filebeat test output 來測試與輸出的連接:
root@Debian12:~/filebeat-8.17.0-linux-x86_64# ./filebeat test output
elasticsearch: https://advent-calendar-deployment.elastic-cloud.com:443...parse url... OKconnection...parse host... OKdns lookup... OKaddresses: 35.235.72.223dial up... OKTLS...security: server's certificate chain verification is enabledhandshake... OKTLS version: TLSv1.3dial up... OKtalk to server... OKversion: 8.17.0
root@Debian12:~/filebeat-8.17.0-linux-x86_64#
  • 通過運行 ./filebeat modules enable system 來啟用 system 模塊:
root@Debian12:~/filebeat-8.17.0-linux-x86_64# ./filebeat modules enable system
Enabled system
root@Debian12:~/filebeat-8.17.0-linux-x86_64#
  • 編輯 ./modules.d/system.yml 文件以啟用 filesetsJournald
# Module: system
# Docs: https://www.elastic.co/guide/en/beats/filebeat/8.x/filebeat-module-system.html
- module: systemsyslog:enabled: truevar.use_journald: trueauth:enabled: truevar.use_journald: true
  • 設置 system 模塊:

???????運行以下命令來設置系統模塊:

./filebeat setup --modules system
  • 啟動 Filebeat

???????使用以下命令啟動 Filebeat-e-v 標志將日志輸出到 stderr,并以 info 級別記錄:

./filebeat -e -v
  • Kibana 中查看數據:
    • 進入 "Discover" 頁面,選擇 filebeat-* 數據視圖,你應該能看到包含 event.dataset: system.syslogevent.dataset: system.auth 的事件。
  • 訪問 "Dashboards"
    • 搜索 "[Logs System]"(使用引號以過濾掉 Windows 儀表板)。
    • 所有四個儀表板都應該工作,只需確保設置適當的時間區間,默認的 15 分鐘有時對某些主機來說不足夠。

原文:Dec 21st, 2024: [EN] Ingesting syslog and auth logs from Journald into Elastic Stack with Elastic-Agent or Beats - Advent Calendar - Discuss the Elastic Stack

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

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

相關文章

3.9[A]csd

在傳統CPU中心架構中&#xff0c;中央處理器通過內存訪問外部存儲器&#xff0c;而數據必須經過網絡接口卡才能到達外部存儲器。這種架構存在集中式計算、DRAM帶寬和容量挑戰、大量數據移動&#xff08;服務器內和網絡&#xff09;以及固定計算導致工作負載容量增長等問題。 而…

ESP32S3讀取數字麥克風INMP441的音頻數據

ESP32S3 與 INMP441 麥克風模塊的集成通常涉及使用 I2S 接口進行數字音頻數據的傳輸。INMP441 是一款高性能的數字麥克風&#xff0c;它通過 I2S 接口輸出音頻數據。在 Arduino 環境中&#xff0c;ESP32S3 的開發通常使用 ESP-IDF&#xff08;Espressif IoT Development Framew…

DeepSeek大模型 —— 全維度技術解析

DeepSeek大模型 —— 全維度技術解析 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;可以分享一下給大家。點擊跳轉到網站。 https://www.captainbed.cn/ccc 文章目錄 DeepSeek大模型 —— 全維度技術解析一、模型架構全景解析1…

[Kubernetes] 7控制平面組件

1. 調度 kube- scheduler what 負責分配調度pod到集群節點監聽kube-apiserver,查詢未分配node的pod根據調度策略分配這些pod&#xff08;更新pod的nodename&#xff09;需要考慮的因素&#xff1a; 公平調度&#xff0c;資源有效利用&#xff0c;QoS&#xff0c;affinity, an…

PyTorch系列教程:編寫高效模型訓練流程

當使用PyTorch開發機器學習模型時&#xff0c;建立一個有效的訓練循環是至關重要的。這個過程包括組織和執行對數據、參數和計算資源的操作序列。讓我們深入了解關鍵組件&#xff0c;并演示如何構建一個精細的訓練循環流程&#xff0c;有效地處理數據處理&#xff0c;向前和向后…

LeetCode Hot100刷題——反轉鏈表(迭代+遞歸)

206.反轉鏈表 給你單鏈表的頭節點 head &#xff0c;請你反轉鏈表&#xff0c;并返回反轉后的鏈表。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,3,4,5] 輸出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 輸入&#xff1a;head [1,2] 輸出&#xff1a;[2,1]示例 3&#…

機器學習的發展史

機器學習&#xff08;Machine Learning, ML&#xff09;作為人工智能&#xff08;AI&#xff09;的一個分支&#xff0c;其發展經歷了多個階段。以下是機器學習的發展史概述&#xff1a; 1. 早期探索&#xff08;20世紀50年代 - 70年代&#xff09; 1950年&#xff1a;艾倫圖…

Springboot redis bitMap實現用戶簽到以及統計,保姆級教程

項目架構&#xff0c;這是作為demo展示使用&#xff1a; Redis config&#xff1a; package com.zy.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.Ob…

Ardupilot開源無人機之Geek SDK進展2025Q1

Ardupilot開源無人機之Geek SDK進展2025Q1 1. 源由2. 內容匯總2.1 【jetson-fpv】YOLO INT8 coco8 dataset 精度降級2.2 【OpenIPC-Configurator】OpenIPC Configurator 固件升級失敗2.3 【OpenIPC-Adaptive-link】OpenIPC RF信號質量相關顯示2.4 【OpenIPC-msposd】.srt/.osd…

《云原生監控體系構建實錄:從Prometheus到Grafana的觀測革命》

PrometheusGrafana部署配置 Prometheus安裝 下載Prometheus服務端 Download | PrometheusAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.https://prometheus.io/…

SpringMvc與Struts2

一、Spring MVC 1.1 概述 Spring MVC 是 Spring 框架的一部分&#xff0c;是一個基于 MVC 設計模式的輕量級 Web 框架。它提供了靈活的配置和強大的擴展能力&#xff0c;適合構建復雜的 Web 應用程序。 1.2 特點 輕量級&#xff1a;與 Spring 框架無縫集成&#xff0c;依賴…

數據類設計_圖片類設計之1_矩陣類設計(前端架構基礎)

前言 學的東西多了,要想辦法用出來.C和C是偏向底層的語言,直接與數據打交道.嘗試做一些和數據方面相關的內容 引入 圖形在底層是怎么表示的,用C來表示 認識圖片 圖片是個風景,動物,還是其他內容,人是可以看出來的.那么計算機是怎么看懂的呢?在有自主意識的人工智能被設計出來…

開發者社區測試報告(功能測試+性能測試)

功能測試 測試相關用例 開發者社區功能背景 在當今數字化時代&#xff0c;編程已經成為一項核心技能&#xff0c;越來越多的人開始學習編程&#xff0c;以適應快速變化的科技 環境。基于這一需求&#xff0c;我設計開發了一個類似博客的論壇系統&#xff0c;專注于方便程序員…

EasyRTC嵌入式音視頻通話SDK:基于ICE與STUN/TURN的實時音視頻通信解決方案

在當今數字化時代&#xff0c;實時音視頻通信技術已成為人們生活和工作中不可或缺的一部分。無論是家庭中的遠程看護、辦公場景中的遠程協作&#xff0c;還是工業領域的遠程巡檢和智能設備的互聯互通&#xff0c;高效、穩定的通信技術都是實現這些功能的核心。 EasyRTC嵌入式音…

【OneAPI】網頁截圖API-V2

API簡介 生成指定URL的網頁截圖或縮略圖。 舊版本請參考&#xff1a;網頁截圖 V2版本新增全屏截圖、帶殼截圖等功能&#xff0c;并修復了一些已知問題。 全屏截圖&#xff1a; 支持全屏截圖&#xff0c;通過設置fullscreentrue來支持全屏截圖。全屏模式下&#xff0c;系統…

簡單的 Python 示例,用于生成電影解說視頻的第一人稱獨白解說文案

以下是一個簡單的 Python 示例&#xff0c;用于生成電影解說視頻的第一人稱獨白解說文案。這個示例使用了 OpenAI 的 GPT 模型&#xff0c;因為它在自然語言生成方面表現出色。 實現思路 安裝必要的庫&#xff1a;使用 openai 庫與 OpenAI API 進行交互。設置 API 密鑰&#…

記錄小白使用 Cursor 開發第一個微信小程序(一):注冊賬號及下載工具(250308)

文章目錄 記錄小白使用 Cursor 開發第一個微信小程序&#xff08;一&#xff09;&#xff1a;注冊賬號及下載工具&#xff08;250308&#xff09;一、微信小程序注冊摘要1.1 注冊流程要點 二、小程序發布流程三、下載工具 記錄小白使用 Cursor 開發第一個微信小程序&#xff08…

六軸傳感器ICM-20608

ICM-20608-G是一個6軸傳感器芯片&#xff0c;由3軸陀螺儀和3軸加速度計組成。陀螺儀可編程的滿量程有&#xff1a;250&#xff0c;500&#xff0c;1000和2000度/秒。加速度計可編程的滿量程有&#xff1a;2g&#xff0c;4g&#xff0c;8g和16g。學習Linux之SPI之前&#xff0c;…

python可應用在金融分析的那一個方面,如何部署在linux server上面。

Python 在金融分析中應用廣泛&#xff0c;以下是幾個主要方面&#xff1a; ### 1. **數據處理與分析** - 使用 **Pandas** 和 **NumPy** 等庫來處理和分析大規模數據集&#xff0c;進行清理、轉換和統計運算。 - 舉例&#xff1a;處理歷史市場數據&#xff0c;分析價格趨…

Git與GitHub:理解兩者差異及其關系

目錄 Git與GitHub&#xff1a;理解兩者差異及其關系Git&#xff1a;分布式版本控制系統概述主要特點 GitHub&#xff1a;基于Web的托管服務概述主要特點 Git和GitHub如何互補關系現代開發工作流 結論 Git與GitHub&#xff1a;理解兩者差異及其關系 Git&#xff1a;分布式版本控…