Zabbix 総合ソリューション 概要

弊社では、Zabbix総合ソリューションとして、Zabbixを中核に各種オープンソース(Selenium,Redmine,SubVersion,Job Arranger for Zabbix)を組合せて、お客様の運用・管理コスト削減、運用負荷の軽減、運用の自動化、運用ミスの削減等を様々な目的を実現する為、低価格で安定した総合的な運用管理基盤を目指して提供しています。
今後もお客様の運用に貢献できるオープンソースを検証し、連携に必要な部分を開発して提供していきます。

  • 実際のブラウザを使用したWeb監視として、Selenium
  • チケット管理、インシデント管理としてRedmine
  • ジョブ管理、スケジュール管理としてJob Arranger for Zabbix etc...

Zabbixは、商用に開発されているオープンソース(OSS)なので、統合監視ソフトウェアとしては商用プロダクトと比較しても豊富な機能と高い品質を持っています。

Zabbix Solution 統合運用管理

連携ソリューション機能例

  • Zabbixにて検知したイベントをトリガーに、JobNet(ジョブ管理)を自動起動
    障害検知からの自動復旧、縮退運転構成制御、その他reboot処理では、できない細かい制御が可能
  • Zabbixにて検知したイベントをRedmineにチケットとして登録
    ロールベースのワークフローにてチケットを適切に管理
  • JobNet(ジョブ管理)からZabbixのItem,TriggerをOn/Off
    複数のカレンダーを持つことができるジョブ管理から、細かい制御が可能
    各種アプリケーション起動とItem,TriggerのOn/Offの順番を連動して制御
    アプリケーションの再起動時等、対象のItem,Triggerを自動的にOn/Off
  • RedmineのワークフローからJobNet(ジョブ管理)を自動起動
    ワークフローで承認されたJobNet(ジョブ管理)を起動可能
  • JobNet(ジョブ管理)からSVN(バージョン管理)へ自動登録・更新
  • SVN(バージョン管理)からCommitファイルを取り出し、JobNet(ジョブ管理)を利用して自動転送

※Item,Triggerの制御は、開発中。

Zabbix - Redmine インシデント管理 チケット管理

Zabbixには、簡易なイベント管理機能がついていますが、チケット(インシデント)として管理するためには、機能が不足しています。Redmineは、チケット(インシデント)を管理する為の柔軟で豊富な機能が備わっており、小規模から大規模なシステムまで様々な対応が可能です。
弊社では、ZabbixとRedmineを自動的に連携するソリューションをご提供しています。
さらに、Job Arranger for Zabbixと連携させれば自動復旧、自動データ収集等を加えた総合的な自動化を実現する事ができます。

弊社よりZabbixの保守を購入されている場合、連携ツールを「無償」でご利用およびサポートを受けることができます。

Redmine連携機能

Zabbixで、検知したイベント(障害)をRedmineに新規チケットとして自動的に登録する機能です。

Redmineは"Ruby on Rails framework"上で動作するオープンソース(OSS)のプロジェクト管理Webアプリケーションです。Redmineの豊富な管理機能を利用してチケット(インシデント)管理をする事が可能になります。

  • ZabbixのActionから連携し、Zabbixが提供している豊富なマクロ機能を利用して、ITEM,TRIGGER,EVENT,その他のデータをRedmineのチケットに登録できます。
  • 登録するProjectを指定することができ、障害が発生したホスト、アプリケーションなどに合わせてチケットの登録先プロジェクトを変更することができます。
  • 登録時のアサイン担当者を指定することができ、障害が発生した曜日、時間に合わせて初期登録の担当者を変更することができます。

また、登録したTicket番号をZabbixのコメントに自動反映することも可能です。
チケット(インシデント)管理としてRedmineで利用できる主な機能
※RedmineのProjectを各専門のサポートチームとして考えます。

Zabbixで検知した問題をRedmineへ新規チケットとして自動登録し、Closeするまでのチケットの遷移をイメージ化したものです。

  • Ticketのステータス管理によるワークフロー制御
  • Ticket種別毎に異なるワークフロー設定
  • 重複ユーザグループ設定
  • Project(管理システム)単位での重複ユーザ権限設定および権限に基づくワークフロー制御
  • Ticketの処理時間計測
  • 複数Ticketを関連Ticketとしての紐付け登録
  • 独自Fieldの追加
  • TicketをCopyして、障害対応とBug Fixを異なるTicketとして登録
  • Ticketを子Projectまたは、他のProjectへ移動可能

Zabbix Selenium Web監視 拡張機能

Selenium

Seleniumは、オープンソースのWeb Testing Toolです。

Zabbixの標準機能にもWeb監視機能は含まれており、簡単な監視であれば十分ですが、libcurlを使用しているため、最近のコンテンツでよく利用されている、Javascript,Ajax,XMLHttpRequest等は対応できません。 また、実際のブラウザを使用していませんので、サービスレベルでの監視としては若干の不安が残ります。

Seleniumは、IE,Firefox等のBrowserを使用して監視を行うため、ZabbixのWeb監視機能では実現できないJavascript,Ajax,XMLHttpRequest等を前提として動作する、Web,http,URL監視,サイト(Site)の監視が可能になります。

ZabbixとSeleniumを接続する事により、Zabbixで一元監視をすることが可能になります。Seleniumの機能そのままですので、Selenium自体で実現できないものは「対象外」です。弊社でも、ZabbixとSeleniumを使用して、Webサイトの監視を行っています。
下記は、Zabbix Selenium間の処理の流れを図にしたものです。

Zabbix Selenium Web監視

設定方法

  1. Firefoxに、Selenium IDEをアドオンインストールする。
  2. Firefoxから、Selenium IDEを起動する。(Firefoxの[ツール]メニューの[Selenium IDE]を選択する)

次に、チェックするURLへのWebブラウザの操作およびチェック内容を記録します。

  1. テストするページ遷移と同様にFirefoxで表示したWebページのリンクやボタンをクリックするとSelenium IDEが操作を記録します。POSTデータだから、GETだから、次のURLは・・・などを考える必要はありません。
  2. チェック内容をアサーションとして追加します。URLのチェックとか、表示データがあっているかなどアサーションとして追加します。
  3. 操作を行い、テストケースを作成終了後、テストケースを保存します。

最後にITEMをZabbixに登録し、テストケースをSeleniumを稼動させるサーバに配置して終了です。

Zabbix - Redmine - Job Arranger 自動復旧

Zabbixでは、障害検知時にActionを通して外部プログラムを起動する事が出来ます。この機能を利用して、自動復旧のScriptを実行する事が出来ますが、複数のプログラムの復旧処理、複数のOSと連携する復旧処理などは、Scriptを作成すること自体が難しくなります。
Zabbix と Job Arranger for Zabbixを利用する事により、下記に示すような自動復旧処理が簡単に実現できます。

image-1

クリックで拡大

  • 既存JobNetを利用した復旧処理
  • 復旧処理実行中の監視抑止
    Item,Trigger,Host操作用アイコンを開発中
  • 複数のプログラムと連携した復旧処理
  • 複数のOSと連携した復旧処理
  • クラスタソフトウェアと連携した復旧処理
  • エスカレーションレベルに対応した復旧処理

Zabbix - 承認フロー付ジョブ実行

本番システムで障害等が発生した場合、復旧、情報収集などで既存のJobnetを実行したい場合などがあります。セキュリティの事を考慮すると担当者が独自の判断で、本番システムへアクセスするのは好ましくありません。
Redmineのワークフロー処理とJob Arranger for Zabbixを連携させる事で、担当者が実行したいJobNetをチケットとして起票し管理者が承認する事が可能になります。

image-2

クリックで拡大

  • 既存JobNetを利用した復旧処理
  • 既存JobNetを利用した情報収集
  • 踏み台サーバへのアクセス許可
  • クラスタソフトウェアのActive/Standbyの切替

Zabbix 承認フロー付コンテンツ管理

オープンソースを利用して、コンテンツ(ファイル、プログラム)をバージョン管理する場合、SubVersionなどが良く利用されます。しかし、単純にSubVersionなどを利用して、ファイルを更新(submit)すると各担当者の技術、意識レベルの差により格納されるファイルのレベルが異なります。
本ソリューションは、バージョン管理システムにワークフロー(承認フロー)を機能を付加する物です。

image-3

クリックで拡大

  • コンテンツの格納(更新)時に管理者の承認を付加する事が出来ます。
  • コンテンツの公開・配布時に管理者の承認を付加する事が出来ます。

Zabbix - Mailサービス監視

Mailシステムをサービスレベルで監視するソリューションです。

image-4

クリックで拡大

実際に監視用メールを配信するので、サービスレベルでの監視が可能になります。
  • プロセスは動いているが、サービスとしては利用できない状態になっているなどの検知が可能になります。
  • 配信にかかる時間をチェックできます。

監視対象メールのフォーマット、添付ファイルの確認まで可能になります。

  • 特定の業務用メールが指定されているフォーマットに合っているか、添付ファイルの有無などのチェックが可能になります。
  • メールヘッダー情報、文字コードなどのチェックが可能になります。

Zabbix - 通知連携

検知した障害を利用者に通知する手段として、Zabbixではe-mail,wavファイルによる鳴動などを標準で用意しています。弊社では他の通知、連携手段として汎用プログラムを用意しており、様々な連携手段を容易に提供する事が可能です。
これにより他の監視システム、管理システム、Patliteなど色々な連携が可能となります。

image-5

クリックで拡大

障害検知時に色々な通知ソリューションの実装実績があります。
  • snmp , rshプロトコルを利用したPatlite鳴動・停止
  • XML,JSONを利用した他システムとの連携
  • REST APIを利用した他システムとの連携