logstash - 如何使用 kibana 的日期过滤器转换我的时间
问题描述
我需要利用这个日志行:
30361 30485 494 8861012 42:42 /plw/modules/bin/Lx86_64/opx2-intranet.exe -I /plw/modules/bin/Lx86_64/opx2-intranet.dxl -H /plw/modules/bin/Lx86_64 -L /plw/PLW_PROD/modules/preload-intranet.ini -- plw-sysconsole -port 8400 -logdir /plw/PLW_PROD/httpdocs/admin/log/ -slaves 2
我的目标是恢复系统启动所花费的时间,这里是 42:42。问题是格式可以是这里的 mm:ss,或者是 HH:mm:ss,例如 01:42:30。我想知道使用哪个paterne grok。这是我的conf文件:
input {
file {
path => ["/home/mathis/Documents/*]"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
grok {
match => {"message" => ["%{NUMBER}%{SPACE}%{NUMBER}%{SPACE}%{NUMBER}%{SPACE}%{NUMBER}%{SPACE}%{TIME:starttime}"]}
remove_field => "message"
}
date {
match => [ "starttime", "HH:mm:ss","mm:ss" ]
}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
index => "logstash-local3-%{+YYYY.MM.dd}"
}
}
不幸的是,TIME 的语法是 HH:mm:ss 并且不包括 mm:ss。
解决方案
解决方案:
%{NUMBER}%{SPACE}%{NUMBER}%{SPACE}%{NUMBER}%{SPACE}%{NUMBER}%{SPACE}(?<starttime>((?!<[0-9])%{HOUR}:)?%{MINUTE}(?::%{SECOND})(?![0-9]))
推荐阅读
- scala - 如何使用 Spark/Scala 将同一列中的不同值连接到一行中?
- google-sheets - 谷歌表格:将百万/十亿的价值转换为数字
- amazon-web-services - 带有应用程序负载均衡器的 Cloudfront 返回 504
- python-3.x - 如何将多个表单放在同一个views.py函数中 - Django
- python - scipy 中的 Basinhopping - 仅对某些维度使用假零导数/雅可比,对其他维度使用非零
- php - 从函数访问值
- php - 如何重构自定义 http 客户端类?
- heroku - 使用 Socket.IO 部署 GraphQL API
- javascript - 当我们在 JavaScript 中将原语视为对象时会发生什么?
- python - 如何创建在线文档以通过 python 记录用户的值?