使用 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.mzph.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;分布式版本控…