我正在尝试在Windows 10计算机上运行ELK for NGINX Plus (JSON) example,并且我发现了一个等效于以下unix命令的Windows,用于将日志数据提取到Elasticsearch中:
cat nginxplus_json_logs | <path_to_logstash_root_dir>/bin/logstash -f nginxplus_json_logstash.conf
来自this question和this question我了解type
可以在unix中执行与cat
相同的操作。我尝试了使用cat
替换type
的完全相同的命令,这不足为奇。这是我的命令和回应:
type nginxplus_json_logs.txt | ../logstash-2.1.1/bin/logstash -f nginxplus_json_logstash.conf
'..' is not recognized as an internal or external command,
operable program or batch file.
是否可以使用type
命令复制该操作?如果是这样,我如何更改格式化命令的方式?
答案 0 :(得分:2)
在Windows上,您的命令应该使用反斜杠&#34; \&#34;而不是正斜杠&#34; /&#34;您需要调用logstash.bat
文件而不是logstash
。
所以你的命令必须是这样的(确保cd
首先进入正确的文件夹):
type nginxplus_json_logs.txt | ..\logstash-2.1.1\bin\logstash.bat -f nginxplus_json_logstash.conf
此外,您拥有的logstash配置文件适用于Logstash 1.5.4,因为您有2.1.1,您可以修改elasticsearch
输出,使其看起来像这样:
elasticsearch {
hosts => ["localhost:9200"]
index => "nginxplus_json_elk_example"
document_type => "logs"
template => "./nginxplus_json_template.json"
template_name => "nginxplus_json_elk_example"
template_overwrite => true
}