我有几个在Windows上运行应用程序的ec2实例。已请求保留日志。为了进行记录和审计,选择了Loggly。
对于windows实例,我已经安装了nxlog并按照Loggly的建议进行了配置。我想将文本INSTANCEID
替换为网址http://169.254.169.254/latest/meta-data/instance-id
我还没有找到一个很好的例子,但文档说配置类似于PERL。
示例conf文件
define ROOT C:\Program Files (x86)\nxlog
define CERTDIR %ROOT%\cert
define CUSTOMER_TOKEN 12345678-abcd-abcd-abcd-123456789012
Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log
<Extension json>
Module xm_json
</Extension>
<Extension syslog>
Module xm_syslog
</Extension>
<Input internal>
Module im_internal
Exec $Message = to_json();
</Input>
# Watch any file you'd like
<Input file_watch>
Module im_file
File "C:\\Program Files (x86)\\nxlog\data\\nxlog.log"
SavePos TRUE
Exec $Message = $raw_event;
</Input>
<Input eventlog>
Module im_msvistalog
Exec $Message = to_json();
</Input>
<Output out>
Module om_tcp
Host logs-01.loggly.com
Port 514
Exec to_syslog_ietf();\
$raw_event = replace($raw_event, 'NXLOG@14506', '%CUSTOMER_TOKEN%@41058 tag="windows" tag="INSTANCEID"] [', 1);
</Output>
<Route 1>
Path internal, file_watch, eventlog => out
</Route>
答案 0 :(得分:0)
您应该在启动nxlog服务之前运行一个脚本,该服务将使用从url获取的值替换 nxlog.conf 中的 INSTANCEID 。 我想INSTANCEID是固定的,并且在实例启动时不会改变。