首页 > 解决方案 > 使用 Logstash 管道计算日志中的行号

问题描述

想象一下有一些这样的日志

Jun2012|16:52:39|10.0.0.1|log|keyinst||daemon|inbound|VPN-1 & FireWall-1|Certificate initialized|
Jun2012|17:52:39|10.0.0.1|log|keyinst||daemon|inbound|VPN-1 & FireWall-1|Certificate initialized|
Jun2013|16:52:39|10.0.0.1|log|keyinst||daemon|inbound|VPN-1 & FireWall-1|Certificate initialized|
Jun2012|18:52:39|10.0.0.1|log|keyinst||daemon|inbound|VPN-1 & FireWall-1|Certificate initialized|
Jun2012|19:52:39|10.0.0.1|log|keyinst||daemon|inbound|VPN-1 & FireWall-1|Certificate initialized|

.....我可以在编辑器中看到行号,但我想计算每行的行号并制作它的字段。输入输出放在一个json中

{...,"line_num" : 23, ...} 

我怎样才能做到这一点?有人可以举个例子吗?

标签: rubylogstash

解决方案


$.Ruby 有一个具有行号的特殊变量。

File.foreach(logfile).each do |line|
   puts "#{$.}: #{line}"
end

推荐阅读