Kibana Logstashmonitoringが表示されない

Kibana Logstash monitoringの画面表示について
以下の設定を行いLogstashを起動しましたが
monitoriongのインデックス作成・画面表示が行われません。

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

①下記URLに則り、ymlとconfigを設定 →NG
https://www.elastic.co/guide/en/logstash/current/configuring-logstash.html

logstash.yml
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: <ユーザ名>
xpack.monitoring.elasticsearch.password: <パスワード>
xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"]

Logstashのconfig
output {
if "metric" in [tags] {
elasticsearch{
hosts => [ "localhost:9200" ]
user => "logstash.ymlのユーザ名"
password => "logstash.ymlのパスワード"
index => "インデックス名"
}
}
}

② ①がNGだったので、下記URLに則り、ymlとconfigを設定 →NG
https://www.elastic.co/guide/en/logstash/current/ls-security.html#ls-user-access

POST _xpack/security/role/logstash_writer
POST _xpack/security/user/logstash_internal

logstash.yml変更
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: <logstash_systemのパスワード>
xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"]

Logstashのconfig変更
output {
if "metric" in [tags] {
elasticsearch{
hosts => [ "localhost:9200" ]
user => logstash_internal
password => "logstash_internalのパスワード"
index => "インデックス名"
}
}
}

エラー表示
retrying failed action with response code: 403 ({"type"=>"security_exception", "reason"=>"action [indices:admin/create] is unauthorized for user [logstash_internal]"})
Retrying individual bulk actions that failed or were rejected by the previous bulk request. {:count=>1}

原因について、分かる方がいらっしゃいましたら教えてください。

こんにちわ

示されているエラーメッセージは、権限がないため作成できないということのようですね。
こちらでも同じ状況が確認できましたが、以下の2通りの方法でインデックスの作成・登録まで確認できましたので、ご確認いただけますか?

1. logstashのoutputでindex名を明示的に指定する

logstash_writerのロールを作成するときにindex名で以下のように指定されているかと思います。
これに明示的に合致させます。

"names": [ "logstash-*" ],

以下では、indexにlogstash-testと指定しています。

output {
    elasticsearch {
        hosts => ["localhost:9200"]
        user => "logstash_internal"
        password => "hogehoge"
        index => "logstash-test"
    }
}

2. logstash_writerのロール作成でindex名に1つ追加する

logstash_writerのロール作成時のnameにlogstashも足します。
上書きできるので、再度POSTしてみてください。

POST /_security/role/logstash_writer
{
  "cluster": ["manage_index_templates", "monitor", "manage_ilm"], 
  "indices": [
    {
      "names": [ "logstash", "logstash-*" ], 
      "privileges": ["write","delete","create_index","manage","manage_ilm"]  
    }
  ]
}

これで、logstashから送ってみてください。

output {
    elasticsearch {
        hosts => ["localhost:9200"]
        user => "logstash_internal"
        password => "hogehoge"
    }
}

以下は推測ですが、Index Lifecycle Managementができたことで、logstash-*のindexはlogstashというエイリアスも作成されます。
このエイリアスのlogsatshに対して権限がないため、エラーになっているような挙動に見えました。

ご参考になれば幸いです。

ご回答頂きありがとうございます。
上記内容で検証後、再度返信させて頂きます。

取り急ぎお礼まで。

返信が遅れ申し訳ありません。

解決しました。
回答を頂きありがとうございました。

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