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 へログインします。
画面左上の「サービス」をクリックし、表示されたメニューから「すべてのサービス」→「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 とシークレットアクセスキーが表示されます。これらの情報を控えておきます。
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 監視用のテンプレートが導入されていません。
その場合は以下のページから最新のテンプレートをダウンロードします。
- https://www.zabbix.com/integrations/aws_ec2
- https://www.zabbix.com/integrations/aws_rds
- https://www.zabbix.com/integrations/aws_s3
- https://www.zabbix.com/integrations/aws
各ページにアクセスし、「Also available for:」行にある「6.0」をクリックします。
その下の「Source:」行のリンクから、ZABBIX GIT にアクセスします。
以下の各 YAML ファイルをダウンロードします。
- template_cloud_aws_ec2_http.yaml
- template_cloud_aws_rds_http.yaml
- template_cloud_aws_s3_http.yaml
- template_cloud_aws_http.yaml
既存のテンプレートを削除する必要はありませんが、テンプレートが存在せず新規にインポートする場合は template_cloud_aws_http.yaml が他 3 テンプレートのディスカバリとなるため最後にインポートしてください。
MIRACLE ZBX Web フロントエンドにアクセスし、「設定」→「テンプレート」を開きます。
画面右上の「インポート」をクリックし、ダウンロードした YAML ファイルを選択します。
選択後、「インポート」をクリックするとインポートするテンプレートの差分が表示されるため、確認後「インポート」をクリックします。
MIRACLE ZBX のホストにテンプレートをリンクする
インポートしたテンプレートに「AWS by HTTP」があるのでこれをホストにリンクします。他のテンプレートはディスカバリによって自動的に適用されるため手動での設定は不要です。
マクロを設定する
ホストに対して接続情報などのマクロを指定します。
マクロ名 | 説明 |
---|---|
{$AWS.ACCESS.KEY.ID} | AWS のアクセスキーを指定します |
{$AWS.SECRET.ACCESS.KEY} | AWS のシークレットキーを指定します |
{$AWS.REGION} | AWS のリージョンを指定します |
{$AWS.PROXY} | (任意)プロキシを経由する場合指定します |
この他、フィルタ機能のためのマクロも用意されています。ダウンロードページの説明もあわせてご確認ください。
その後、しばらく待つかディスカバリの監視データ取得をおこなうと AWS のインスタンスやバケット毎にホストが追加されます。
「監視データ」→「最新データ」を開き、追加されたホストのアイテムで値が取得できていれば完了です。
まとめ
Zabbix 6.2 および MIRACLE ZBX 6.0.13 以降では Amazon EC2、 Amazon S3、 Amazon RDS を監視できる標準テンプレートが追加されました。このテンプレートを使用して AWS のサービスを監視するまでの手順を解説しました。
本記事では紹介しませんでしたが、他にも各サービスの名前ごとにディスカバリーのフィルターをかけるマクロ等も用意されており、大規模な場合にも必要なサービスだけの監視ができます。