運用環境での監視
運用環境では、監視しているノードが利用できない場合でも、履歴データが利用できるように、監視データを別の 監視クラスター に送信する必要があります。
Elastic Agent と Metricbeat は、監視データを監視クラスターに収集して送信するための推奨方法です。
以前にレガシー収集方法を設定している場合は、Elastic Agent または Metricbeat 収集に移行する必要があります。レガシー収集を他の収集方法と併用しないでください。
Gold サブスクリプション以上をお持ちの場合、専用の監視クラスターを使用することで、中央の場所から複数のクラスターを監視することも可能です。
監視データを別のクラスターに保存するには:
- 1. 使用する監視クラスターとして設定する Elasticsearch クラスターをセットアップします。たとえば、ノード
es-mon-1
とes-mon-2
を持つ 2 ホストのクラスターを設定することができます。- 理想的には、監視クラスターと運用クラスターは同じ Elastic Stack バージョンで実行されます。ただし、最新の 8.x リリースの監視クラスターは、同じメジャーバージョンを使用する運用クラスターとも動作します。8.x を使用する監視クラスターは、最新の 7.x リリースを使用する運用クラスターとも動作します。
- 監視クラスターには少なくとも 1 つの ingest node が必要です。専用の ingest node である必要はありません。
- 1.1. (オプション) 監視クラスターでの監視データの収集が無効になっていることを確認します。デフォルトでは、
xpack.monitoring.collection.enabled
設定はfalse
です。
たとえば、次の API を使用してこの設定を確認および変更できます:
Python
resp = client.cluster.get_settings()
print(resp)
resp1 = client.cluster.put_settings(
persistent={
"xpack.monitoring.collection.enabled": False
},
)
print(resp1)
Ruby
response = client.cluster.get_settings
puts response
response = client.cluster.put_settings(
body: {
persistent: {
'xpack.monitoring.collection.enabled' => false
}
}
)
puts response
Js
const response = await client.cluster.getSettings();
console.log(response);
const response1 = await client.cluster.putSettings({
persistent: {
"xpack.monitoring.collection.enabled": false,
},
});
console.log(response1);
コンソール
GET _cluster/settings
PUT _cluster/settings
{
"persistent": {
"xpack.monitoring.collection.enabled": false
}
}
- 1.2. Elasticsearch のセキュリティ機能が監視クラスターで有効になっている場合、監視データを送信および取得できるユーザーを作成します:
Kibana を使用して監視データを表示する予定がある場合、ユーザー名とパスワードの資格情報は、Kibana サーバーと監視クラスターの両方で有効である必要があります。- Elastic Agent を使用する予定がある場合は、
remote_monitoring_collector
組み込みロール を持つユーザーを作成し、監視関連の 統合資産がリモート監視クラスターにインストールされていることを確認します。 - Metricbeat を使用する予定がある場合は、
remote_monitoring_collector
組み込みロールを持つユーザーと、remote_monitoring_agent
組み込みロール を持つユーザーを作成します。あるいは、remote_monitoring_user
組み込みユーザー を使用します。 - HTTP エクスポーターを使用してデータを運用クラスター経由でルーティングする予定がある場合は、
remote_monitoring_agent
組み込みロール を持つユーザーを作成します。
たとえば、次のリクエストは、remote_monitor
ユーザーを作成し、remote_monitoring_agent
ロールを持たせます:
- Elastic Agent を使用する予定がある場合は、
Python
resp = client.security.put_user(
username="remote_monitor",
password="changeme",
roles=[
"remote_monitoring_agent"
],
full_name="Internal Agent For Remote Monitoring",
)
print(resp)
Js
const response = await client.security.putUser({
username: "remote_monitor",
password: "changeme",
roles: ["remote_monitoring_agent"],
full_name: "Internal Agent For Remote Monitoring",
});
console.log(response);
コンソール
POST /_security/user/remote_monitor
{
"password" : "changeme",
"roles" : [ "remote_monitoring_agent"],
"full_name" : "Internal Agent For Remote Monitoring"
}
あるいは、remote_monitoring_user
組み込みユーザー を使用します。
- 2. 運用クラスターを設定してデータを収集し、監視クラスターに送信します:
- 3. (オプション) Logstash を設定してデータを収集し、監視クラスターに送信します。
- 4. (オプション) Enterprise Search 監視を設定します。
- 5. (オプション) Beats を設定してデータを収集し、監視クラスターに送信します。Elastic Agent によって管理されている Beats については、このステップをスキップします。
- 6. (オプション) APM サーバー監視を設定します
- 7. (オプション) Kibana を設定してデータを収集し、監視クラスターに送信します:
- 8. (オプション) 運用クラスターと監視クラスターの両方にアクセスするために単一の Kibana インスタンスを使用するのではなく、監視用の専用 Kibana インスタンスを作成します。
SAML、Kerberos、PKI、OpenID Connect、またはトークン認証プロバイダーを使用して Kibana にログインする場合、専用の Kibana インスタンスが 必要 です。これらのコンテキストで使用されるセキュリティトークンはクラスター固有であるため、単一の Kibana インスタンスを使用して運用クラスターと監視クラスターの両方に接続することはできません。- 8.1. (オプション) この Kibana インスタンスでの監視データの収集を無効にします。
xpack.monitoring.kibana.collection.enabled
設定をfalse
に設定しますkibana.yml
ファイル内で。この設定の詳細については、Kibana の監視設定 を参照してください。
- 8.1. (オプション) この Kibana インスタンスでの監視データの収集を無効にします。
- 9. Kibana を設定して監視データを取得し表示します。