Ubuntu14.04でTopbeatとELKを使用してインフラストラクチャメトリックを収集する方法
ステータス:非推奨
この記事では、Elasticsearchのバージョン5.0でが置き換えられたデータシッパーについて説明します。 このガイドは参照として役立つ場合がありますが、 ElasticStackの最新の要素では機能しません。
理由:バージョン5.0で、ElasticStackでTopbeatが置き換えられました。 このため、このガイドは維持されなくなります。
代わりに参照してください:現在Topbeatを使用している場合は、次のチュートリアルを使用してMetricbeatに置き換えることを強くお勧めします。
序章
Topbeatは、さまざまなタイプのサーバーデータをElasticsearchインスタンスに送信するのに役立つ、いくつかの「ビート」データシッパーの1つであり、サーバー上のCPU、メモリ、およびプロセスアクティビティに関する情報を収集できます。 ELKスタック(Elasticsearch、Logstash、Kibana)で使用する場合、Topbeatは、PrometheusやStatsdなどの他のシステムメトリック視覚化ツールの代わりに使用できます。
このチュートリアルでは、Ubuntu14.04サーバーでTopbeat を使用して、ELKスタックを使用してインフラストラクチャメトリックを収集および視覚化する方法を示します。
前提条件
このチュートリアルは、このチュートリアルで説明されているELKスタックのセットアップがあることを前提としています: Ubuntu 14.04にElasticsearch、Logstash、およびKibanaをインストールする方法。 ELKサーバーをまだお持ちでない場合は、続行する前にリンクされたチュートリアルを完了してください。
また、ELKサーバーに加えて、Topbeatを使用してシステムメトリックを収集するクライアントUbuntu14.04サーバーが少なくとも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 apt-get -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にメトリックデータを送信するUbuntuまたはDebianサーバーごとにこれらの手順を実行します。 Red HatベースのLinuxディストリビューションにTopbeatをインストールする手順については(例: RHEL、CentOSなど)、このチュートリアルのCentOSバリエーションを参照してください。
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パッケージをインストールする
クライアントサーバーで、Beatsソースリストが存在することを確認します。 開ける /etc/apt/sources.list.d/beats.list
編集用:
- sudo vi /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に付属しているサンプル構成ファイルを変更する手順を説明します。 手順を完了すると、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アドレス(または、そのオプションを使用した場合はホスト名)へ:
### Logstash as output
logstash:
# The Logstash hosts
hosts: ["ELK_server_private_IP:5044"]
これにより、ポートでELKサーバーのLogstashに接続するようにTopbeatが構成されます。 5044
(前提条件のチュートリアルでLogstash入力を指定したポート)。
次に、 tls
セクションを作成し、コメントを外します。 次に、指定する行のコメントを解除します certificate_authorities
、およびその値をに変更します ["/etc/pki/tls/certs/logstash-forwarder.crt"]
. 次のようになります。
...
tls:
# List of root certificates for HTTPS server verifications
certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
これにより、前提条件のチュートリアルでELKサーバーで作成したSSL証明書を使用するようにTopbeatが構成されます。
保存して終了します。
次に、Topbeatを再起動して、変更を適用します。
- sudo service topbeat restart
- sudo update-rc.d topbeat defaults 95 10
繰り返しになりますが、Topbeat構成が正しいかどうかわからない場合は、このTopbeat構成の例と比較してください。
これで、Topbeatはクライアントサーバーのシステム、プロセス、およびファイルシステムのメトリックをELKサーバーに送信します。 トップビートメトリックを使用する他のすべてのサーバーについて、このセクションを繰り返します。
Topbeatのインストールをテストする
ELKスタックが適切に設定されている場合、Topbeat(クライアントサーバー上)はログをELKサーバー上のLogstashに送信する必要があります。 Logstashは、Topbeatデータを日付スタンプ付きのインデックスでElasticsearchにロードする必要があります。 topbeat-YYYY.MM.DD
.
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でそれらを視覚化できるようになったので、サーバーが何をしているのかが一目でわかります。 幸運を!