【问题标题】:Filter access logs on Splunk在 Splunk 上过滤访问日志
【发布时间】:2020-12-31 01:59:43
【问题描述】:

SplunkForwarder 用于向 Splunk 提供 Apache 的访问日志(或由 DevOps 告知)。 AFAIK 无法根据给定的正则表达式过滤掉日志——我正在尝试解决的 ISSUE。正在考虑在 Apache 上添加一个触发器,如果​​请求的 URL 模式在白名单中,它将拦截所有请求并向 Splunk 发送消息(发现 Splunk HTTP 事件收集器 - 以前从未使用过 - 闻起来像是解决方案的一部分) . 试图找到一个正确的例子来说明如何使用 mod_actions 模块。不幸的是,没有找到任何适合我的东西。 Apache 的文档毫无用处。不确定 mod_actions 是否是我唯一的选择。 请告诉我如何为每个请求执行 py/sh/pl 或任何其他脚本?很可能,DevOps 不允许我向 Apache 添加任何外来(非标准)模块。 非常感谢。

【问题讨论】:

    标签: python bash apache perl splunk


    【解决方案1】:

    完全可以根据正则表达式过滤日志。您需要索引器上的应用程序根据通用转发器上 inputs.conf 中定义的源类型进行过滤。

    下面提供的

    props.conf/transforms.conf 组合将仅保留包含字符串 ErrorWarning 的日志行,而所有其他消息将发送到 nullqueue(已删除) .

    $SPLUNK_HOME$/etc/apps/your_app/local/props.conf $SPLUNK_HOME$/etc/apps/your_app/local/transforms.conf

    props.conf

    [your_sourcetype]
    TRANSFORMS-set = setnull, setparsing
    

    transforms.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
    

    【讨论】:

    • 如果你在 Apache 服务器上使用重型转发器,而不是通用转发器,你可以把这个配置放在那里而不是在索引器中。这样,您无需通过网络发送所有流量,只需将其删除即可。根据日志量考虑的事项
    • 似乎我的公司正在使用 Splunk Cloud,所以我被告知我们不能使用过滤器。非常感谢,伙计们。
    猜你喜欢
    • 2021-01-04
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多