我正在尝试使用 nxlog 将 vCenter 消息转发到 Logstash,并使用im_file
输入模块和模式来指定要监视的确切文件。通常很简单的事情现在变得毫无必要地复杂,因为 vCenter 的日志轮换会压缩日志,然后在创建下一个日志文件时增加文件名。例如:
vpxd-1.log->vpxd-1.log.gz->vpxd-2.log
我想要转发来自 vCenter vpxd.log 日志的消息:
*vpxa(\.log|\.\d+(\.gz)?|-\d+\.log(\.gz)?)
答案1
由于 vCenter 日志的格式与 ESXi 日志不同,我决定使用 Logstash 而不是 nxlog。我将在转发器中设置本地过滤器,以将 vCenter 消息转换为与 ESXi 消息类似的格式。
有关将 Logstash 作为 Windows 服务运行的更多信息,请参阅本指南。
服务配置:
C:
cd \logstash
set HOME=c:/logstash/sincedb
"C:\Program Files\Java\jdk1.7.0_45\bin\java.exe" -jar logstash-1.2.2.jar agent --config logstash.conf --log logstash.log
Logstash 配置:
input {
file {
path => [ "C:/vmware_logs/vpxd-[0-5][0-9].log", "C:/vmware_logs/vpxd-alert-[0-5][0-9].log" ]
type => "syslog"
exclude => "*.gz"
}
}
output {
udp {
host => "<address>"
port => "514"
}
stdout {
debug => true
}
}