Elasticsearchへのアクセス確認について


(yoshiro) #1

動作検証をする上で、Elasticsearch(各ノード)へのアクセスをログから確認したいと思っております。

ログの出力先ディレトリに、"クラスタ名_access.log"というファイルがありますので、出力自体は可能だと考えておりますが、コンフィグでどのパラメータを設定すれば出力されるでしょうか?

また、パフォーマンステスト時に各ノード毎のアクセス数も確認したいのですが、こちらはKibanaで確認可能でしょうか?


(Jun Ohtani) #2

X-Packをインストールしていませんか?
https://www.elastic.co/guide/en/x-pack/current/auditing.html

こちらの機能になります。Elasticsearch本体の機能ではありません。
インデックスもできるのでやろうと思えばKibanaで確認可能ですが、そもそもの用途とは別物ですね。

また、Elasticsearchは複数マシンでクラスタを組んでいる場合には分散で検索します。
仕組みなどはこちらになります。
https://www.elastic.co/guide/en/elasticsearch/guide/current/distributed-search.html
インデックスの構成などによってどのように分散検索が実行されるかもあるので、負荷の状況とかは変わってくるんじゃないかと思いますが。


(yoshiro) #3

ご確認ありがとうございます。

下記の設定をして、アクセスログに出力できることを確認できました。


xpack.security.audit.enabled: true
xpack.security.audit.outputs: [ index, logfile ]

監査用だからだと思いますが、けっこうな量が出力されますが、"クライアントからのアクセス(検索や登録などの処理)のみ"に絞ることは可能でしょうか?

ご提示頂いたリンクから公式ドキュメントを確認していますが、教えて頂けますと幸いです。

当方で確認したいアクセスログとしましては、”クライアントからの検索1件につき、1件のアクセスログ”というように考えておりますが、実際に1件の検索でアクセスしましたところ、下記のように複数件のログが出力されます。

[2017-04-18T10:57:35,249] [transport] [access_granted] origin_type=[transport], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search], indices=[index_name], request=[SearchRequest]
[2017-04-18T10:57:35,253] [transport] [access_granted] origin_type=[transport], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search], indices=[index_name], request=[SearchRequest]
[2017-04-18T10:57:35,254] [transport] [access_granted] origin_type=[local_node], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search[phase/query]], indices=[index_name], request=[ShardSearchTransportRequest]
[2017-04-18T10:57:35,255] [transport] [access_granted] origin_type=[local_node], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search[phase/query]], indices=[index_name], request=[ShardSearchTransportRequest]
[2017-04-18T10:57:35,257] [transport] [access_granted] origin_type=[local_node], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search[phase/query]], indices=[index_name], request=[ShardSearchTransportRequest]
[2017-04-18T10:57:35,258] [transport] [access_granted] origin_type=[local_node], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search[phase/query]], indices=[index_name], request=[ShardSearchTransportRequest]
[2017-04-18T10:57:35,263] [transport] [access_granted] origin_type=[local_node], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search[phase/query]], indices=[index_name], request=[ShardSearchTransportRequest]
[2017-04-18T10:57:35,306] [transport] [access_granted] origin_type=[local_node], origin_address=[xxx.xxx.xxx.xxx], principal=[xxxxx], action=[indices:data/read/search[phase/fetch/id]], indices=[index_name], request=[ShardFetchSearchRequest]

また、他にも下記のようにヘルスチェックのログも出力されており、こちらも出力しないようにしたいと考えています。

[2017-04-18T11:03:27,050] [transport] [access_granted] origin_type=[rest], origin_address=[127.0.0.1], principal=[kibana], action=[cluster:monitor/nodes/info], request=[NodesInfoRequest]
[2017-04-18T11:03:27,050] [transport] [access_granted] origin_type=[rest], origin_address=[127.0.0.1], principal=[kibana], action=[cluster:monitor/nodes/info[n]], request=[NodeInfoRequest]
[2017-04-18T11:03:27,052] [transport] [access_granted] origin_type=[rest], origin_address=[127.0.0.1], principal=[kibana], action=[cluster:monitor/health], indices=[.kibana], request=[ClusterHealthRequest]


(Shota Ito) #4

監査用だからだと思いますが、けっこうな量が出力されますが、"クライアントからのアクセス(検索や登録などの処理)のみ"に絞ることは可能でしょうか?

@johtaniさんが記載されているリンク先のAudit Event TypesやAudit Event Attributesでは実現しようとしていることが難しいということでしょうか。
恐らくxpack.security.audit.logfile.events.includeやxpack.security.audit.logfile.events.excludeで解決できるかと思うので、
まずは色々試してログ出力内容を実際に確認してみるのが良いかと思います。
英語表記はGoogle Chromeの翻訳機能を使うと理解しやすいかなと。


(yoshiro) #5

ありがとうございます。

試してみます。


(system) #6

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