Metricbeatを使用したElasticsearchの監視データの収集
6.5以降では、Metricbeatを使用してElasticsearchに関するデータを収集し、レガシー収集方法で説明されているようにエクスポーターを介してルーティングするのではなく、監視クラスターに送信できます。
Elastic Agentを使用したいですか? Elastic Agentを使用した監視データの収集を参照してください。
- 1. Metricbeatをインストール。理想的には、
scope: cluster
で構成された単一のMetricbeatインスタンスをインストールし、hosts
を設定して、クラスター内のマスター不適格ノードにリクエストを送信するエンドポイント(例:負荷分散プロキシ)を指すようにします。これが不可能な場合は、プロダクションクラスター内の各Elasticsearchノードに対して1つのMetricbeatインスタンスをインストールし、デフォルトのscope: node
を使用します。Metricbeatがscope: node
を使用してElasticsearchを監視している場合、各Elasticsearchノードに対してMetricbeatインスタンスをインストールする必要があります。そうしないと、一部のメトリックが収集されません。scope: node
を使用したMetricbeatは、クラスターの選出されたマスターからほとんどのメトリックを収集するため、この追加の負荷を考慮してすべてのマスター適格ノードをスケールアップする必要があり、専用のマスターノードがある場合はこのモードを使用しないでください。 - 2. 各ElasticsearchノードでMetricbeatのElasticsearchモジュールを有効にします。
たとえば、modules.d
ディレクトリ内のElastic Stack監視機能のデフォルト構成を有効にするには、次のコマンドを実行します:
詳細については、Elasticsearchモジュールを参照してください。metricbeat modules enable elasticsearch-xpack
- 3. 各ElasticsearchノードでMetricbeatのElasticsearchモジュールを構成します。
modules.d/elasticsearch-xpack.yml
ファイルには、次の設定が含まれています:
Yaml
- module: elasticsearch
xpack.enabled: true
period: 10s
hosts: ["http://localhost:9200"]
#scope: node
#username: "user"
#password: "secret"
#ssl.enabled: true
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
#ssl.certificate: "/etc/pki/client/cert.pem"
#ssl.key: "/etc/pki/client/cert.key"
#ssl.verification_mode: "full"
デフォルトでは、モジュールはElasticsearchの監視メトリックを収集します。http://localhost:9200 。そのホストとポート番号が正しくない場合は、hosts 設定を更新する必要があります。Elasticsearchを暗号化された通信を使用するように構成した場合は、HTTPS経由でアクセスする必要があります。たとえば、hosts 設定を使用します。https://localhost:9200 のように。 |
|
デフォルトでは、scope はnode に設定されており、hosts リストの各エントリはElasticsearchクラスター内の異なるノードを示します。 scope をcluster に設定した場合、hosts リストの各エントリは、異なるElasticsearchクラスターの単一のエンドポイントを示します(たとえば、クラスターの前面にある負荷分散プロキシ)。クラスターに専用のマスターノードがある場合は、 scope: cluster を使用し、hosts リスト内のエンドポイントを構成して、専用のマスターノードにリクエストを送信しないようにする必要があります。 |
Elasticセキュリティ機能が有効になっている場合、Metricbeatがメトリックを正常に収集できるように、ユーザーIDとパスワードを提供する必要があります:
- 3.1. プロダクションクラスターに、
remote_monitoring_collector
組み込みロールを持つユーザーを作成します。あるいは、remote_monitoring_user
組み込みユーザーを使用します。 - 3.2. Elasticsearchモジュールの構成ファイルに
username
およびpassword
設定を追加します。 - 3.3. ElasticsearchクラスターのHTTP層でTLSが有効になっている場合、
hosts
設定でURLスキームとしてhttpsを使用するか、ssl.enabled: true
設定を追加する必要があります。ElasticsearchクラスターのTLS構成に応じて、追加のssl.*設定を指定する必要がある場合もあります。- 4. オプション:Metricbeatでシステムモジュールを無効にします。
デフォルトでは、システムモジュールが有効になっています。ただし、収集される情報はKibanaの監視ページに表示されません。その情報を他の目的で使用しない限り、次のコマンドを実行します:metricbeat modules disable system
- 5. 監視データを送信する場所を特定します。
プロダクション環境では、データを保存するために別のクラスター(監視クラスターと呼ばれる)を使用することを強くお勧めします。別の監視クラスターを使用することで、プロダクションクラスターの停止が監視データへのアクセスに影響を与えるのを防ぎます。また、監視活動がプロダクションクラスターのパフォーマンスに影響を与えるのを防ぎます。
たとえば、Metricbeat構成ファイル(metricbeat.yml
)にElasticsearch出力情報を指定します:
- 4. オプション:Metricbeatでシステムモジュールを無効にします。
Yaml
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["http://es-mon-1:9200", "http://es-mon-2:9200"]
# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"
この例では、データはノードがある監視クラスターに保存されます。es-mon-1 およびes-mon-2 。 |
監視クラスターを暗号化された通信を使用するように構成した場合は、HTTPS経由でアクセスする必要があります。たとえば、hosts
設定を使用します。https://es-mon-1:9200
のように。
Elasticsearchの監視機能はインジェストパイプラインを使用するため、監視データを保存するクラスターには少なくとも1つのインジェストノードが必要です。
監視クラスターでElasticsearchのセキュリティ機能が有効になっている場合、Metricbeatがメトリックを正常に送信できるように、有効なユーザーIDとパスワードを提供する必要があります:
- 5.1. 監視クラスターに、
remote_monitoring_agent
組み込みロールを持つユーザーを作成します。あるいは、remote_monitoring_user
組み込みユーザーを使用します。 - 5.2. Metricbeat構成ファイルのElasticsearch出力情報に
username
およびpassword
設定を追加します。
これらの構成オプションに関する詳細は、Elasticsearch出力の構成を参照してください。- 6. Metricbeatを開始します。
- 7. Kibanaで監視データを表示。