プラグイン「HyClops for Zabbix」を使ってクラウド監視:クラウド&DevOps時代の運用をZabbixで(4)(1/2 ページ)
最終回では、パブリッククラウド環境や仮想環境監視のさらなる効率化を目指して筆者らが開発したZabbixプラグイン、「HyClops(ハイクロップス) for Zabbix」について紹介します。
これまで3回に渡って、Zabbixを効果的に利用するための機能を紹介してきました。最終回では、クラウド監視のさらなる効率化を目指して筆者らが開発したZabbixプラグイン、「HyClops(ハイクロップス) for Zabbix」について紹介します。
Zabbixは豊富な監視機能や柔軟性の高さから、さまざまなサードパーティ製の外部ツールが公開されています。特にZabbix APIを活用したツールは豊富で、各種プログラミング言語向けのZabbix APIライブラリや、iPhone、Android向けのZabbix監視画面ビューアアプリなどがあります。
このようにZabbixを巡っては、Zabbixをよりよいものにすることを目的としたコミュニティベースの活動が非常に活発に行われています。Zabbixの利用においては、こういったサードパーティ製ツールの活用も有効な手段です。
HyClops for Zabbixとは
筆者らが開発したHyClops for Zabbix(以降「HyClops」と呼ぶ)も、そんな活動の1つです。パブリッククラウド環境(Amazon Web Serivices)および仮想環境(VMware vSphere)の監視を自動化するためのプラグインツールで、OSS(GPL ver.2)として公開しています。
第3回「DevOps実践に有用なZabbixの機能〜自動化機能で運用負荷削減」でも紹介したとおり、自動化に関するZabbixの基本機能を活用しても、効果的な監視運用環境が実現可能です。しかし、より管理の自動化を進めたい場合には、作り込みが必要となるなど、ややハードルが高くなる傾向にあります。
HyClopsはこうした背景を踏まえ、パブリッククラウドや仮想環境などを含むハイブリッドクラウド環境の運用管理者をターゲットに、これまで作りこまなければ実現できなかった部分を肩代わりし、管理者の作業負荷を減らす目的で開発されました。
代表的なパブリッククラウドサービスであるAmazon Web Servicesを利用する際のデザインパターン(CDP:Cloud Design Pattern)の1つに「http://aws.clouddesignpattern.org/index.php/CDP:Monitoring_Integrationパターン」があります。
これは、クラウド上のサービスを、監視ソフトウェアを利用して統合管理するパターンです。HyClopsは、Zabbixを利用してこのデザインパターンを実現するのに有効なツールだといえます。
HyClopsの機能紹介
HyClopsの初回リリース(ver.0.1.0)では、以下の機能を実現しています。
- EC2インスタンスおよびvSphere仮想マシン情報をZabbixに自動登録
- Zabbixエージェントレスでインスタンスの情報を自動監視(AWS APIおよびvSphere APIを利用)
- Zabbixダッシュボード拡張によるEC2インスタンス、vSphere仮想マシン情報の一覧表示
- Zabbixグローバルスクリプトを用いてインスタンスの起動/停止/再起動処理を実行
- AWS CloudWatch連携による課金情報監視
- GateOne-Zabbix連携によるZabbixダッシュボードからのSSH接続
- 自動登録されたEC2インスタンス、vSphere仮想マシン用ホストに対する監視テンプレートの自動割り当て
HyClopsは各環境の基本的な情報を、API(AWS API、vSphere API)を活用して収集し、その上のOSレイヤ以上の領域については、これまで通りZabbix AgentやSNMPなどを活用して監視する形態を取っています。そのため、各環境のインターフェイス情報の連携が可能なほか、Zabbixへの自動登録時にテンプレートを自動的に割り当てる機能などを備えています。
HyClopsのアーキテクチャ
HyClopsは、大きく分けて以下の3つのコンポーネントで構成されています。
- Zabbix Serverコンポーネント
- HyClops Serverメインコンポーネント
- GateOne Serverコンポーネント
これを図で示すと以下のとおりです。
HyClopsはZabbixのプラグインであるため、Zabbixの標準機能はそのまま利用できるように構成しています。また、Zabbixが本来備える監視機能の性能に影響を与えないよう、(2)や(3)のコンポーネントをZabbix Serverとは別のマシン上で動かすことも可能です。
Zabbix Serverコンポーネント
Zabbix Serverのダッシュボードの表示部分を一部改変し、VMwareの情報やAWSの情報をダッシュボード上で一目で分かるようにしています。
ダッシュボード上で、各仮想マシンの構成や現在の状態を見ることができます。
HyClops Serverメインコンポーネント
HyClopsのメイン処理を行う部分です。Zabbix Serverから定期的に送られてくる環境の監視リクエスト(外部チェックスクリプト[push_message.py]の定期実行による)を受け付け、キューに登録します。そして、キューに蓄積されたリクエストを順次、対象となる環境に対して実行します。
さらに、各環境から戻ってくるデータを基に、新たにホストを追加すべきどうか、あるいはホストが存在しなくなったのかといった判断処理を行い、Zabbix APIを利用してZabbix Serverに対する設定変更を自動化しています。
また、AWS APIやvSphere APIから取得できる監視結果情報(ハイパーバイザのリソース情報、仮想マシンの稼働情報、リソース情報、EC2インスタンスの稼働情報、構成情報など)に関しては、zabbix_sender(注1)を使ってZabbix Serverと連携しています。
注1:外部から特定のホストの特定のTrapperタイプのアイテムに対して監視結果をプッシュ通知する、Zabbixのユーティリティ機能
GateOne Serverコンポーネント
GateOneはWebブラウザ上でSSH接続をエミュレートするOSSのソフトウェアです。HyClopsでは、Zabbixに保存されているインターフェイス情報を基に、GateOneを経由して各環境に対するSSH接続を統合管理します。また、GateOneには鍵管理機能があり、公開鍵認証が必要なサーバに対するSSH接続も実現可能です。
Copyright © ITmedia, Inc. All Rights Reserved.