ELK中使用logstash将采集的日志打包保存

之前的学习都是logstash收集过滤的日志再次传递到ES中进行存储使用,在实际的工作中有些日志我们是不需要存储到DB中,而是直接收集打包存储到硬盘

logstash中的output/file插件可以实现这个功能,使用例子如下

output {
    file {
        path => "/path/to/%{+yyyy/MM/dd/HH}/%{host}.log.gz"
        message_format => "%{message}"
        gzip => true
    }
}

我们需要注意的是message_format参数格式

插件默认是输出整个 event 的 JSON 形式数据的。这可能跟大多数情况下使用者的期望不符。大家可能只是希望按照日志的原始格式保存就好了。所以需要定义为 %{message},当然,前提是在之前的 filter 插件中,你没有使用 remove_field 或者 update 等参数删除或修改 %{message} 字段的内容。
另一个非常有用的参数是 gzip。gzip 格式是一个非常奇特而友好的格式。其格式包括有:
10字节的头,包含幻数、版本号以及时间戳
可选的扩展头,如原文件名
文件体,包括DEFLATE压缩的数据
8字节的尾注,包括CRC-32校验和以及未压缩的原始数据长度

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/740.html