syslog - Fluentd 带有 Syslog 的无效时间格式
问题描述
我正在尝试使用 Bindplane 将 Java 开发人员创建的“系统日志”上传到 Google 的 Stackdriver。Bindplane 是基于 fluentd 构建的。
我正在使用tail的源类型。Bindplane 能够读取日志文件并将其推送到 Stackdriver,但它始终在 JSON 消息的正文中附加以下错误:
error: "invalid time format: value = 2019-10-21 16:52:29.588 EDT, error_class = ArgumentError, error = invalid strptime format - `%Y-%m-%d %H:%M:%S.%L%z'"
日志显示的格式与大多数 syslog 格式略有不同:
2019-10-21 13:15:02.439 EDT main TRACE Processor.init()
这就是我在流利的配置中所拥有的:
<source>
@type tail
path C:/Test/Connect_Test/Log/**TestDL**.txt
pos_file C:/BlueMedora/BindplaneLogAgent/config/449c6ffb-1a29-4172-9058-e19de236d712.tail.log.pos
tag 449c6ffb-1a29-4172-9058-e19de236d712.1st_auto_policy
format syslog
time_format %Y-%m-%d %H:%M:%S.%L%z
</source>
有没有办法在不更改日志的情况下避免此错误?由于类/方法属于另一个开发人员,我无法更改日志的编写方式。
谢谢你的帮助!
解决方案
埃迪——
我为 Blue Medora 工作,BindPlane 是我们的产品。这应该可以解决您的问题,如果没有,请告诉我们,我们可以帮助您正确配置它。
尝试time_format %Y-%m-%d %H:%M:%S.%L %Z
- 小写的 z 表示“时区作为与 UTC 的小时偏移量”(例如 +0400)
- 大写 Z 代表“时区名称”,它看起来就像您在日志文件中的名称。
- 看起来毫秒和时区之间也有一个空格。所以也应该增加空间。
这是有关 strptime() 选项的文档的链接,显示了 %z 和 %Z 之间的区别
同样,如果这对您不起作用,请告诉我们。
推荐阅读
- php - 如何将 Gravity Form 条目传递到第三方网站 (CRM)?
- c# - 使用 WPF 创建时间表?
- javascript - 如何将收到的对象转换为包含所需数据的另一个对象?
- javascript - Heroku:找出哪个文件夹是活动的
- python - Apache Beam DirectRunner 与“正常”并行进程
- bash - 未找到 PATH 环境变量
- spring-boot - 春云流
- java - 在另一个 lambda 中返回的 lambda 应该是什么
- javascript - 将字符串转换为日期时,将给定月份的第一天转换为上个月的最后一天
- python - 将变量从另一个 .py 文件检索到 cog 文件。(不和谐.py)