2017-02-14 13 views
0

ELKスタックをインストールするためのデジタル海洋ガイドに従っています。それは走っていましたが、今はlogstashに問題があります。Logstashがfilebeatで実行されていません

私はデバッグに実行すると、私はこれを取得::

tail -f /var/log/logstash/logstash.log 

{:timestamp=>"2017-02-10T10:38:05.169000-0500", :message=>"Error: Expected one of #, input, filter, output at line 1, column 1 (byte 1) after "} 
{:timestamp=>"2017-02-10T10:38:05.201000-0500", :message=>"You may be interested in the '--configtest' flag which you can\nuse to validate logstash's configuration before you choose\nto restart a running system."} 
{:timestamp=>"2017-02-14T10:51:46.921000-0500", :message=>"fetched an invalid config", :config=>"input {\n lumberjack {\n port => 5044\n type => syslog\n ssl_certificate => \"/etc/pki/tls/certs/logstash-forwarder.crt\"\n ssl_key => \"/etc/pki/tls/private/logstash-forwarder.key\"\n }\n}\n\ninput {\n beats {\n port => 5044\n ssl => true\n ssl_certificate => \"/etc/pki/tls/certs/logstash-forwarder.crt\"\n ssl_key => \"/etc/pki/tls/private/logstash-forwarder.key\"\n }\n}\n\nfilter {\n if [type] == \"syslog\" {\n grok {\n  match => { \"message\" => \"%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\\[%{POSINT:syslog_pid}\\])?: %{GREEDYDATA:syslog_message}\" }\n  add_field => [ \"received_at\", \"%{@timestamp}\" ]\n  add_field => [ \"received_from\", \"%{host}\" ]\n }\n syslog_pri { }\n date {\n  match => [ \"syslog_timestamp\", \"MMM d HH:mm:ss\", \"MMM dd HH:mm:ss\" ]\n }\n }\n}\n\ninput{\n beats {\n port => 5044\n }\n}\n\noutput {\n elasticsearch {\n hosts => \"10.84.234.224:9200\"\n manage_template => false\n index => \"%{[@metadata][beat]}-%{+YYYY.MM.dd}\"\n document_type => \"%{[metadata][type]}\"\n }\n}\n\noutput {\n elasticsearch {\n hosts => [\"localhost:9200\"]\n sniffing => true\n manage_template => false\n index => \"%{[@metadata][beat]}-%{+YYYY.MM.dd}\"\n document_type => \"%{[@metadata][type]}\"\n }\n\u007Fstdout { codec => rubydebug }\n}\n\noutput {\n elasticsearch { host => localhost }\n stdout { codec => rubydebug }\n}\n\ninput {\n tcp {\n port => 5400\n type => syslog\n }\n udp {\n port => 5400\n type => syslog\n }\n}\n\nfilter {\n if [type] == \"syslog\" {\n grok {\n  match => { \"message\" => \"%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\\[%{POSINT:syslog_pid}\\])?: %{GREEDYDATA:syslog_message}\" }\n  add_field => [ \"received_at\", \"%{@timestamp}\" ]\n  add_field => [ \"received_from\", \"%{host}\" ]\n }\n date {\n  match => [ \"syslog_timestamp\", \"MMM d HH:mm:ss\", \"MMM dd HH:mm:ss\" ]\n }\n }\n}\n\noutput {\n elasticsearch { hosts => [\"localhost:9200\"] }\n stdout { codec => rubydebug }\n}\n\n\n", :reason=>"Expected one of #, if, \", ', } at line 56, column 1 (byte 1278) after output {\n elasticsearch {\n hosts => [\"localhost:9200\"]\n sniffing => true\n manage_template => false\n index => \"%{[@metadata][beat]}-%{+YYYY.MM.dd}\"\n document_type => \"%{[@metadata][type]}\"\n }\n", :level=>:error} 

はしかし、私は私の木こりの会議通話数を削除しようとしたと私は私のconfigsのいずれかの問題を見つけることができません。 logstashを新しく再インストールする方法があるかどうかを知っていますか?

input { 
    beats { 
    port => 5044 
    ssl => true 
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" 
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" 
    } 
} 

filter { 
    if [type] == "syslog" { 
    grok { 
     match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } 
     add_field => [ "received_at", "%{@timestamp}" ] 
     add_field => [ "received_from", "%{host}" ] 
    } 
    syslog_pri { } 
    date { 
     match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] 
    } 
    } 
} 

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

UPDATE 私は設定試験を実行すると、私はこのエラーを取得:

私はあまりにも多くの会議通話数、logstash、logstash-フォワーダなど

confファイルで混乱しましたI考えますそれはパーソナルプラグインをリロードして修正しますという意味ではありませんが、一つだけを編集ので、もしサービスが、/etc/logstash/conf.dからすべてファイルを読んでいるようlogstash

sudo service logstash configtest 

/etc/init.d/logstash: 156: /etc/init.d/logstash: /opt/logstash/bin/logstash: not found 
+0

"無効な設定を取得しました"実際の設定ファイル –

+0

の出力を表示するには[編集]をクリックしてください。elasticsearchは 'ホスト'ではなく 'ホスト'でなければなりません。右のチュートリアルから設定をコピーしてもよろしいですか? –

+0

あなたのエラーには 'input {\ n lumberjack'と書かれているので、これはあなたが走っていると思うファイルではありません。 –

答えて

0

注意、 rファイル。

どのファイルを編集しているのかわかりませんが、logstashが一緒に追加しているファイルがたくさんあります。

は例えば、一つのファイルがあり、この

input { 
    tcp { 
    port => 5400 
    type => syslog 
    } 
    udp { 
    port => 5400 
    type => syslog 
    } 
} 

もう一つが持っているこの

input{ 
    beats { 
    port => 5044 
    } 
} 

のように...そう、エラーとして、個別logstash --configtestを使用してエラーの/etc/logstash/conf.d内のすべてのファイルをご確認ください言った。あなたは56 /行方不明、それが悪いと思っているライン上のクロージングoutput {}用ブラケット、または何かが欠けているよう


あなたはエラーメッセージの最後を見てみると...

:reason=>"Expected one of #, if, \", ', } at line 56, column 1 (byte 1278) after ...

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

が見えます。


私はconfigtestと間違っているかわからないんだけど、あなたはそのためのサービスを必要としません。コマンドlogstash --configtestは、ファイル自体をテストできます。

+0

私は閉じ括弧を持っています。最後に2つあり、私は何かが欠けている?また、私のconfファイルがすべて/etc/logstash/conf.dにあり、それを編集した場合、logstashに再ロードを指示するにはどうすればよいですか? – user6754289

+0

'sudo service logstash restart'はすべての設定を再度実行しようとします。表示されているファイルでは、そうです。 'input {\ n lumberjack'を含むエラーメッセージでは、あなたはしません。 –

+0

私はlogstashを再起動しましたが、stop:unknown instanceと表示されます。 – user6754289

関連する問題