ZabbixでAWSを監視する方法
~スクリプトによる外部チェック利用時のTips編~

オンプレミスのクラウド化に伴い、特に豊富な導入事例を持つAmazon Web Services(アマゾン ウェブ サービス、以降AWSと略す)への移行を目指す企業が増加しています。
AWS上に構築したシステムの監視に用いられるツールとして、AWSが提供する監視サービスである「Amazon CloudWatch(アマゾン クラウドウォッチ、以降CloudWatchと略す)」が有名ですが、既存の運用オペレーションを活用するために、オンプレミスで使っていた監視ツールをそのまま継続利用するケースも多いかと思います。しかしながら、既存の監視ツールでAWSを監視するには困難なことも多いです。
そこで、本記事では、オンプレミスの監視でメジャーな「Zabbix(ザビックス)」を既存の監視ツールとして取り上げ、Zabbixエージェントでは監視ができないSaaSやPaaSも監視可能にする方法として、

  • Zabbixのスクリプトによる外部チェック機能を用いたAWSの監視方法

についてご紹介します。
なお、本タイトルは2本立てとなっており、今回は「スクリプトによる外部チェック利用時のTips編」です。ZabbixでAWSを監視する方法の概要については「ZabbixでAWSを監視する方法 ~メリット・デメリット解説編~」で解説します。

本記事はこんな方にお勧めします

  • Zabbixの外部チェックを使ってみたい
  • スクラッチ開発のTipsを知りたい

ご注意
本記事では、Zabbixの外部チェック機能を用いた解説に必要なShellおよびPythonを利用したスクリプトが登場します。ShellおよびPythonの文法に関する解説は専門の書籍やウェブページなどをご覧ください。

1. 外部チェックの基本的な使い方

Zabbixの外部チェック機能を利用して、AWSを監視する方法についてご紹介します。なお、本記事ではZabbixのv5.0.26を利用した解説を行っております。バージョンの差異によって操作に多少の違いが発生する可能性がありますが、あらかじめご了承ください。

外部チェックとは

外部チェックは、Zabbixの監視アイテムにおける1つのタイプで、Zabbixサーバーがシェルスクリプトやバイナリーといった任意のコマンドを実行し、コマンドが出力した結果を監視アイテムの値として使用することができる機能です。外部チェックでは、Zabbixサーバーが定期的にコマンドを実行することで監視を行うため、監視対象の機器やサービスにZabbixエージェントを導入する必要がありません。

Loading component...

簡単なスクリプトによる利用例

外部チェック用のスクリプトを作成する

外部チェックで実行させるスクリプトを作成します。今回は簡単な例として、hostnameコマンドの実行結果を返すShellスクリプトを、hostname.shという名前で作成します。

Loading component...

Loading component...

Loading component...

また、Zabbixはデフォルトでzabbixユーザーでスクリプトを実行するため、zabbixユーザーに権限を与える必要があります。以下のコマンドを実行して、スクリプトの実行権限を与えます。

Loading component...

スクリプトを実行する監視アイテムを作成する

スクリプトを実行するZabbixの監視アイテムを作成します。

Loading component...

監視アイテムの値を確認する

外部チェックにより取得されるデータを確認します。

Loading component...

ここまでが、外部チェックの基本的な使い方です。

2. 外部チェックでAWSを監視する方法

それでは、外部チェックを使ったAWSの監視を試してみましょう。考え方は、「スクリプト内でAWSのAPIを実行し、監視したいデータを取得する」です。

Loading component...

事前準備

本記事では、Pythonを使用したスクリプトを作成します。PythonでAWSのAPIを実行するために必要なライブラリー(boto3)をインストールします。

Loading component...

スクリプトの作成から配置・確認までの一連の流れ

Loading component...

備考
HTTP_PROXY、HTTPS_PROXYは、プロキシー下で動作させる場合など、必要に応じて設定します。

Loading component...

このスクリプトは、引数に、AWSのAPIを実行するためのキー情報(アクセスキー・シークレットキー)とリージョン、EC2インスタンスのIDを渡して実行することで、該当するEC2インスタンスの起動状態を出力します。

備考
本記事では、説明の都合上、AWSへの接続方法としてアクセスキー・シークレットキーを用いていますが、セキュリティの観点からAWS Identity and Access Management(IAM)ロールの利用など別の接続方法を推奨します。

スクリプトを配置する

「外部チェック用のスクリプトを配置する」と同様に、作成したスクリプトを指定ディレクトリーに配置します。

Loading component...

スクリプトの実行権限も同様にzabbixユーザーに与えます。

Loading component...

監視アイテムを作成する

「スクリプトを実行する監視アイテムを作成する」と同様に、監視アイテムを作成します。

  • ホストを作成します。
    • ホスト名:任意
    • グループ:任意

    Loading component...

  • アイテムを作成します。

    Loading component...

    Loading component...

監視アイテムの値を確認する

Loading component...

起動状態の変化を通知する

EC2インスタンスの起動状態が「stopped」になった場合に通知するようにします。

Loading component...

通知を確認する

該当するEC2インスタンスを停止した後、以下の手順で確認します。

Loading component...

Loading component...

3. 外部チェックによるAWS監視の注意点

ここまでで、外部チェックを使ったAWS監視の手法を簡単に説明しましたが、実用に際しては、下記の事柄に注意する必要があります。

  • AWS側の仕様変更への追随が必要
  • AWSの新たなサービスを利用・監視したい場合に、スクリプトの改修が必要
  • プログラミング知識や実装工数が必要

詳細は「ZabbixでAWSを監視する方法 ~メリット・デメリット解説編~」の「外部チェックによるAWS監視の注意点」をご覧ください。

Loading component...

4. まとめ

本記事では、

  • Zabbixの外部チェック機能を用いたAWSの監視方法

について紹介しました。AWSの監視ツール・監視方式の検討、Zabbix監視の実践等に役立てていただければ幸いです。また、富士通では「Systemwalker Centric Manager Open監視強化テンプレート」を提供しています。
本製品は、

Loading component...

こちらもぜひ、ご検討ください。

こちらもおすすめ

日々のビジネスに欠かせないICTインフラを、いかに安心かつ安全、効率的に運用するかは、今後のビジネスの成長を左右します。DXやクラウド導入により、ICTインフラが変化する今、運用を見直すチャンスです。

Loading component...

Loading component...

Loading component...

関連情報

Loading component...

Loading component...