採用情報

お問い合わせ

BLOG

Zabbix テック・ラウンジ

2023 年 03 月 09 日

Zabbix の新機能: AWS 監視について

Zabbix 6.2 から Amazon EC2、 Amazon S3、 Amazon RDS を Amazon CloudWatch の API を用いて監視する標準テンプレートが追加されました。MIRACLE ZBX でも 6.0.13 から使用できます。本記事ではこのテンプレートを使用し監視するための設定手順について紹介します。

AWS 監視のための設定手順

Amazon EC2、 Amazon S3、 Amazon RDS のインスタンスやバケットを MIRACLE ZBX で自動検出し、監視する手順を説明します。

事前準備

バージョン 6.0.13 以上の MIRACLE ZBX サーバーと MIRACLE ZBX Web フロントエンドを構築してください。構築方法は以下のページを参照してください。

https://www.miraclelinux.com/support/miracle-zbx60/zbx-support/manual-zbx60

今回は以下の環境を使用しています。

OS MIRACLE LINUX 8.6
MIRACLE ZBX バージョン 6.0.13
データベース MariaDB
Web サーバー Apache

AWS 側の設定手順

監視のために AWS 側で以下の設定が必要です。

  • IAM ポリシーの作成
  • IAM ユーザーへの IAM ポリシーの紐づけ
  • アクセスキーの作成
IAM ポリシーを作成する

MIRACLE ZBX サーバーが AWS に対してアクセスすることができるよう、必要な権限を列挙した IAM ポリシーを作成します。

はじめに AWS へログインします。

AWS へログイン

画面左上の「サービス」をクリックし、表示されたメニューから「すべてのサービス」→「IAM」の順番でクリックします。

「すべてのサービス」→「IAM」の順番でクリック

画面左のメニューバーから「ポリシー」をクリックします。

「ポリシー」をクリック

画面右上の「ポリシーを作成」をクリックします。

「ポリシーを作成」をクリック

JSON タブに移動し、以下の JSON をコピーして既存の JSON を置き換えます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "cloudwatch:Describe*",
                "cloudwatch:Get*",
                "cloudwatch:List*",
                "ec2:Describe*",
                "rds:Describe*",
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

ポリシーの内容については以下を参照してください。
https://www.zabbix.com/integrations/aws

ポリシーでは以下を許可しています。

説明 参考
cloudwatch:Describe* Amazon CloudWatch API の名前が Describe で始まるアクション 参考 URL
cloudwatch:Get* Amazon CloudWatch API の名前が Get で始まるアクション 参考 URL
cloudwatch:List* Amazon CloudWatch API の名前が List で始まるアクション 参考 URL
ec2:Describe* Amazon EC2 API の名前が Describe で始まるアクション 参考 URL
rds:Describe* Amazon EC2 API の名前が Describe で始まるアクション 参考 URL
s3:ListAllMyBuckets Amazon S3 API のリクエスト送信者の所有する全てのバケットを取得するアクション 参考 URL
s3:GetBucketLocation Amazon S3 API のバケットが存在するリージョンを取得するアクション 参考 URL

その後「次のステップ : タグ」をクリックします。

「次のステップ : タグ」をクリック

必要に応じて作成するポリシーにタグをつけます。今回は不要なためつけていません。完了後「次のステップ : 確認」をクリックします。

「次のステップ : 確認」をクリック

ポリシーの名前と説明を入力します。入力後「ポリシーの作成」をクリックします。

「ポリシーの作成」をクリック

IAM ポリシーを IAM ユーザーに紐づける

作成したポリシーを監視に使用する IAM ユーザーに紐づけます。

IAM のダッシュボード画面を再度開き、画面左のメニューバーから「ユーザー」をクリックします。

「ユーザー」をクリック

監視に使用するユーザーのユーザー名をクリックします。

 ユーザー名をクリック

「アクセス権限の追加」をクリックします。

「アクセス権限の追加」をクリック

「既存のポリシーを直接アタッチ」をクリックし、作成したポリシーにチェックを入れ「次のステップ : 確認」をクリックします。

「既存のポリシーを直接アタッチ」をクリック

アタッチされるポリシーを確認します。問題がなければ「アクセス権限の追加」をクリックします。

「アクセス権限の追加」をクリック

アクセスキーを作成する

AWS の監視テンプレートではアクセスキーを用いて AWS にアクセスします。そこで AWS 上に ZBX が認証するためのアクセスキーを作成します。

監視に使用するユーザーのページを再度表示し「認証情報」タブにある「アクセスキーの作成」をクリックします。

「アクセスキーの作成」をクリック

アクセスキー ID とシークレットアクセスキーが表示されます。これらの情報を控えておきます。

 アクセスキー ID とシークレットアクセスキーが表示されます

MIRACLE ZBX サーバー側の設定手順

SELinux を無効にする

MIRACLE ZBX サーバーが稼働しているホストの SELinux が enforcing になっていると、MIRACLE ZBX サーバーから AWS へのネットワーク接続ができなくなります。そのため、/etc/selinux/config を編集し、permissive または disabled に変更します。

SELINUX=permissive
または
SELINUX=disabled

SELinux の設定変更後、マシンの再起動をおこないます。

# reboot

本手順では動作検証のため SELinux を無効にしています。実際に運用するさいは AWS 向けの通信を許可するための SELinux のポリシーを作成し、SELinux を enforcing にすることを推奨します。

最新の AWS 監視テンプレートをインポートする

6.0.13 より古いバージョンからこれ以上のバージョンへアップデートした場合は AWS 監視用のテンプレートが導入されていません。
その場合は以下のページから最新のテンプレートをダウンロードします。

各ページにアクセスし、「Also available for:」行にある「6.0」をクリックします。
その下の「Source:」行のリンクから、ZABBIX GIT にアクセスします。
以下の各 YAML ファイルをダウンロードします。

既存のテンプレートを削除する必要はありませんが、テンプレートが存在せず新規にインポートする場合は template_cloud_aws_http.yaml が他 3 テンプレートのディスカバリとなるため最後にインポートしてください。

MIRACLE ZBX Web フロントエンドにアクセスし、「設定」→「テンプレート」を開きます。

「設定」→「テンプレート」を開きます

画面右上の「インポート」をクリックし、ダウンロードした YAML ファイルを選択します。

 ダウンロードした YAML ファイルを選択

選択後、「インポート」をクリックするとインポートするテンプレートの差分が表示されるため、確認後「インポート」をクリックします。

「インポート」をクリック

MIRACLE ZBX のホストにテンプレートをリンクする

インポートしたテンプレートに「AWS by HTTP」があるのでこれをホストにリンクします。他のテンプレートはディスカバリによって自動的に適用されるため手動での設定は不要です。

「AWS by HTTP」をホストにリンク

マクロを設定する

ホストに対して接続情報などのマクロを指定します。

マクロ名 説明
{$AWS.ACCESS.KEY.ID} AWS のアクセスキーを指定します
{$AWS.SECRET.ACCESS.KEY} AWS のシークレットキーを指定します
{$AWS.REGION} AWS のリージョンを指定します
{$AWS.PROXY} (任意)プロキシを経由する場合指定します

 マクロを設定する

この他、フィルタ機能のためのマクロも用意されています。ダウンロードページの説明もあわせてご確認ください。

その後、しばらく待つかディスカバリの監視データ取得をおこなうと AWS のインスタンスやバケット毎にホストが追加されます。

AWS のインスタンスやバケット毎にホストが追加されます

「監視データ」→「最新データ」を開き、追加されたホストのアイテムで値が取得できていれば完了です。

 追加されたホストのアイテムで値が取得できていれば完了です

まとめ

Zabbix 6.2 および MIRACLE ZBX 6.0.13 以降では Amazon EC2、 Amazon S3、 Amazon RDS を監視できる標準テンプレートが追加されました。このテンプレートを使用して AWS のサービスを監視するまでの手順を解説しました。

本記事では紹介しませんでしたが、他にも各サービスの名前ごとにディスカバリーのフィルターをかけるマクロ等も用意されており、大規模な場合にも必要なサービスだけの監視ができます。


本記事に関連するリンク

Zabbix 7.0 新機能調査報告書 無料ダウンロード
CentOS 7 延長サポートサービス
デジタルトランスフォーメーションのための電子認証基盤 iTrust
SSL/TLS サーバー証明書 SureServer Prime