2016-11-08 15 views
1

Logstash .. Filebeatを使用してログファイルを解析しようとしています。ディレクトリからサンプルログを読み込み、Logstashを通じてElasticSearchにインデックスを付けました。 (Filebeatを介してディレクトリから入力ファイルを読み込み、Filebeat.ymlの出力としてLogstashを読み込み、logstash設定ファイルでログファイルを解析し、結果をESのインデックスに入れます)logstashでインデックスを作成できない

Filebeat .yml

#=========================== Filebeat prospectors ============================= 

filebeat.prospectors: 

    #input_type: log 
    #input_type: log 
    document_type: my_log 
paths: 
    - C:\logsa\elast.log 

    #----------------------------- Logstash output -------------------------------- 
    output.logstash: 
     # The Logstash hosts 
     hosts: ["localhost:5044"] 



elast.log : (I am trying to parse this one line of log in the log file) 

    [2016-11-03 07:30:05,987] [INFO] [o.e.p.PluginsService  ] [hTYKFFt] initializing... 

Logstash設定ファイル:

input { 
beats { 
port => "5044" 
} 
} 
filter { 
if [type] == "my_log" { 
grok { 
match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{DATA:LOGLEVEL}\] \[%{DATA:MESSAGE}\] \[%{GREEDYDATA:message}\] %{GREEDYDATA:message1}"} 
} 
} 
} 
output { 
elasticsearch { 
hosts => ["localhost:9200"] 
} 
} 

私はfilebeat.exe、logstash confファイル、およびELASTを実行していますicsearch。

logstashコンフィギュレーションファイルを実行しているとき、私はlogstash confに実行しているときに...

コンソールをなど、すべてのエラーを取得していない午前:

C:\logstash-5.0.0\logstash-5.0.0\bin>logstash -f log-h.conf 
JAVA_OPTS was set to [ -Xmx1g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSP 
arallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:CMSIniti 
atingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutO 
fMemoryError -XX:HeapDumpPath="$LS_HOME/heapdump.hprof"]. Logstash will trust th 
ese options, and not set any defaults that it might usually set 
Sending Logstash logs to C:/logstash-5.0.0/logstash-5.0.0 
/logs which is now configured via log4j2.properties. 
[2016-11-08T17:38:02,452][INFO ][logstash.inputs.beats ] Beats inputs: Starti 
ng input listener {:address=>"0.0.0.0:5044"} 
[2016-11-08T17:38:02,728][INFO ][org.logstash.beats.Server] Starting server on p 
ort: 5044 
[2016-11-08T17:38:03,082][INFO ][logstash.outputs.elasticsearch] Elasticsearch p 
ool URLs updated {:changes=>{:removed=>[], :added=>["http://localhost:9200"]}} 
[2016-11-08T17:38:03,089][INFO ][logstash.outputs.elasticsearch] Using mapping t 
emplate from {:path=>nil} 
[2016-11-08T17:38:03,324][INFO ][logstash.outputs.elasticsearch] Attempting to i 
nstall template {:manage_template=>{"template"=>"logstash-*", "version"=>50001, 
"settings"=>{"index.refresh_interval"=>"5s"}, "mappings"=>{"_default_"=>{"_all"= 
>{"enabled"=>true, "norms"=>false}, "dynamic_templates"=>[{"message_field"=>{"pa 
th_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text" 
, "norms"=>false}}}, {"string_fields"=>{"match"=>"*", "match_mapping_type"=>"str 
ing", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"= 
>"keyword"}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date", "include_in_all" 
=>false}, "@version"=>{"type"=>"keyword", "include_in_all"=>false}, "geoip"=>{"d 
ynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_po 
int"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}} 
}}}}} 
[2016-11-08T17:38:03,359][INFO ][logstash.outputs.elasticsearch] New Elasticsear 
ch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["localhost:9200" 
]} 
[2016-11-08T17:38:03,596][INFO ][logstash.pipeline  ] Starting pipeline {" 
id"=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch. 
delay"=>5, "pipeline.max_inflight"=>500} 
[2016-11-08T17:38:03,612][INFO ][logstash.pipeline  ] Pipeline main starte 
d 
[2016-11-08T17:38:03,783][INFO ][logstash.agent   ] Successfully started 
Logstash API endpoint {:port=>9600} 

をそれはいずれかを取得していない、ESにインデックスを作成されていません上記のようなエラーもコンソールに表示されます。

誰でも助けてもらえますか?前もって感謝します。

答えて

0

Filebeatの設定にはインデントの問題があります。 Filebeat 5.xの場合は、このようになります。

filebeat.prospectors: 
- paths: 
    - C:/logsa/elast.log 
    document_type: my_log 

output.logstash: 
    hosts: ["localhost:5044"] 

Elasticsearch出力を設定する方法を示しビートのdocumenationで提供Logstash configuration exampleがあります。これにより、データはfilebeat-YYYY.MM.DDインデックスに書き込まれます。

input { 
    beats { 
    port => "5044" 
    } 
} 

filter { 
    if [type] == "my_log" { 
    grok { 
     match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{DATA:LOGLEVEL}\] \[%{DATA:MESSAGE}\] \[%{GREEDYDATA:message}\] %{GREEDYDATA:message1}"} 
    } 
    } 
} 

output { 
    elasticsearch { 
    hosts => "localhost:9200" 
    manage_template => false 
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" 
    document_type => "%{[@metadata][type]}" 
    } 
} 

あなたはElasticsearchにFilebeatインデックステンプレートも manually install必要Logstashを使用。 Windowsの場合

:Unixのために

PS C:\Program Files\Filebeat> Invoke-WebRequest -Method Put -InFile filebeat.template.json -Uri http://localhost:9200/_template/filebeat?pretty

curl -XPUT 'http://localhost:9200/_template/filebeat' [email protected]/etc/filebeat/filebeat.template.json

関連する問題