CentOS7でTopbeatとELKを使用してインフラストラクチャメトリックを収集する方法

提供:Dev Guides
移動先:案内検索

序章

Topbeatは、さまざまなタイプのサーバーデータをElasticsearchインスタンスに送信するのに役立つ、いくつかの「ビート」データシッパーの1つであり、サーバー上のCPU、メモリ、およびプロセスアクティビティに関する情報を収集できます。 ELKサーバー(Elasticsearch、Logstash、およびKibana)と組み合わせて、Topbeatが収集するデータを使用してメトリックを簡単に視覚化できるため、サーバーのステータスを一元的に確認できます。

このチュートリアルでは、CentOS7サーバーでTopbeat を使用して、ELKスタックを使用してインフラストラクチャメトリックを収集および視覚化する方法を示します。

前提条件

このチュートリアルは、このチュートリアルで説明されているELKスタックのセットアップがあることを前提としています: CentOS 7 にElasticsearch、Logstash、およびKibanaをインストールする方法。 ELKサーバーをまだお持ちでない場合は、続行する前にリンクされたチュートリアルを完了してください。

また、ELKサーバーに加えて、Topbeatを使用してシステムメトリックを収集するクライアントCentOS7サーバーが少なくとも1つあることを前提としています。

ELKサーバーにKibanaダッシュボードをロードする

注:この手順は前提条件のチュートリアルからのものですが、ELKスタックの設定中にスキップした場合に備えてここにも含まれています。 サンプルダッシュボードを複数回ロードしても安全です。


Elasticには、Kibanaの使用を開始するのに役立ついくつかのサンプルKibanaダッシュボードとBeatsインデックスパターンが用意されています。 このチュートリアルではダッシュボードを使用しませんが、ダッシュボードをロードして、含まれているFilebeatインデックスパターンを使用できるようにします。

まず、サンプルダッシュボードアーカイブをホームディレクトリにダウンロードします。

cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

次のコマンドを使用して、unzipパッケージをインストールします。

sudo yum -y install unzip

次に、アーカイブの内容を抽出します。

unzip beats-dashboards-*.zip

そして、次のコマンドを使用して、サンプルのダッシュボード、ビジュアライゼーション、BeatsインデックスパターンをElasticsearchにロードします。

cd beats-dashboards-*
./load.sh

ロードしたばかりのインデックスパターンは次のとおりです。

  • [packetbeat-] YYYY.MM.DD
  • [トップビート-]YYYY.MM.DD
  • [filebeat-] YYYY.MM.DD
  • [winlogbeat-] YYYY.MM.DD

ElasticsearchにTopbeatインデックステンプレートをロードする

Topbeatを使用してログをElasticsearchに送信することを計画しているため、Topbeatインデックステンプレートをロードする必要があります。 インデックステンプレートは、着信Topbeatフィールドをインテリジェントな方法で分析するようにElasticsearchを構成します。

まず、Topbeatインデックステンプレートをホームディレクトリにダウンロードします。

cd ~
curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json

次に、次のコマンドを使用してテンプレートをロードします。

curl -XPUT 'http://localhost:9200/_template/topbeat' [email protected]

これで、ELKサーバーはTopbeatからのデータを受け入れる準備ができました。 次に、クライアントサーバーでTopbeatを設定しましょう。

Topbeatのセットアップ(クライアントサーバーの追加)

ELKサーバー上のLogstashにメトリックデータを送信するCentOSまたはRedHatベースのサーバーごとにこれらの手順を実行します。 UbuntuまたはDebianLinuxディストリビューションにTopbeatをインストールする手順については、このチュートリアルのUbuntuバリエーションを参照してください。

SSL証明書をコピーする

注:この手順は前提条件のチュートリアルからのものですが、セットアップしているクライアントサーバーがELKスタックに接続されたことがない場合に備えてここにも含まれています。 クライアントサーバーがすでに適切な場所にELKサーバーのSSL証明書を持っている場合は、このセクションをスキップできます。


ELKサーバーで、前提条件のチュートリアルで作成したSSL証明書をクライアントサーバーにコピーします(クライアントサーバーのアドレスと独自のログインに置き換えます)。

scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp

ログインの資格情報を入力したら、証明書のコピーが成功したことを確認します。 クライアントサーバーとELKサーバー間の通信に必要です。

次に、クライアントサーバーで、ELKサーバーのSSL証明書を適切な場所(/ etc / pki / tls / certs)にコピーします。

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

次に、Topbeatパッケージをインストールします。

Topbeatパッケージをインストールする

クライアントサーバーで、次のコマンドを作成して実行し、Elasticsearchの公開GPGキーをrpmにインポートします。

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Filebeat用の新しいyumリポジトリファイルを作成および編集します。

sudo vi /etc/yum.repos.d/elastic-beats.repo

これらの行が存在することを確認します(まだ存在しない場合は貼り付けます)。

/etc/yum.repos.d/elastic-beats.repo

[beats]
name=Elastic Beats Repository
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

保存して終了。

次のコマンドでTopbeatをインストールします。

sudo yum -y install topbeat

これでTopbeatがインストールされましたが、まだ構成されていません。

Topbeatを構成する

次に、ELKサーバー上のLogstashに接続するようにTopbeatを構成します。 このセクションでは、Topbeatに付属しているサンプル構成ファイルを変更する手順を説明します。 手順を完了すると、thisのようなファイルが作成されます。

クライアントサーバーで、Topbeat構成ファイルを作成および編集します。

sudo vi /etc/topbeat/topbeat.yml

注: Topbeatの構成ファイルはYAML形式です。つまり、インデントが非常に重要です。 これらの説明に示されているのと同じ数のスペースを使用してください。


ファイルの上部近くに、inputセクションが表示されます。このセクションでは、ELKサーバーに送信するメトリックと統計を指定できます。 デフォルトの入力設定を使用しますが、必要に応じて自由に変更してください。

outputセクションで、elasticsearch:という行を見つけます。これは、Elasticsearchの出力セクション(使用しません)を示します。 Elasticsearchの出力セクション全体を削除またはコメントアウトします(#logstash:と表示されている行まで)。

#logstash:という行で示されている、コメント化されたLogstash出力セクションを見つけ、前の#を削除してコメントを解除します。 このセクションでは、hosts: ["localhost:5044"]行のコメントを解除します。 localhostをELKサーバーのプライベートIPアドレス(または、そのオプションを使用した場合はホスト名)に変更します。

topbeat.yml —1/2

  ### Logstash as output
  logstash:
    # The Logstash hosts
    hosts: ["ELK_server_private_IP:5044"]

これにより、ポート5044(前提条件のチュートリアルでLogstash入力を指定したポート)でELKサーバーのLogstashに接続するようにTopbeatが構成されます。

次に、tlsセクションを見つけて、コメントを外します。 次に、certificate_authoritiesを指定する行のコメントを解除し、その値を["/etc/pki/tls/certs/logstash-forwarder.crt"]に変更します。 次のようになります。

topbeat.yml — 2 of 2

...
    tls:
      # List of root certificates for HTTPS server verifications
      certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

これにより、前提条件のチュートリアルでELKサーバーで作成したSSL証明書を使用するようにTopbeatが構成されます。

保存して終了します。

次に、Topbeatを再起動して、変更を適用します。

sudo systemctl restart topbeat
sudo systemctl enable topbeat

繰り返しになりますが、Topbeat構成が正しいかどうかわからない場合は、このTopbeat構成の例と比較してください。

これで、Topbeatはクライアントサーバーのシステム、プロセス、およびファイルシステムのメトリックをELKサーバーに送信します。 トップビートメトリックを使用する他のすべてのサーバーについて、このセクションを繰り返します。

Topbeatのインストールをテストする

ELKスタックが適切に設定されている場合、Topbeat(クライアントサーバー上)はログをELKサーバー上のLogstashに送信する必要があります。 Logstashは、日付がスタンプされたインデックスtopbeat-YYYY.MM.DDでTopbeatデータをElasticsearchにロードする必要があります。

ELKサーバーで、次のコマンドを使用してTopbeatインデックスをクエリし、Elasticsearchが実際にデータを受信していることを確認します。

curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'

次のような出力が表示されるはずです。

Sample Output:{
      "_index" : "topbeat-2016.02.01",
      "_type" : "process",
      "_id" : "AVKeLSdP4HKUFv4CjZ7K",
      "_score" : 1.0,
      "_source":{"@timestamp":"2016-02-01T18:51:43.937Z","beat":{"hostname":"topbeat-01","name":"topbeat-01"},"count":1,"proc":{"cpu":{"user":0,"user_p":0,"system":50,"total":50,"start_time":"12:54"},"mem":{"size":0,"rss":0,"rss_p":0,"share":0},"name":"jbd2/vda1-8","pid":125,"ppid":2,"state":"sleeping"},"type":"process","@version":"1","host":"topbeat-01"}
}

出力に合計ヒット数が0と表示されている場合、Elasticsearchは検索したインデックスの下にTopbeatデータをロードしていないため、セットアップでエラーがないか確認する必要があります。 期待どおりの出力が得られたら、次の手順に進みます。

Kibanaに接続する

システム統計を収集するすべてのサーバーでTopbeatのセットアップが完了したら、Kibanaを見てみましょう。

Webブラウザーで、ELKサーバーのFQDNまたはパブリックIPアドレスに移動します。 ELKサーバーのクレデンシャルを入力すると、KibanaDiscoverページが表示されます。

先に進み、[インデックスパターン]メニュー(左側)から [topbeat] -YYY.MM.DD を選択して、DiscoverビューにTopbeatデータを表示します。

ここでは、さまざまなTopbeatエントリを検索してドリルダウンできます。

次に、前にロードしたサンプルのTopbeatダッシュボードを確認します。 ダッシュボード(上)をクリックし、保存済みダッシュボードの読み込みアイコンをクリックします。 ダッシュボードの2ページ目に移動し、Topbeat-Dashboardをクリックします。

ここでは、Topbeatをインストールしたクライアントサーバーから収集されたさまざまなメトリックが表示されます。

結論

システムメトリックがElasticsearchとLogstashを介して一元化され、Kibanaでそれらを視覚化できるようになったので、サーバーが何をしているのかが一目でわかります。 幸運を!