我正在尝试从elasticsearch
中的/var/log/wtmp
读取访问日志
使用last -F /var/log/wtmp
我正在运行logstash并将日志发送到elasticsearch,这是logstash conf文件。
input {
file {
path => "/var/log/wtmp"
start_position => "beginning"
}
}
output {
elasticsearch {
host => localhost
protocol => "http"
port => "9200"
}
}
在elasticsearch中显示的内容是
答案 0 :(得分:4)
一旦我用less打开文件,我只能看到二进制数据。 现在,logstash无法理解这些数据。 像下面这样的logstash文件应该可以正常工作 -
input {
pipe {
command => "/usr/bin/last -f /var/log/wtmp"
}
}
output {
elasticsearch {
host => localhost
protocol => "http"
port => "9200"
}
}
答案 1 :(得分:1)
Vineeth的答案是对的,但下面的清洁配置也可以:
input { pipe { command => "last" } }
last /var/log/wtmp
和last
完全相同。
utmp, wtmp, btmp是用于跟踪用户登录和注销的Unix文件。它们无法直接读取,因为它们不是常规文本文件。但是,有last
命令以纯文本显示/var/log/wtmp
的信息。
$ last --help
Usage:
last [options] [<username>...] [<tty>...]
我可以使用last -F / var / log / wtmp
登录到框中时读取文件
我对此表示怀疑。 -F
标志的作用:
-F, --fulltimes print full login and logout times and dates
因此,last -F /var/log/wtmp
会将/var/log/wtmp
解释为用户名,并且不会打印任何登录信息。
-f
标志的作用:
-f, --file <file> use a specific file instead of /var/log/wtmp