讲师中心 微信公众号
AI工具推荐 视频效率加速

如何配置Logstash采集Auditd结构化日志并对接ELK安全大屏

胖芳姑娘_6629

胖芳姑娘_6629

发布时间:2026-05-20 06:52:57

|

805人浏览过

|

来源于php中文网

原创

Logstash需通过rsyslog将auditd二进制日志转为JSON格式后再采集;配置rsyslog启用imaudit模块并定义JSON模板输出到文件;Logstash用json codec读取,再通过dissect+kv提取字段,date转换时间戳,mutate清洗重命名;最终输出至Elasticsearch供Kibana构建安全大屏。

如何配置logstash采集auditd结构化日志并对接elk安全大屏

Logstash 本身不直接解析 auditd 的原始二进制日志(/var/log/audit/audit.log 是文本格式,但 auditd 默认输出的是二进制流到 /dev/audit),所以必须先让 auditd 输出**可读、结构化、机器友好的日志格式**,再由 Logstash 采集。核心路径是:auditd → rsyslog(转为JSON)→ Logstash(接收+增强)→ Elasticsearch → Kibana大屏。

一、让auditd日志变成结构化输入

auditd 自身不生成 JSON,需借助 rsyslog 做格式转换。关键是在 rsyslog 中启用 imaudit 模块,并用模板将 audit 事件转成标准 JSON:

  • 确认已安装 rsyslog-audit 或对应模块(如 CentOS/RHEL:运行 yum install rsyslog-audit)
  • 在 /etc/rsyslog.d/20-audit-json.conf 中添加:

  module(load="imaudit")
  template(name="AuditJSON" type="list") {
    constant(value="{")
    constant(value="\"@timestamp\":\"")
    property(name="timereported" dateFormat="rfc3339")
    constant(value="\",\"event_type\":\"audit\")
    constant(value=",\"message\":\"")
    property(name="msg" format="json")
    constant(value="\"}")
  }
  if $programname == 'kernel' and $msg contains 'audit(' then {
    action(type="omfile" file="/var/log/audit/audit-structured.json" template="AuditJSON")
    stop
  }

  • 重启服务:sudo systemctl restart rsyslog auditd
  • 验证:查看 /var/log/audit/audit-structured.json,应出现类似:

{"@timestamp":"2026-05-18T23:12:04.123456+08:00","event_type":"audit","message":"type=SYSCALL msg=audit(1747599124.123:1234): arch=c000003e syscall=2 success=yes exit=3 a0=7fff12345678 a1=0 a2=1 a3=7fff12345670 items=1 ppid=1234 pid=5678 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm=\"ls\" exe=\"/usr/bin/ls\" key=\"privileged-commands\""}

二、Logstash配置:接收并提取关键安全字段

Logstash 不需要再用 grok 解析整行——因为 audit 日志 message 字段本身就是 key=value 形式。推荐使用 kv 过滤器 + dissect 提取 type 和时间戳,再用 mutate 清洗字段名:

配置文件 /etc/logstash/conf.d/audit-input.conf:

input {
  file {
    path => "/var/log/audit/audit-structured.json"
    start_position => "end"
    sincedb_path => "/var/lib/logstash/audit.sincedb"
    codec => "json"
  }
}
filter {
  if [message] =~ /^type=/ {
    # 提取 type=SYSCALL、msg=audit(...) 等头部信息
    dissect {
      mapping => { "message" => "type=%{audit_type} msg=audit(%{audit_epoch}.%{audit_microsec}:%{audit_seq}): %{audit_rest}" }
    }
    # 解析 key=value 部分
    kv {
      source => "audit_rest"
      field_split => " "
      value_split => "="
      include_brackets => false
    }
    # 转换时间戳
    date {
      match => [ "audit_epoch", "UNIX" ]
      target => "@timestamp"
    }
    # 清理冗余字段
    mutate {
      remove_field => ["message", "audit_rest", "audit_epoch", "audit_microsec", "audit_seq"]
      rename => { "audit_type" => "audit.type" "comm" => "process.name" "exe" => "process.path" "auid" => "user.auid" "uid" => "user.uid" "pid" => "process.pid" }
    }
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "audit-%{+YYYY.MM.dd}"
  }
}

三、Kibana安全大屏关键指标设计

索引模式设为 audit-* 后,在 Kibana 中可快速构建以下安全可视化:

  • 高危操作TOP10:用 audit.type 做饼图或水平条形图(筛选 SYSCALL、USER_AUTH、CONFIG_CHANGE)
  • 特权进程调用热力图:Y轴 process.name,X轴小时,色阶为计数(加 filter:uid: 0 OR euid: 0)
  • 异常登录趋势:折线图,聚合 event where audit.type : "USER_LOGIN" and result : "failed",按分钟统计
  • 敏感文件访问追踪:表格视图,显示 path、comm、uid、@timestamp,加 filter 如 path: "/etc/shadow" OR path: "/root/.ssh/"

所有图表加入「时间范围选择器」和「全局搜索栏」,即可支撑 SOC 实时监控看板。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

4565

2025.10.13

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

395

2025.11.04

elk是什么意思
elk是什么意思

ELK指的是Elasticsearch、Logstash和Kibana三个开源软件的组合。想了解更多elk的相关内容,可以阅读本专题下面的文章。

3020

2023.12.18

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

20

2026.10.10

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

20

2026.10.10

Kratos框架Protobuf接口定义与代码生成合集
Kratos框架Protobuf接口定义与代码生成合集

本专题讲解Kratos框架接口定义体系,涵盖proto编写规范、proto add/client/server生成命令、http注解路由、validate校验、OpenAPI文档生成、跨服务proto复用与兼容性设计。

0

2026.10.10

C++虚函数怎么定义和调用
C++虚函数怎么定义和调用

C++虚函数是实现运行时多态的重要机制。本专题从virtual关键字的基本用法入手,介绍基类与派生类之间的函数重写、基类指针调用派生类方法,以及动态绑定的执行过程,帮助初学者掌握虚函数的核心语法。

20

2026.10.10

C++类与对象的封装方法教程
C++类与对象的封装方法教程

C++封装是面向对象编程的核心特性之一,通过类将数据与操作数据的函数组织在一起,并利用访问权限控制外部访问。本专题介绍类的定义、成员变量、成员函数以及public、private和protected的使用方法,帮助初学者掌握封装的基本原理。

0

2026.10.10

C++构造函数定义与调用方法
C++构造函数定义与调用方法

C++构造函数用于初始化类对象,是面向对象编程的重要基础。本专题从构造函数的定义、声明和调用入手,介绍默认构造函数、带参数构造函数、拷贝构造函数及成员初始化列表,帮助初学者掌握对象创建与初始化的基本方法。

20

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn