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

前書き

Topbeatは、さまざまな種類のサーバーデータをElasticsearchインスタンスに送信するのに役立つ「ビート」データシッパーの1つであり、サーバーのCPU、メモリ、およびプロセスアクティビティに関する情報を収集できます。 ELKスタック(Elasticsearch、Logstash、Kibana)で使用する場合、Topbeatはhttps://www.digitalocean.com/community/tutorials/how-to-use-などの他のシステムメトリック視覚化ツールの代替として使用できます。 prometheus-to-monitor-your-ubuntu-14-04-server [Prometheus]またはhttps://www.digitalocean.com/community/tutorials/how-to-configure-statsd-to-collect-arbitrary-stats-for -graphite-on-ubuntu-14-04 [Statsd]。

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

前提条件

このチュートリアルでは、https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntuで説明されているELK Stackのセットアップがあることを前提としています。 -14-04 [Elasticsearch、Logstash、KibanaをUbuntu 14.04にインストールする方法]。 ELKサーバーをまだお持ちでない場合は、続行する前にリンクされたチュートリアルを完了してください。

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

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

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

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

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

次のコマンドで `+ unzip +`パッケージをインストールします:

sudo apt-get -y install unzip

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

unzip beats-dashboards-*.zip

次のコマンドを使用して、サンプルダッシュボード、視覚化、およびBeatsインデックスパターンをElasticsearchにロードします。

cd beats-dashboards-*
./load.sh

これらは、先ほどロードしたインデックスパターンです。

  • [packetbeat-] YYYY.MM.DD

  • [topbeat-] 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にメトリックデータを送信するUbuntuまたはDebianサーバーごとにこれらの手順を実行します。 Red HatベースのLinuxディストリビューションにTopbeatをインストールする手順(例: RHEL、CentOSなど)、https://www.digitalocean.com/community/tutorials/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-centos-7 [CentOSこのチュートリアルのバリエーション]。

SSL証明書をコピー

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

scp /etc/pki/tls/certs/logstash-forwarder.crt @:/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パッケージをインストールする

*クライアントサーバー*で、Beatsソースリストが存在することを確認します。 編集のために `+ / etc / apt / sources.list.d / beats.list +`を開きます:

sudo vi /etc/apt/sources.list.d/beats.list

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

/etc/apt/sources.list.d/beats.list

deb https://packages.elastic.co/beats/apt stable main

保存して終了。

Topbeatは、ElasticsearchおよびFilebeatと同じGPGキーを使用します。これらは、次のコマンドでインストールできます。

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

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

sudo apt-get update
sudo apt-get install topbeat

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

Topbeatを構成する

次に、ELKサーバー上のLogstashに接続するようにTopbeatを構成します。 このセクションでは、Topbeatに付属するサンプル構成ファイルを変更する手順を説明します。 手順を完了すると、https://gist.github.com/thisismitch/0f2872d078a2c88cba4c [this]のようなファイルが作成されます。

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

sudo vi /etc/topbeat/topbeat.yml

ファイルの上部近くに、ELKサーバーに送信するメトリックスと統計を指定できる「+ input」セクションがあります。 デフォルトの入力設定を使用しますが、ニーズに合わせて自由に変更してください。

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

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

topbeat.yml-2の1

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

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

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

topbeat.yml-2の2

...

     # List of root certificates for HTTPS server verifications

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

保存して終了します。

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

sudo service topbeat restart
sudo update-rc.d topbeat defaults 95 10

繰り返しますが、Topbeatの構成が正しいかどうかわからない場合は、このhttps://gist.github.com/thisismitch/0f2872d078a2c88cba4c[Topbeatの構成例]と比較してください。

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

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サーバーの資格情報を入力すると、Kibana Discoverページが表示されます。

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

image:https://assets.digitalocean.com/articles/elk/topbeat-index-select.gif [Topbeat Indexパターンの選択]

ここで、さまざまなTopbeatエントリを検索およびドリルダウンできます。

次に、前にロードしたサンプルのTopbeatダッシュボードをチェックアウトします。 ダッシュボード(上部)をクリックしてから、保存済みダッシュボードの読み込み*アイコンをクリックします。 ダッシュボードの2番目のページに移動し、 Topbeat-Dashboard *をクリックします。

image:https://assets.digitalocean.com/articles/elk/topbeat-view-dashboard.gif [Topbeatダッシュボードの例を表示]

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

結論

システムメトリックがElasticsearchとLogstashによって一元化され、Kibanaでそれらを視覚化できるようになったので、サーバーの状態を一目で確認できるはずです。 がんばろう!

Related