微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

fluentd:从多个 rsyslog 客户端在 elasticsearch 中创建多个索引

如何解决fluentd:从多个 rsyslog 客户端在 elasticsearch 中创建多个索引

我尝试在 fluentd 中创建不同的源,这些源应该基于来自服务器的 rsyslog 消息在 elasticsearch 中的不同索引中结束。

我将不同的事件发送到 fluentd 服务器上的专用端口。这是为了将来可能将事件发送到不同的 EFK 堆栈。

事件应该在专用索引中结束(具有不同的生命周期策略)。 我使用以下配置从 rsyslog 客户端发送事件:

$DefaultNetstreamDriverCAFile /path/to/file.crt
$DefaultNetstreamDriverCertFile /path/to/file.crt
$DefaultNetstreamDriverKeyFile /path/to/file.key
$DefaultNetstreamDriver gtls
cron.notice;daemon.notice;kern.notice;syslog.notice;lpr.notice action(type="omfwd" protocol="tcp" Target="192.168.1.10" Port="5140" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="anon")
auth.info;authpriv.info;mail.info action(type="omfwd" protocol="tcp" Target="192.168.1.10" Port="5141" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="anon")

我将事件分离到两个不同的目标,以便在未来将它们发送到两个 EFK 服务器。

使用 tcpdump 我看到加密的数据包进入两个端口,这取决于在系统上采取的操作。因此,rsyslog 似乎向正确的目标发送正确的信号......

fluentd 配置如下:

#
# Source: rsyslog
#
<source>
    @type syslog
    port 5140
    bind 0.0.0.0
    <transport tls>
        ca_path /path/to/file.crt
        cert_path /path/to/file.crt
        private_key_path /path/to/file.key
    </transport>
    tag syslog
</source>
#
# Output: rsyslog
#
<match syslog.**>
    @type elasticsearch
    host 192.168.1.10
    port 9200
    user logstash_writer
    password <password>
    logstash_format true
    logstash_prefix rsyslog
    <buffer>
        flush_interval 5s
    </buffer>
</match>
#
# Source: rsyslog auth/authpriv/mail
#
<source>
    @type syslog
    port 5141
    bind 0.0.0.0
    <transport tls>
        ca_path /path/to/file.crt
        cert_path /path/to/file.crt
        private_key_path /path/to/file.key
    </transport>
    tag authlog
</source>
#
# Output: rsyslog auth/authpriv/mail
#
<match authlog.**>
    @type elasticsearch
    host 192.168.1.10
    port 9200
    user logstash_writer
    password <password>
    logstash_format true
    logstash_prefix rauthlog
    <buffer>
        flush_interval 5s
    </buffer>
</match>

整个事情的结果是在 elasticsearch 中创建了 rauthlog-* 索引,也显示了预期的条目,但 rsyslog-* 索引从未出现,事件与创建日志条目“集体”。 ealsticsearch 中的 Writer 用户和索引模板存在...

所以,问题是,我似乎在上升过程中丢失了一个“日志目标”...... rsyslog 和 TLS 似乎运行正常。

有人知道我做错了什么吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。