ZabbixでのAmazon EC2 Auto Scaling監視
こんにちは! MSP部でプロジェクトの受け入れを担当している竹山です。 今年から猫と暮らし始めて、毎日癒してもらってます。(もう猫がいない暮らしには戻れないです…。)
さて、最近運用が始まる案件で、Amazon EC2 Auto Scalingを利用しているケースが多くなってきました。
Amazon EC2 Auto Scalingを利用している場合と、利用していない場合のZabbixでの監視設定に異なる点がいくつかあるので、まとめてみました。
主に設定が異なる箇所は4項目ありますので、1つ1つ説明していきたいと思います。
①ZabbixAgent設定
②AutoScalingグループ設定
③Zabbix自動登録アクション設定
④Zabbixディスカバリールール・アクション設定
①ZabbixAgent設定
ZabbixAgentをインストールした際にconfファイルで指定するパラメータが通常とは異なります。
まず1つ目はZabbix登録時のホスト名の指定方法が異なります。
通常では「HostName=★一意のホスト名★」でホスト名を指定していますが、Amazon EC2 Auto Scalingの場合は「HostnameItem=system.hostname」でホスト名を指定しています。
「HostnameItem=system.hostname」で指定をすると、OSホスト名がZabbix登録時のホスト名になります。
※OSホスト名は、Hostnameコマンドで確認可能
Zabbixホスト名は一意の名前でなければいけなく、重複してしまうと1つのホストで複数インスタンスの監視が行われてしまうため、
例えば「HostName=ntakeyama-test」でパラメータを指定すると、スケーリングによって起動してきたインスタンス全ての監視データが「ntakeyama-test」という1つのホストで取得されます。
そのため、OSホスト名がZabbix登録時のホスト名になるようにし、スケーリングするたびに新しくZabbixにホストが登録されるようにしています。
2つ目は「HostMetadata=★一意の値★」のパラメータを追加します。
後続のアクション設定を行う際に利用するため、ここでは説明を省きます。
②AutoScalingグループ設定
ZabbixAgentを設定したインスタンスからAMIを取得し、AutoScalingグループに紐づいている起動テンプレートにAMIを設定します。
AMIを設定することで、スケーリングした場合でもZabbixAgentがインストール・設定されているEC2インスタンスが作成されるため、都度ZabbixAgentをインストールする必要がなくなります。
また、起動してきたEC2インスタンスがZabbixサーバーと通信出来るように、予めセキュリティグループを作成しAutoScalingグループに設定します。
③Zabbix自動登録アクション設定
Amazon EC2 Auto Scalingを利用している場合は、スケーリングしたタイミングでリソース監視や死活監視など、必要な監視・通知が即座に出来るよう設定しておく必要があります。
通常のEC2で使用している自動登録アクションでは、ホストが登録されるのみで監視設定は行われないため、該当のAutoScalingグループ専用の自動登録アクションを作成する必要があります。
■実行条件
プロキシ(Zabbixプロキシを指定します)
ホストメタデータ(ZabbixAgentで設定した一意の値を指定します)
■実行内容
ホストグループへの追加
テンプレートの追加
④Zabbixディスカバリールール・アクション設定
スケーリングするたびにホストが登録されていってしまうので、一定期間経過後にホストの削除を行う自動削除アクションを作成しています。
また、無効化されているホストと同じIPアドレスでインスタンスが起動しても監視出来るように自動有効化アクションを作成しています。
最後に…
今回は細かく記載してしまうと長くなってしまうため、説明を省いてしまった部分も多いです。
スカイ365ではAmazon EC2 Auto Scalingにも対応した運用監視を行っておりますので、もしご相談がございましたら。ぜひお問合せ下さい!!