Monitoring画面でのLogStashの表示

KibanaのMonitoring画面にて、Logstashを監視する設定の方法をご教示ください。

Kibanaバージョン:7.1
Logstashバージョン:7.1

■マニュアル参照箇所
https://www.elastic.co/guide/en/logstash/current/configuring-logstash.html

■logstash.yml追加設定内容
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: [パスワード]
xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"]

■パイプラインファイル設定内容
(~省略~)
output{
elasticsearch{
hosts => [ "localhost:9200" ]
user => "elastic"
password => "「パスワード]"
index => "logstash-test-monitor"
}
}

上記を設定後、LogStashを再起動したところ、index(logstash-test-monitor)は作成されたのですが、KibanaのMonitoring画面にLogStashの情報が表示されません。(ElasticSerachとKibanaの情報は表示されています)
想定では、KibanaのMonitoring画面にてLogStashの情報が参照できることを期待しておりました。

表示されない原因について、ご教示頂けないでしょうか。

もし、モニタリングの設定が有効であって、正常に動作しているなら、以下のようなindexが作成されているかと思います。

.monitoring-logstash-7-2019.08.19 

Kibanaのdev toolsなどで上記のIndexが作成されているか、まず確認してみてはどうでしょうか。

.monitoring-logstashで始まるIndexが作成されていないときは、何らかの原因でモニタリング用のIndexが作成できていないと考えられます。
設定誤りなどを探るために、Logstash側のログを確認してみると良いと思います。

手元の7.1.1のLogstash環境でMonitoringに表示されたときのログです。

もし、モニタリング用のusernameやpasswordの組み合わせに間違いがあるときは、HTTP STATUSで401のエラーが記録されているはずです。

Logstash側のログを確認いただければと思います。

ご回答ありがとうございました。.monitoring-logstash~のindexは作成されておりませんでした。
以下、その際のLogstashのログなのですが、特にヒントとなりそうな箇所は見受けられませんでした。


[2019-08-19T15:26:42,178][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2019-08-19T15:26:42,200][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.1.1"}
[2019-08-19T15:26:50,989][INFO ][logstash.outputs.elasticsearch] Elasticsearch pool URLs updated {:changes=>{:removed=>, :added=>[http://elastic:xxxxxx@localhost:9200/]}}
[2019-08-19T15:26:51,411][WARN ][logstash.outputs.elasticsearch] Restored connection to ES instance {:url=>"http://elastic:xxxxxx@localhost:9200/"}
[2019-08-19T15:26:51,488][INFO ][logstash.outputs.elasticsearch] ES Output version determined {:es_version=>7}
[2019-08-19T15:26:51,493][WARN ][logstash.outputs.elasticsearch] Detected a 6.x and above cluster: the type event field won't be used to determine the document _type {:es_version=>7}
[2019-08-19T15:26:51,540][INFO ][logstash.outputs.elasticsearch] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["//localhost:9200"]}
[2019-08-19T15:26:51,550][INFO ][logstash.outputs.elasticsearch] Using default mapping template
[2019-08-19T15:26:51,790][INFO ][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"index_patterns"=>"logstash-", "version"=>60001, "settings"=>{"index.refresh_interval"=>"5s", "number_of_shards"=>1}, "mappings"=>{"dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword", "ignore_above"=>256}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date"}, "@version"=>{"type"=>"keyword"}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}
[2019-08-19T15:26:52,031][INFO ][logstash.javapipeline ] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>500, :thread=>"#<Thread:0x1bcc32ae run>"}
[2019-08-19T15:26:57,541][INFO ][logstash.inputs.file ] No sincedb_path set, generating one based on the "path" setting {:sincedb_path=>"/elastic/app/logstash-7.1.1/data/plugins/inputs/file/.sincedb_2fb5a207b5db6912f18599fb12084f08", :path=>["/elastic/data/syslog-err-mail-monitor.log"]}
[2019-08-19T15:26:57,580][INFO ][logstash.javapipeline ] Pipeline started {"pipeline.id"=>"main"}
[2019-08-19T15:26:57,680][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>}
[2019-08-19T15:26:57,738][INFO ][filewatch.observingtail ] START, creating Discoverer, Watch with file and sincedb collections
[2019-08-19T15:26:58,206][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}

一点気になっているのが、対象のlogstash.ymlの他の箇所(loglevel等)を変更しても、設定が効いているように見えず、モニタリング用のusernameを存在しないものに変更し、意図的にエラーを発生させようとしてもLogstashが正常に起動できます。また、試しにlogstash.ymlを削除した状態でもLogstashが起動できることから、そもそも起動時に対象のlogstash.ymlを参照していないのでは無いかとも推測しています。
Logstashを起動する際は、必ずlogstash.ymlを参照する認識なのですが、間違っておりますでしょうか。

もし、elasticsearch.usernameとpasswordの組み合わせが違うとき、こちらの7.1.1の環境では、このようなエラーが出ています。
エラーは出ますが、Logstash自体は異常終了しなかったです。

2019-08-19T17:09:07,221][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.1.1"}
[2019-08-19T17:09:09,956][ERROR][logstash.licensechecker.licensereader] Unable to retrieve license information from license server {:message=>"Got response code '401' contacting Elasticsearch at URL 'http://localhost:9200/_xpack'"}
[2019-08-19T17:09:10,015][ERROR][logstash.monitoring.internalpipelinesource] Failed to fetch X-Pack information from Elasticsearch. This is likely due to failure to reach a live Elasticsearch cluster.

logstash.ymlがない場合は、デフォルトの設定値で動作するように見えます。
ユーザ名、パスワードを違うものとしてもエラーが出ないところが気になりますね。

解決しました。
ymlの設定値を記載するときに先頭に空白を入れなくてはならなかったようです。

monitorでLogstashの表示ができることも確認できました。

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.