python - 在 Splunk 上过滤访问日志
问题描述
SplunkForwarder 用于向 Splunk 提供 Apache 的访问日志(或由 DevOps 告知)。AFAIK 无法根据给定的正则表达式过滤掉日志——问题我试图解决的问题。正在考虑在 Apache 上添加一个触发器,如果请求的 URL 模式在白名单中,它将拦截所有请求并向 Splunk 发送消息(发现 Splunk HTTP 事件收集器 - 以前从未使用过 - 闻起来像是解决方案的一部分) . 试图找到一个正确的例子来说明如何使用 mod_actions 模块。不幸的是,没有找到任何适合我的东西。Apache 的文档毫无用处。不确定 mod_actions 是否是我唯一的选择。请告诉我如何为每个请求执行 py/sh/pl 或任何其他脚本?很可能,DevOps 不允许我向 Apache 添加任何外来(非标准)模块。非常感谢。
解决方案
完全可以根据正则表达式过滤日志。您需要索引器上的应用程序根据通用转发器上的inputs.conf中定义的源类型进行过滤。
下面提供的 props.conf/transforms.conf 组合将仅保留包含字符串Error或Warning的日志行,而所有其他消息将发送到 nullqueue(已删除)。
$SPLUNK_HOME$/etc/apps/your_app/local/props.conf $SPLUNK_HOME$/etc/apps/your_app/local/transforms.conf
道具.conf
[your_sourcetype]
TRANSFORMS-set = setnull, setparsing
转换.conf
# This sends all events to be ignored
[setnull]
REGEX = .
DEST_KEY = queue
FORMAT = nullQueue
# this says ignore all events, except the ones containing ERROR
[setparsing]
REGEX = Error|Warning
DEST_KEY = queue
FORMAT = indexQueue
[your_sourcetype1]
TRANSFORMS-set = setnull, setparsing
[your_souretype2]
TRANSFORMS-set = setnull, setparsing
推荐阅读
- java - 膨胀布局以提醒对话框android studio
- sql - 将 datetime2 列更改为日期
- python-3.x - 我们如何添加一个for循环这个标签来扫描多个网页的元标签?
- google-apps-script - 如何使用脚本/宏在特定 GSheet 列中查找和替换?
- python - 如何使用硒进行网页抓取谷歌航班?
- javascript - discord.js - 尝试让机器人加入语音频道时出现“TypeError:voiceChannel.join 不是函数”
- mapping - TypeError:索引表达式必须是类型、映射或数组(函数 (uint16) 是否返回 (uint256))?
- python - cv::imshow 的异步使用
- java - 如何创建一个从(1到x)的数字数组?
- powershell - 从 Intune 部署 PowerShell 脚本