collectd を使用してカスタムメトリクスを取得する - Amazon CloudWatch

collectd を使用してカスタムメトリクスを取得する

CloudWatch エージェントで collectd プロトコルを使用することで、アプリケーションやサービスから追加のメトリクスを取得できます。collectd プロトコルは Linux サーバーでのみサポートされています。collectd は、さまざまなアプリケーションのシステム統計を収集できるプラグインを備えた、一般的なオープンソースソリューションです。CloudWatch エージェントが既に収集できるシステムメトリクスと collectd からの追加のメトリクスを組み合わせることで、システムやアプリケーションのモニターリング、分析、トラブルシューティングを強化できます。collectd の詳細については、「collectd - The system statistics collection daemon」を参照してください。

collectd ソフトウェアを使用して CloudWatch エージェントにメトリクスを送信します。collectd メトリクスでは、CloudWatch エージェントはサーバーとして機能するのに対し、collectd プラグインはクライアントとして機能します。

collectd ソフトウェアは、すべてのサーバーに自動的にインストールされるわけではありません。Amazon Linux 2 を実行するサーバーで、次の手順に従って collectd をインストールします。

sudo amazon-linux-extras install collectd

他のシステムに collectd をインストールする方法については、collectd の ダウンロードページを参照してください。

これらのカスタムメトリクスを収集するには、["collectd": {}] 行をエージェント設定ファイルの [metrics_collected] セクションに追加します。この行を手動で追加することができます。設定ファイルの作成にウィザードを使用する場合は、自動的に設定されます。詳細については、「CloudWatch エージェント設定ファイルを作成する」を参照してください。

オプションパラメータも使用可能です。collectd を使用していて [collectd_auth_file] として /etc/collectd/auth_file を使用しない場合は、これらのオプションのいくつかを設定する必要があります。

  • service_address: CloudWatch エージェントが聞く必要のあるサービスアドレス。形式は "udp://ip:port です。デフォルト: udp://127.0.0.1:25826

  • name_prefix: 各 collectd メトリクスの名前の先頭にアタッチするプレフィックスです。デフォルト: collectd_。最大長は 255 文字です。

  • collectd_security_level: ネットワーク通信のセキュリティレベルを設定します。デフォルトは [encrypt] です。

    [encrypt] は、暗号化されたデータのみが受け入れられることを指定します。[sign] は、署名され暗号化されたデータのみが受け入れられることを指定します。[none] は、すべてのデータが受け入れられることを指定します。[collectd_auth_file] の値を指定すると、暗号化されたデータは可能であれば復号されます。

    詳細については、collectd Wiki の「クライアント設定」および「可能なインタラクション」を参照してください。

  • collectd_auth_file: ユーザー名がパスワードにマッピングされるファイルを設定します。これらのパスワードは、署名の検証と暗号化されたネットワークパケットの復号に使用されます。指定された場合、署名されたデータが検証され、暗号化されたパケットが復号されます。それ以外の場合は、署名されたデータは署名をチェックすることなく受け入れられ、暗号化されたデータを復号することはできません。

    デフォルト: /etc/collectd/auth_file

    [collectd_security_level] が [none] に設定されている場合、これはオプションです。[collectd_security_level] を encrypt または [sign] に設定した場合は、[collectd_auth_file] を指定する必要があります。

    auth ファイルの形式は、各行はユーザー名とそれに続くコロン、さらに任意の数のスペースとそれに続くパスワードの構成です。次に例を示します。

    user1: user1_password

    user2: user2_password

  • collectd_typesdb: データセットの説明を含む 1 つ以上のファイルのリストです。リストにエントリが 1 つしかない場合でも、リストは角括弧で囲まれている必要があります。リストの各エントリは二重引用符で囲む必要があります。複数のエントリがある場合は、カンマで区切ります Linux サーバーのデフォルトは ["/usr/share/collectd/types.db"] です。macOS コンピュータのデフォルトは、collectd のバージョンによって異なります。例えば、["/usr/local/Cellar/collectd/5.12.0/share/collectd/types.db"] と指定します。

    詳細については、「https://www.collectd.org/documentation/manpages/types.db.html」を参照してください。

  • metrics_aggregation_interval: CloudWatch がメトリクスを 1 つのデータポイントに集約する秒単位の頻度。デフォルト値は 60 秒です。範囲は 0 ~ 172,000 です。0 に設定すると、collectd メトリクスの集計が無効になります。

エージェント設定ファイルの collectd セクションの例を次に示します。

{ "metrics":{ "metrics_collected":{ "collectd":{ "name_prefix":"My_collectd_metrics_", "metrics_aggregation_interval":120 } } } }

CloudWatch エージェントによってインポートされた collectd メトリクスの表示

collectd メトリクスを CloudWatch にインポートした後、これらのメトリクスを時系列グラフとして表示し、これらのメトリクスをモニターリングし、指定したしきい値に違反した場合に通知できるアラームを作成できます。以下の手順では、collectd メトリクスを時系列グラフとして表示する方法を示します。アラームの設定の詳細については、「 Amazon CloudWatch でのアラームの使用」を参照してください。

CloudWatch コンソールで collectd メトリクスを表示するには
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで [Metrics (メトリクス)] を選択します。

  3. エージェントによって収集されたメトリクスの名前空間を選択します。デフォルトでは、これは CWAgent ですが、CloudWatch エージェント設定ファイルで別の名前空間を指定している場合があります。

  4. メトリクスのディメンション (例: インスタンス別メトリクス) を選択します。

  5. [All metrics] タブには、名前空間内のそのディメンションのメトリクスがすべて表示されます。以下の操作を行うことができます。

    1. メトリクスをグラフ表示するには、メトリクスの横にあるチェックボックスを選択します。すべてのメトリクスを選択するには、テーブルの見出し行にあるチェックボックスを選択します。

    2. テーブルを並べ替えるには、列見出しを使用します。

    3. リソースでフィルタするには、リソース ID を選択し、[Add to search] を選択します。

    4. メトリクスでフィルタするには、メトリクスの名前を選択し、[Add to search] を選択します。

  6. (オプション) このグラフを CloudWatch ダッシュボードに追加するには、[Actions] (アクション)、[Add to dashboard] (ダッシュボードに追加) の順に選択します。