syslog-ng 在收到的日志中添加日期,破坏 patterndb 中的模式

syslog-ng 在收到的日志中添加日期,破坏 patterndb 中的模式

syslog-ng我正在使用+为我们的服务器设置中央日志记录patterndb,但是日志服务器从客户端接收的日志前面添加了日期、主机和其他数据。这当然会破坏所有模式,因此patterndb没有任何匹配项。

有没有办法在尝试对源日志文件进行分类之前对其进行一些预处理,或者采用其他方法来解决这个问题?

干杯。

相关客户端配置:

source s_src {
   system();
   internal();
};

destination d_central_logging {
    syslog(192.168.1.1 transport("tcp") port("12345")); 
};

log {
    source(s_src);
    destination(d_central_logging);
};

相关服务器配置:

parser p_patterndb {
    db-parser(file("/var/lib/syslog-ng/patterndb.xml"));
};

source s_network {
    tcp(port(12345) flags(syslog-protocol));
};

filter f_class_unknown {
    match("unknown"
        value(".classifier.class")
        type("string")
    );
};

destination d_all {
    file("/tmp/all");
};

destination d_unknown {
    file("/tmp/unknown");
};

log {
    source(s_network);
    parser(p_patterndb);
    log {
        filter(f_class_unknown);
        destination(d_unknown);
    };
    log {
        destination(d_all);
    };
};

编辑:

原始日志行: 10.0.2.2 - - [23/Dec/2014:13:42:49 +0000] "GET /assets/favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"

修改后的日志行: Dec 23 13:59:08 192.168.33.44 264 <13>1 2014-12-23T13:42:50+00:00 devhost 10.0.2.2 - - [meta sequenceId="8"] - - [23/Dec/2014:13:42:49 +0000] "GET /assets/favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"

答案1

Paul 是对的,客户端目标和服务器源中使用的协议不匹配。因此,服务器无法将传入的消息识别为格式正确的系统日志消息,并在前面添加主机、日期和其他信息。

问候,

罗伯特

答案2

好的,我找到了无法匹配的真正原因。我update-patterndb在确认github.com/balabit/syslog-ng-patterndb存储库中存在正确的 Apache 模式后使用该命令。但是,该update-patterndb命令不包括.xml文件,只包括.pdb文件。我看到编译的模式文件发生了/var/lib/syslog-ng/patterndb.xml变化,但从未检查过它。正如手册页所说update-patterndb,它只是pdbtool merge命令的一个薄包装。这对我来说有效:

pdbtool merge -r --glob *.xml -D /etc/syslog-ng/patterndb.d/syslog-ng-patterndb/

该目录是我克隆存储库的位置。通过检查编译的模式文件、运行命令并查看接收下游数据的结构化结果,/etc/syslog-ng/patterndb.d/syslog-ng-patterndb/我可以确认 Apache 模式现在正在按预期提取内容。pdbtool test

相关内容