ZabbixによるAWS監視
AWSにおける監視といえばAWSの監視サービスであるCloudWatchを利用することが一般的ですが、外部の監視ツールを利用してAWSサービスを監視することも可能です。CloudWatchでは実行できない高度な機能の利用等、外部ツールでなければ実装できない監視もあるため、CloudWatch以外の監視ツールの導入は十分検討に値します。今回はオープンソースの統合監視ツールであるZabbixを使ったAWS監視についてできるだけわかりやすく説明します。
目次
Zabbixとは
Zabbixを利用したAWS監視の説明を行う前にまず、Zabbixとはどのような監視ツールなのかという点についてご紹介します。
Zabbixとはオープンソースの統合監視ツールでシステムの監視、アラート通知、パフォ-マンス可視化などにおいて高度な監視を実現することが可能です。
監視対象の規模(台数)に依存しないサポート費用(保守費用)となるため、現状の監視コストを大幅に削減することが可能です。
Zabbixの主な機能
Zabbixの主な機能として監視対象の機器から様々なデータを収集することでWebインタフェースを利用して視覚的(グラフで表示)に監視を行うことができます。また当然ながら検知した情報に応じて柔軟にアラート通知を行うことができます。
エージェント監視とエージェントを使わないエージェントレス監視を行うことができます。
※エージェントについての詳しいご説明は次項にて。
AWSに最適化された24時間365日の運用・監視をご提供するスタイルズのAWS監視、運用・保守サービスはこちら→
Zabbixエージェントとは
ZabbixエージェントとはZabbixで監視するために監視対象に常駐させるアプリケーションのことを言います。Zabbixエージェントをインストールするとローカルのリソース(ハードウェアデバイス、メモリ、プロセッサの統計など)やアプリケーションを高度に監視することが可能となります。
Linux系、UNIX系、Windows、MacOS等、様々なOSのプラットフォームで動作可能です。
Zabbixエージェントでできること
Zabbixエージェントを導入することで実行可能な機能は以下となり、エージェントを導入することで対象機器の詳細なリソース情報を取得可能です。
■エージェントを導入することで実行可能な機能
Zabbixエージェントがなくてもできること
Zabbixエージェントを利用せず監視する状態をエージェントレス監視と言います。エージェントレスの状態でも以下のような監視を実施することができます。
エージェント監視で利用可能な監視機能、エージェントレスで利用可能な監視機能を組み合わせることで様々な観点から監視を行うことができます。
■エージェントレスで実行可能な機能
Pull型監視とPush型監視
監視サーバから監視端末に対して情報を取得する形をPull型監視、監視端末から監視サーバへ情報を渡す形をPush型監視と言いますが、AWS外部からPull型監視を行うためにはグローバルアドレスの割り当てやVPN接続といったネットワークの考慮が必要となり、大きな制約が生じます。
Zabbixエージェントを入れ、Push型監視の構成とすれば外部から接続するための制約がなくなり、セキュリティ的にも堅牢な形で監視を行うことができます。このように接続の形態によってもエージェントの導入について考慮する必要があります。
AWSに最適化された24時間365日の運用・監視をご提供するスタイルズのAWS監視、運用・保守サービスはこちら→
ZabbixによるAWS監視のポイント
Zabbixでは一般的にどのような監視を行うことができるのかについて説明してきましたが、ここからはZabbixでどのようにAWS監視を行うことができるのかについて説明します。
AWSでのZabbix監視対象
Zabbixで実行可能なAWS監視は以下のような形となり、多様な監視の実装が可能です。
AWSサービス毎の監視手法
AWSの監視は通常仮想サーバであるEC2の監視がメインになると考えられますが、EC2にはZabbixエージェントを入れることができるのでZabbixエージェント経由でリソース面の監視含めて多様な監視を実現できます。
RDSのようなマネジメントサービスはエージェントを入れることができないのですがZabbixからAPIを使ってCloudWatchの情報を取得することでマネジメントサービスでもZabbixによる監視が実現できます。
Zabbixサーバの配置
AWS監視向けにZabbixの導入を考える際にZabbixをどこに配置するかという点は導入時に検討すべき重要な事項となります。Zabbix自体はオンプレミスのサーバ上でもAWSのEC2上でも導入することが可能ですが、最も考慮すべき点はAWS内部に配置するかAWS外部に配置するかという点となります。
AWS内部に配置した場合はネットワークの制約を受けずにZabbixの機能を利用可能ですが、AWS外部に配置した場合はローカルネットワークのサーバに通常は接続できないためエージェントからZabbixに情報を渡すか、監視用のVPN接続を考慮する必要があります。
このようにAWS外部にZabbixを配置した場合は制限が発生しますので、監視を行いたい範囲や重要度に合わせてZabbixの配置を考える必要があります。
ZabbixによるAWS監視の利点
AWSの監視は専用の監視サービスであるCloudWatchの利用がまず挙げられますが、ZabbixによるAWS監視における利点は数多くあります。代表的な利点としては以下となり次項より詳しく説明します。
- 複数AWSアカウント監視
- ハイブリッド監視
- URL監視(シナリオ監視)
- SNMP監視
複数AWSアカウント監視
CloudWatchで監視を行うことができる対象は1つのアカウントのみで複数アカウントのAWS環境を1つの監視サービスで一元管理することはできませんが、Zabbixであればそのような制約はありませんので1つの監視サーバで複数アカウントの監視を行うことができます。
ハイブリッド構成
Zabbixを監視サーバとして利用することでAWS複数アカウントだけでなくオンプレミスサーバを統合的に監視することができます。特にオンプレミスでZabbixを導入していて一部システムをAWSに移行するような場合ではオンプレミスの設定をそのまま引き継ぐことができますのでこの点も利点であると言えます。
URL監視(シナリオ監視)
監視の種類の中にはURL監視(シナリオ監視)という外部から対象システムのURLで接続を行い問題が発生していないかユーザ観点で確認をするという非常に重要な監視の項目があります。Zabbixでは以下の観点で詳細な確認を行うことが可能です。
- 平均ダウンロード速度
- エラーが発生したステップの数
- エラーメッセージ
- レスポンスコード
- レスポンスタイム
Zabbix URL監視ではAWSのURL監視と異なり、インターネット経由での確認を行うことができるためよりユーザビリティの高い監視を実現可能です。