我是Logstash的新手,并且将其用于解析特定目录中的500MB日志文件,当前,当我启动Logstash时,它不显示任何进度条来说明已完成解析日志文件的百分比。有什么办法可以查看日志解析的进度吗?
不,Logstash没有内置进度条功能。在大多数情况下,这没有任何意义,因为Logstash旨在连续处理不断增长的日志,因此实际上没有任何“完成”。
您可以做的是将sincedb文件的内容与相应文件的文件大小相关联。sincedb文件是Logstash将当前偏移量存储在文件中的位置。在文件输入的文档中可以找到文件格式的确切说明,但是您主要必须关心第一列和最后一列。第一列是索引节点号,也可以在ls -li文件的输出中找到该索引号,最后一列是当前偏移量。例:
393309 0 64773 437
Run Code Online (Sandbox Code Playgroud)
在这里,对于带有inode 393309的文件,Logstash位于偏移437处。
join命令可用于将此文件与ls -li输出连接(文件的inode号在第一列中):
$ join /var/lib/logstash/.sincedb_f5fdf6ea0ea92860c6a6b2b354bfcbbc <(ls -li /var/log/syslog)
393309 0 64773 437 -rw-r----- 1 root adm 437 Oct 15 12:47 /var/log/syslog
Run Code Online (Sandbox Code Playgroud)
最后,awk可用于清理输出并产生百分比完成的数字:
$ join /var/lib/logstash/.sincedb_f5fdf6ea0ea92860c6a6b2b354bfcbbc <(ls -li /var/log/syslog) | awk '{ printf "%-30s%.1f%\n", $13, 100 * $4 / $9 }'
/var/log/syslog 100.0%
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |