はじめに
先日、Zabbix Conference Japan 2022に行ってきたんですが、そこで渡邉さんが便利なTemplateの紹介をしていて「おお!これは便利!実際に使ってみたい!」と思い、せっせこ設定をしてみました。
この記事はその作業内容をまとめたものです。
概要
Zabbix6.2で新たに追加された、AWSのEC2監視テンプレート、「AWS EC2 by HTTP」を使用します。
EC2のモニタリング情報(CloudWatchで取れる情報)をZabbixで監視できるようにするテンプレートです。
ちなみに、EC2以外にもRDS、S3とかも監視できるテンプレートも追加されていますよ。
手順
Zabbixサーバの準備
まず、バージョン6.2以降のZabbixを用意します。でもそこの手順は割愛します(何)
手っ取り早くテンプレートを試したかったので、私は以下の構成でZabbix6.2を立ち上げました。
- EC2:AlmaLinux OS 9 (x86_64)
- インスタンスタイプ:t3.small
- Zabbix:6.2.4
- Apache:Apache/2.4.53
- DB:MySQL 8.0.30
- PHP:8.0.20
立ち上げてダッシュボード画面を見てみると「Geomap」なるものも表示されていて見た目が楽しそう(?)です。
AWSコンソール側の設定
まずはAWS側の設定です。
コンソール画面に入って、専用のIAMユーザーを作成します。
- ユーザー名:zabbix_template_aws_ec2(例です)
- AWS 認証情報タイプを選択:アクセスキー - プログラムによるアクセス
- アクセス許可の設定:ここではまだ設定をせずに、一旦ユーザーの作成を完了します。
※アクセスキー・シークレットキーがこの時点で払い出されるので、手元でメモっておきます。
次に、専用のIAMポリシーを作成します。
- ポリシー名:zabbix_template_aws_ec2_policy(例です)
- ポリシー:以下のJSONを登録します。
{
"Version":"2012-10-17",
"Statement":[
{
"Action":[
"cloudwatch:Describe*",
"cloudwatch:Get*",
"cloudwatch:List*",
"ec2:Describe*"
],
"Effect":"Allow",
"Resource":"*"
}
]
}
その後、先ほど作成したIAMユーザーにポリシーを紐付けます。
IAMユーザーの「アクセス権限を追加」で、 既存のポリシーを直接アタッチ
を選び、同じく先ほど作成したIAMポリシーを紐付けます。
Zabbixサーバ側の設定
Zabbixの 設定>ホスト
から対象のホスト名をクリックしホスト設定内容の編集画面に入ります。
「マクロ」タブをクリックして以下の項目を設定していきます。
- {$AWS.ACCESS.KEY.ID}:メモっておいたやつ
- {$AWS.SECRET.ACCESS.KEY}:メモっておいたやつ
- {$AWS.REGION}:東京だったら、ap-northeast-1
- {$AWS.EC2.INSTANCE.ID}:対象EC2のインスタンスID
確認
監視データ>最新データ で、AWS EC2:なんちゃら
という項目が並びます!
おわりに
時おり、こうやって新しい情報に飛びつくようにしておかないと、化石みたいなエンジニアになってしまいますねw
日々精進です!