Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. 概要

logo aws

Checkmk には、Amazon Web Services (AWS) を監視するための広範なモジュールが含まれています。このモジュールは、AWS へのコネクタと、さまざまなメトリックやステータスを取得して評価する包括的なチェックプラグインのコレクションで構成されています。

AWS 環境で発生するコストに関する一般的な情報 およびお住まいの地域における AWS の現在の状況 に加えて、Checkmk のすべてのエディションで 以下の AWS 製品を監視することができます。

Checkmk CloudおよびCheckmk MSPを使用すると、以下の製品も監視システムに含めることができます。

AWS を監視するために利用可能なすべてのチェックプラグインの完全なリストは、チェックプラグインのカタログでご覧いただけます。また、Amazon EKS (Amazon Elastic Kubernetes Service) クラスタを Checkmk に組み込む方法については、Kubernetes の監視の記事で説明しています。

2. クイックセットアップによる監視の設定(オプション

AWS 環境で読みやすい監視を最も早く設定する方法は、クイックセットアップを使用することです。 これを行うには、Setup > Quick Setup > Amazon Web Services (AWS) を開き、[Add configuration] をクリックします。 クイックセットアップが、目標達成までの手順を順を追って説明します。

AWS 環境で必要な準備を行う方法の詳細については、「Checkmk 用の AWS の準備」の章をご覧ください。

クイックセットアップの最大のメリットは、設定プロセス中にエラーが即座に表示されることです。 最悪の場合、次のステップに進む前に、修正すべき点を明確かつ具体的に指示されます。

後でクイックセットアップで作成した設定を変更したい場合や変更する必要がある場合は、Setup > Quick Setup に戻ってください。 そこで、アイコンをクリックし、編集するコンポーネントを選択してください。

Tip

この記事の他の章は、クイックセットアップのユーザー向けの参考情報です。 ただし、AWS 環境が比較的複雑な場合は、以下の手順に従って設定を続行することをお勧めします。

3. AWS 監視の具体的な実施

3.1. ホストとサービス

Checkmk では、監視対象のすべてのオブジェクトは、ホストとサービスの階層構造に整理されています。 クラウドベースのサービスには、ホストの概念は存在しません。 しかし、Checkmk のシンプルさと一貫性を維持するため、 AWS オブジェクトは、ホスト/サービススキーマに従ってマッピングされています。

その仕組みは、例で説明するとよくわかります。1 つのリージョンに複数の EC2 インスタンスが設定されています。EC2 は通常、EBS に割り当てられます。この 構成は、Checkmk では次のように表示されます。

  • AWS アカウントと一致するホストがあります。このホストは、すべての EC2 インスタンスとそのステータスをサービスとして概要表示します。

  • EC2 インスタンス自体は、それぞれ独自のホストです。

  • これらの EC2 ホストには、実際のメトリックを含むサービスがあります。

  • EBS はハードディスクの一種として解釈され、それに応じて I/O に関するメトリック(読み取りまたは書き込みバイト数など)を提供します。この目的のために、Checkmk では、各 EBS に、EC2 インスタンスに割り当てられた「AWS/EBS Disk IO 」という名前の個別のサービスがあります。

3.2. AWSへのアクセス

AWS は、監視データも利用可能な HTTP ベースの API を提供しています。 Checkmk はCheckmkエージェントの代わりとなるagent_aws スペシャルエージェントを介してこの API にアクセスしますが、このエージェントは Checkmk サーバー上でローカルに実行されます。

4. Checkmk 用の AWS の準備

4.1. ユーザーの作成

Checkmk による監視を有効にするには、ルートアカウントの下に特別な AWS ユーザーを作成することをお勧めします。 ルートユーザーとして AWSにログインしAll servicesSecurity, Identity, & Compliance > IAM (Identity and Access Management) に移動します。Users に移動し、Add user で新しいユーザーを作成します。 ユーザー名には、たとえばcheck-mk を選択します。Select AWS credential typeAccess key - Programmatic access を選択することが重要です。

aws create user

4.2. 許可

作成したユーザーは、Checkmk による監視にのみ使用し、AWS への読み取り専用アクセス権のみを付与してください。 このユーザーには、ReadOnlyAccess ポリシーを割り当てることをお勧めします。 このポリシーを見つけるには、まず「Attach existing policies directly 」をクリックし、検索ボックスに「readonlyaccess 」と入力します。 検索フィールドの下のリストでは、この文字列を含むポリシーが多数あるため、かなり下にスクロールする必要があります。

aws create user policies

4.3. キー

ユーザーの作成が完了すると、アクセスキーが自動的に生成されます。 重要:キーの秘密は、作成直後に 1 回だけ表示されます。 そのため、必ずキーをコピーして、たとえば Checkmk パスワードストアに保存してください。 または、ルールとしてプレーンテキストで指定してください(以下を参照)。 Checkmk では、秘密に加えて、Access key ID も必要です。 ユーザー名(この例ではcheck-mk )はここでは関係ありません。

aws create user key

何らかの理由でシークレットを失った場合は、ユーザー用の新しいアクセスキーを作成し、新しいシークレットを取得することができます。

aws create access key

4.4. 請求情報へのアクセス

Checkmk に請求情報への読み取りアクセス権を付与したい場合(Costs and Usage グローバルチェックを実行するため)、 AWS ユーザーに別のポリシーが必要です。このポリシーは、ユーザー自身が最初に定義する必要があります。

Security, Identity, & Compliance > IAM > Policies で、Create Policy ボタンを選択します。Select a Service > Service > Choose a Service から、Billing サービスを選択します。Actions で、Read チェックボックスをオンにします。 追加の許可を設定する必要があります。Add additional permissions ボタンで追加します。Select a Service > Service > Choose a Service から、Cost Explorer Service サービスを選択します。Actions で、Read チェックボックスを再びオンにします。

aws policies

Review をクリックして、ステップ 2 に進みます。Name に「BillingViewAccess 」を設定し、Create policy ボタンで保存します。

この新しいポリシーをユーザーに追加する必要があります。Security, Identity, & Compliance > IAM > Policiesに戻り、Filter Policies 検索ボックスでBillingViewAccess を探し、 左側の円をクリックして選択し、Policy actions > Attach に移動します。 ここで、check-mk ユーザーを見つけ、これを選択し、Attach policy で確定します。

5. Checkmk での監視の設定

5.1. AWS のホストの作成

次に、Checkmk で AWS を監視するためのホストを作成します。 ホスト名は任意で指定できます。 重要:AWS はサービスとして IP アドレスや DNS 名を持たないため(アクセスはスペシャルエージェント自体によって許可されます)、IP address familyNo IP に設定する必要があります。

monitoring aws add host no ip

5.2. AWS エージェントの設定

AWS は通常の Checkmk エージェントではクエリできないため、次に AWSスペシャルエージェントを設定します。 そのためには、Setup > Agents > VM, cloud, container > Amazon Web Services (AWS) に、 条件が先ほど作成した AWS ホストにのみ適用されるルールを追加します。

ルールの実際のコンテンツでは、まずログインに関する情報を見つけます。 ここに、新しく作成した AWS ユーザーcheck-mk の「アクセスキー ID」を入力します。 また、データを取得するためにプロキシが必要かどうか、および監視するグローバルデータ( つまり、リージョンに依存しないデータ)もここで選択します。 現在、これはコストに関するデータのみです。

aws rule 1

上の画像には、「Use STS AssumeRole to assume a different IAM role 」というオプションも表示されています。 AWS で複数のアカウントを使用している場合は、1 つの監視ユーザーを使用して他のアカウントも監視することができます。

しかし、本当に重要なデータは地域に割り当てられています。 そのため、ここでAWSの地域を選択してください:

aws rule 2

Services by region to monitor で、これらの地域から取得する情報を指定します。 デフォルトでは、すべての AWS サービスとその制限の監視が有効になっています。 次の画像では、概要をわかりやすくするために、1 つを除くすべてが無効になっています。

aws rule 3

これで、Restrict monitoring services by one of these AWS tags で、web サービスごとに、またはグローバルに取得データを制限することができます。 web サービスで制限を設定すると、グローバルな制限は上書きされます。 また、AWS タグで制限するだけでなく、明示的な名前を指定するオプションもあります。

aws rule 4

Conditions > Explicit hosts にホスト名を入力して、以前に作成したホストにスペシャルエージェントを割り当てることを忘れないでください。

5.3. AWS ホスト自体のサービス

次に、Checkmk で新しく作成した AWS ホストのサービスディスカバリーに切り替えます。ここで、Checkmk は複数のサービスを見つけるはずです。 サービスを追加し、変更をアクティブにすると、監視画面は次のようになります。

aws services ec

5.4. EC2 インスタンスのホストの作成

EC2 インスタンスに割り当てられたサービスは、AWS ホストには割り当てられず、いわゆるピギーバックホストに割り当てられます。 これは、AWS ホストから取得したデータが、独自の監視エージェントなしで動作するこれらのピギーバックホストに分散されるという仕組みです。 ピギーバックホストは、各 EC2 インスタンスに割り当てられます。

これらのピギーバックホストの命名については、スペシャルエージェントの設定時に 2 つのスキームから選択できます。 1 つは、ホストのプライベート IP DNS 名に従ってホストに名前を付ける方法です。もう 1 つは、IP、リージョン、インスタンス ID に基づいて、やや長くなりますが、一意の命名を行う方法です。 後者の方法は、Checkmk2.2.0 以降のデフォルト設定です。 地域およびインスタンス ID を含まない方法は、互換性の理由から引き続き提供されています。 このようなピギーバックホストには、たとえば「172.23.1.123-ap-northeast-2-i-0b16121900a32960c 」という名前が付けられます。 これらのホストは、手動で作成するか、可能であればダイナミックホストマネージメントに任せてください。

ダイナミックホストマネージメントの設定

当社の商業版をご利用の場合は 、VM インスタンスのホストの作成と削除は、ダイナミックホストマネージメントに任せるだけで済みます。Setup > Hosts > Dynamic host management メニュー項目をクリックすると、すでに設定済みのすべての接続の概要ページが表示されます。Add connection をクリックし、接続にIDTitle を指定します。

Connection properties で利用可能なすべてのオプションについては、以下では説明していません。 ご不明な点がある場合は、インラインヘルプおよび上記のメイン記事をご覧ください。

まず、Connection properties ボックスで[もっと表示] モードが有効になっていることを確認して、使用可能なすべてのオプションが表示されていることを確認してください。

次に、[Piggyback creation options ] で [Add new element] をクリックします。 VM インスタンスのホストを作成するフォルダをカスタマイズします。 事前に選択されている [Host attributes ] は、ピギーバックホストには基本的に正しい設定であるため、変更する必要はありません。

Delete vanished hosts オプションを有効にすると、指定した期間に新しいデータが受信されなくなったピギーバックホストが自動的に削除されます。

GCP プロジェクトの監視の一環として、[Restrict source hosts ] オプションを有効にする必要があります。 AWS 用のホストの作成セクションで、GCP ホストを入力してください。

このような接続の設定例は、次のようになります。

Exemplary configuration of connection properties.

EC2 インスタンス用のホストを手動で作成する

または、ピギーバックデータ用のホストを手動で作成することもできます。 その場合、ホストの名前は上記で説明した方式と完全に一致している必要があります。

Tip

コマンド「cmk-piggyback list orphans 」を使用すると、データはあるものの Checkmk でホストとしてまだ作成されていない、すべての孤立したピギーバックホストを見つけることができます。

これらの EC2 インスタンスのホストを IP アドレスなしで (AWS ホストと同様に) 設定し、監視エージェントとして「No API integrations, no Checkmk agent 」を選択します。Piggyback で「Always use and expect piggyback data 」オプションも選択すると、データが到着しなかった場合に警告が表示されます。

monitoring aws add host for piggyback data

5.5. ELB (クラシックロードバランサー) のホスト

ELB のサービスもピギーバックホストに割り当てられます。 名前は DNS 名に対応しています。

5.6. S3 バケットのトラフィック統計のモニター

Checkmk では、各 S3 バケットのトラフィックを監視することができます。 Checkmk では、Simple Storage Service (S3) の下にあるRequest metrics オプションを有効にするだけです。

Option for S3-Buckets with activated request metrics.

AWS では、もう少し作業が必要です。 ここでは、監視するバケットに対して、これらのリクエストメトリックを設定する必要があります。 AWS では、その方法の詳細を「バケット内のすべてのオブジェクトに対する CloudWatch メトリック構成の作成」という記事で説明しています。 AWS のセットアップ中に、フィルタの作成を求められます。 このフィルタには、Checkmk で認識されるように「EntireBucketという名前を付ける必要があります。 この名前以外のフィルタは、Checkmk によって無視されます。 したがって、Checkmk の機能に影響を与えることなく、このバケットに他のフィルタを自由に定義することができます。

Creation of a filter for the request metrics.

AWS で、いわゆる (フィルタ) 「Scope 」をどのように選択するかは、ユーザー次第です。 ただし、ほとんどの場合、バケット内のすべてのオブジェクトをフィルタに含めるのが妥当です。

リクエストメトリックを設定した後、メトリックが実際に保存されるまで数分かかります。 AWS はこの時間を 15 分と指定しています。

重要:S3 コンソール内のグラフがまだ空の状態である限り、スペシャルエージェントを介して Checkmk に何も届きません。 メトリックが記録されて初めて、Checkmk は対応するサービスを作成できます。 必要に応じて、AWS ホストでサービスディスカバリーを再度実行してください。

5.7. 監視の制限

AWS の web サービスの中には制限があり、Checkmk はそれらを監視することができます。 以下に例を挙げます。

このようなチェックプラグインがサービスを作成し、後でチェックすると、スペシャルエージェントは常に web サービスのすべてのエレメントを取得します。 この方法でのみ、Checkmk はこれらの制限における現在のワークロードを合理的に計算し、閾値をチェックすることができます。 これは、設定でタグや名前によって取得データを制限した場合も同様です。

制限のチェックは、監視対象の web サービスごとにデフォルトで有効になっています。 転送データ量を制限するために、スペシャルエージェントのルールで取得データを制限したい場合は 制限もオフにする必要があります。

5.8. その他のサービス

AWS のその他の web サービスは、次のように割り当てられています。

サービス 割り当て

CE

費用および使用状況

AWS ホスト

EBS

ブロックストレージ

インスタンスに属する場合は EC2 インスタンスに、そうでない場合は AWS ホストに追加されます。

S3

シンプルストレージ

AWS ホスト

RDS

リレーショナルデータベース

AWS ホスト

6. ダッシュボード

AWS の監視を簡単に開始するために、Checkmk Cloud 以降には 2つのビルトインダッシュボードAWS EC2 instances およびAWS S3 が付属しています。 これらはいずれも、Monitor > Cloud の監視メニュー項目として表示されます。

よりわかりやすくご説明するために、これらのダッシュボードの構造を 2 つの例で紹介します。 まず、EC2 インスタンスダッシュボードでは、左側に現在の状態、右側に最も重要なメトリックのヒストリーを時系列で比較することができます。

Dashboard for the AWS EC2 instances.

S3 バケットのダッシュボードも、ほぼ同様の構造になっています。 左側には、各バケットの現在のメモリ使用状況が表示されます。 右側には、最も重要なメトリックが時系列で表示されます。

Dashboard for the AWS S3 buckets.
このページでは