Table of Contents
- はじめに
- MetricFireとは
- メトリックをMetricFireに送信する方法
- Hosted Graphite Agentを使用してメトリックを送信する
- コードからのメトリクス
- エージェント + Hosted-Graphiteアドオン
- StatsDまたはcollectdを使用してメトリックを送信する
- MetricFireへのデータ送信の保護
- まとめ
はじめに
ITリソースの監視は、大中規模の企業の日常業務の一部ですが、中小企業も、監視システム、メモリ容量、可用性、およびパフォーマンスの利点から恩恵を受けています。このようなプロアクティブの目的は、スムーズなプロセスを確保することです。たとえば、IT管理者は、ディスク容量が少なくなりすぎていることを数日前に知っておく必要があります。そうすれば、IT管理者はそれに対して何かしらの対処を行うことができます。
何百もの監視ツールがありますが、Graphite、およびGrafanaが人気のあるオープンソースの監視ツールです。これらのツールをMetricFireなどの1つのソリューションに融合すると、素晴らしい監視プラットフォームが完成します。
従来の監視ツールは、メモリやCPUなどのインフラストラクチャリソースの使用に重点を置いていますが、それだけではもはや十分ではありません。メトリックとより広い可観測性に基づいて、アプリケーション、サーバー、およびプラットフォームのより広いビューを持つことです。
Grafana、およびGraphiteは、メトリックの収集と視覚化の目的に役立ついくつかの優れたオープンソースツールですが、自分でスタックを設定する必要がある場合は、徹底的な作業になります。ここでMetricFireが活躍します。基盤となるインフラストラクチャのコストとメンテナンスは言うまでもなく、素晴らしい機能を提供しております。
MetricFireとは
MetricFireは、上記2つのオープンソースツールをホストおよび保守しているため、見栄えのするGrafanaインターフェイスからメトリックを簡単に視覚化できます。さまざまな監視関連ツールを統合できる監視プラットフォームの必要性はかつてないほど高まっており、最近では、Docker、Kubernetesなどの新しい人気のあるインフラストラクチャテクノロジーがたくさんあります。これらはすべて拡張可能であり、公式ツールとサードパーティツールを統合しているため、機能の数と監視負荷の両方が増加していく傾向があります。 MetricFireは、システムから1つのパネルにメトリックを取り込むことができ、スケーラブルなソリューションです。
データ収集と視覚化の監視を簡素化するために、MetricFireなどの全会一致のプラットフォームの必要性が重要になります。それに加えて、MetricFireは、監視する基盤となるテクノロジーやプラットフォームに関しては不可知論者です。
アカウントをまだお持ちでない場合は、14日間無料で登録し、すべての機能のロックを解除できます。サインアップすると、MetricFireサポート担当者からすぐに電話がかかってきて、回避策を見つけることができます。
メトリックをMetricFireに送信する方法
このチュートリアルでは、メトリックをMetricFireに送信し監視を開始する方法を解説していきます。
MetricFireにデータを供給するには、以下の2つのアプローチがあります。
- Hosted Graphite agent
- CollectDとStatsD
チュートリアルの最後に、これらのメトリックをMetricFireに送信するプロセスを保護するための手法を説明していきます。
Hosted Graphite Agentを使用してメトリックを送信する
Hosted Graphiteを使用する場合、メトリックをMetricFireプラットフォームにフィードする方法は3つあります。
- MetricFireのエージェントを使用する
- コードの使用
- エージェント+Hosted Graphiteアドオン
MetricFireのエージェントを使用する
最初の方法では、ターミナルを使用します。 サーバーでcURLコマンドを実行し、必要なコンポーネントが自動的にセットアップされます。 このコマンドは、MetricFireインスタンスへのデータの送信も開始します。 このコマンドには、MetricFireアカウントごとに異なるAPIキーが含まれていることに注意してください。
ダッシュボードにログインし、[How to send metrics]ボタンをクリックすると、APIキーを取得できます。 インストールコマンドをコピーしてサーバー上で実行し、MetricFireダッシュボードに接続します。
これは、Debianベースのシステムを使用する場合の例です。
curl -s https://XXXXXXXXXXXXXXXX@www.hostedgraphite.com/agent/installer/deb/ | sudo sh
次のスクリーンショットで説明されているように、「エージェント」をクリックして新しいエージェントを追加することによっても、同じコマンドを取得できることに注意してください。
コードからのメトリクス
同様に、MetricFireダッシュボード内のコードのオプションをクリックすると、さまざまなプログラミング言語(Python、Java、Bashなど)ですぐに使用できるスニペットが表示されます。
ソースコードを利用できるようになったら、それをアプリケーションで簡単に利用して、MetricFireへのメトリックの送信を開始できます。
エージェント + Hosted-Graphiteアドオン
3番目のオプションは最も興味深く、おそらくすべての中で最も簡単です。 このオプションでは、Hosted Graphiteアドオンとエージェントを組み合わせて使用し、エージェントがデフォルトのGrafanaダッシュボードにデータを自動的に入力するようにします。
通常、アドオンを使用すると、ボタンをクリックするだけでサードパーティのサービスからデータを取得できます。 また、サンプルダッシュボードのセットを生成するものもあるため、詳細なダッシュボードで必要な情報を数分で確認できます。
アドオンは、Graphiteエージェントによってエクスポートされた基本システムメトリックのダッシュボードを提供します。 MetricFireダッシュボードで、[Add on]セクションに移動し、[Hosted Graphite Agent(Base)]オプションをクリックして、このアドオンを有効にします。 「Regenerate dashboard」ボタンをクリックして、このアドオンでGrafanaを構成します。 Grafanaダッシュボードを再生成しようとすると、次のメッセージが表示される場合があります。
This will create/overwrite a dashboard in Grafana called Hosted Graphite Agent (Base). Are you sure?
上記の方法ですべて準備ができました。 メトリックを送信するシステムにエージェントをインストールするコマンドが表示され、提供されたコマンドを実行すると、システムはMetricFireへのデータの送信を開始します。 システム/サーバーでどのように構成されているかを正確に確認したい場合は、次のサービスのステータスを確認してください。
sudo systemctl status hg-agent
hg-agentがサーバー上で実行されている限り、それはMetricFireダッシュボードにデータが供給され始めます。
それでは、メトリクスを送る違う方法をチェックしていきましょう。
StatsDまたはcollectdを使用してメトリックを送信する
CollectedとStatsDは、メトリックデータの送信に使用される2つのよく知られたツールです。それらは本質的に類似していますが、送信するデータのタイプによって異なります。 Collectdは、システム関連のメトリック(CPU、メモリ、ディスクなど)を収集および送信するために使用され、StatsDは、アプリケーション関連の統計を送信するために使用されます。
どちらもデーモンプロセスを使用して実行されます。それらはバックグラウンドで実行され続け、メトリックを収集してMetricFireダッシュボードに送信するジョブを処理します。 StatsDはNode.jsで記述され、collectdはC言語を使用して開発されていますが、MetricFireとの統合プロセスはほとんど同じです。
メトリックを外部システムに送信するには、特定の形式に従う必要があります。 StatsDは、多数のメトリックタイプを持つのに十分豊富です。 StatsDの最も一般的なメトリックタイプは、ゲージ、カウンター、タイマー、ヒストグラム、メーター、およびセットです。これは、MetricFireへの接続を設定した後に機能します。詳細については、こちらをご覧ください。
両方を統合するのは非常に簡単です。 MetricFireアカウントにログインし、アドオンセクションに移動すると、「Datasource add-on」セクションの下にStatsDとcollectdの両方で使用できるアドオンが表示されます。
アドオンを有効にすると、重要な使用上の注意が表示されます。 StatsDを使用するようにシステムを構成するときのために、この情報を保持してください。
例:アカウントでStatsDが有効になっている
- StatsD形式のデータをstatsd.hostedgraphite.com:8125に送信します
- Hosted Graphite APIキー(XXXXXXXXXXXXXXXXXX)でデータのプレフィックスを付けます。
- ほとんどのクライアントは、「プレフィックス」または「名前空間」オプションを受け入れて、APIキーを含めることができます。
StatsDを有効にすると、収集して送信するメトリックの計画を開始できます。 このチュートリアルに従うと、この情報を使用してGrafanaダッシュボードを設定できるようになります。
MetricFireへのデータ送信の保護
MetricFireへのデータ送信プロセスを保護する方法を見てみましょう。
Hosted Graphiteエージェント
メトリックを安全に送信する最も簡単な方法は、HostedGraphiteエージェントを使用することです。 インストールされると、HTTPS経由でHosted Graphiteに自動的に転送されます。
プレーンテキストTCPやUDPカーボンフォーマットインターフェイスなどの他の方法をすでに使用している場合は、TCP overTLSおよびHTTPSを介して同じフォーマットでメトリックデータを送信し続けることができます。 次の段落では、いくつかの例を見ていきます。
TTPSを使用してデータを安全に送信する
この目的のために、cURLコマンドを使用して、MetricFireHTTPSエンドポイントを提供しましょう。
curl https://<API_KEY>@www.hostedgraphite.com/api/v1/sink --data-binary "metrics.tar"
(をAPIキーに置き換える必要があります。)
お気づきかもしれませんが、このプロセスは、このチュートリアルの最初の部分で見たのと同じ単純なものです。 HTTPをHTTPSに置き換える必要があります。
HTTPSの代替:TCP over TLS
HTTPS通信にはオーバーヘッドが伴い、TCP overTLSは次のレベルのセキュリティです。 TCPを選択した場合は、次のコマンドを使用してホストシステムを構成できます。
echo "API-KEY.metrics.tar" | ncat --ssl carbon.hostedgraphite.com 20030
MetricFireはポート20030でTCPover TLSエンドポイントを構成しているため、上記のコマンドでこの特定のポートを指定しました。
検討できるその他のオプション(プロキシ、リレー、および非ブロッキングメトリック)
もう1つのオプションは、プログラムのコードを変更せずに既存のサーバーにTLS暗号化機能を追加するように設計されたプロキシであるStunnelなどのツールを使用することです。 これは、TLS接続を管理するようにアプリケーションを構成したくない場合に役立ちます。
大事なことを言い忘れましたが、既存のGraphiteインフラストラクチャ用のカーボンリレーデーモンをすでに実行している場合は、既存のカーボンリレーを介してトラフィックを安全に転送することができます。
また、多数のサーバーからMetricFireにデータを送信する場合、TCPがブロックして同期している可能性があることに注意してください。 この場合、UDPを使用できます。 言語ガイドは、さまざまなプログラミング言語用にHTTP(S)、TCP、およびUDPを設定するのに役立ちます。
まとめ
このチュートリアルでは、MetricFireサービスにデータを送信する方法について説明し、データ送信を保護する方法についても確認しました。 また、StatsD、collectdと構成の手順も確認しました。 MetricFireは、Grafana、Graphiteなどの高品質のオープンソーステクノロジーをバンドルしており、それらを使いやすく、保守しやすくしています。
メトリックの収集と視覚化の複雑なプロセスを簡単にして、コアビジネスに集中できるようにしました。
今すぐ無料トライアルを入手し、ここをクリックして開始してください。 また、デモを予約して、ビデオ通話でMetricFireチームに参加してください。 プラットフォームを最大限に活用できるよう、ユーザーをサポートできることを常に嬉しく思います。