Tech Sketch Bucket of Technical Chips by TIS Inc.

Zabbix3.0注目機能「通信暗号化」、「管理画面の改善」、「監視結果予測機能」紹介 ~Zabbix Conference 2015参加レポート~

Pocket

OSSの統合監視ソフトウェア「Zabbix」の国際カンファレンス「Zabbix Conference 2015」が北欧の国ラトビアの首都リガで9/11,12の2日間開催されました。このカンファレンスに参加し、Zabbix3.0の最新情報など聞いてきたのでその模様をお届けします。TISからは、TIS独自のZabbixに対する取り組みである"HyClops"に関して発表してきたので、その内容についても紹介します。

Zabbix Conferenceとは?

こちらの記事でも紹介されているように、Zabbixの開発元企業であるラトビアの首都リガにあるZabbix社主催で年次開催されている国際カンファレンスです。世界各国のZabbixユーザ、コミュニティメンバーなどが一同に会する場となっています。Zabbix社からの最新動向の紹介だけでなく、様々なユーザからの事例紹介、活用ソリューションなど多岐に渡った発表が行われます。本カンファレンスにTISからも参加し、TISでのZabbixに関する取組について発表してきました。TISからの参加は2012年に開催されたZabbix Conference 2012以来2度目となります。

最もみんなが気になるのはZabbixの最新動向

参加者全員が最も期待していたことは、Zabbix社から公式にアナウンスされる最新のZabbix開発状況です。次期長期間サポート版(LTS版)として公開が心待ちにされている現在開発中の"Zabbix3.0"に搭載予定の機能やその仕様の紹介が行われました。

Zabbix 3.0

Zabbix3.0についてZabbix社CEOのAlexei Vladishev氏やエンジニアのRihards Olups氏、Pavel Amosov氏より発表が行われました。当初のリリース予定から公開時期が少し延期になっていますが、3.0には非常に多くの機能が実装される予定となっています。大きな変更点として以下の機能が紹介されました。

  • Zabbixの各コンポーネント間(Server-Proxy,Server-Agent,Proxy-Agent)の暗号化・認証機能
  • Zabbix管理画面のデザイン変更
  • 監視結果の予測機能

公開時期等の明言はありませんでしたが、既にZabbix3.0のα版はリリースされているので公開時期も近いのではないでしょうか。

暗号化・認証機能

これまでZabbixの各要素間の通信は基本的に平文での通信でした。最近はクラウド上にZabbixを稼働させてインターネット経由で通信を行うケースも多くなっているなど監視処理の通信を暗号化したいという要望が高まっていました。そこで3.0ではこの機能をZabbixの標準機能として実現できるよう実装が入りました。単純に通信処理全てを暗号化するという機能ではなく、必要な箇所の通信だけを暗号化処理をできる機能になるとのことです。

Encryption_Authentication

TISセミナー発表資料より引用1

必要な箇所というのも、「このホストとの間の通信だけを暗号化する」といったホスト単位で選択できるだけでなく、「Zabbix ServerからZabbix Agentへのパッシブ型の監視だけ」や、逆に「Zabbix AgentからZabbix Serverへのアクティブ型の監視だけ」というように、より詳細に制御できる機能となるようです。これにより、例えば、ログの中に盗聴されては困るような情報が含まれていた時、Agentから送付されるログ監視の結果をZabbix Serverに集約する通信処理だけを暗号化し、通常のパッシブ型のリソース監視は暗号化しないといった具合に本当に暗号化が必要な部分だけに限定して実現することが可能となります。暗号化処理するには当然処理負荷がかかるのでこの機能は無駄を極力省きつつ要件を満たすためのものとして非常に有用ではないでしょうか。

Zabbix管理画面のデザイン変更

Zabbix3.0を使うとまず第一に『変わった!』と感じる点は管理画面のデザインかと思います。

全面的に管理画面のデザインが刷新され、以下の図のようになります。見た目は大きく変わっていますが、設定のやり方や監視結果の見方などユーザエクスペリエンスについて大きく変わったところは少なく、これまでのZabbixに慣れ親しんだ人なら特に違和感なく利用可能かと思います。

frontend

TISセミナー発表資料より引用1

しかし、内部の実装はMVCモデルでPHPのコードを書き換えるなど非常に大きく変わっており、ユーザがより画面をカスタマイズしやすい"クリア"なコードとなるようです。こういった点は今後の長期的な改良を見据えた上での準備段階の実装だと言えます。

監視結果の予測機能

個人的にはこの機能の実装の方向性にとても興味を持ちました。これまでZabbixは現状の監視結果や過去の監視結果を評価して異常が発生していないかを判定するということしかできませんでした。しかし、この機能により『今から数分、数時間、数日後にどういった状態になるか?』『こういった状態になるまでにあとどれぐらいの時間がかかるか?』といった予測をもとに通知やリモートコマンド実行できるようになります。

カンファレンスでのZabbix社からのこの機能に対する発表は簡単な紹介だけでしたが、Zabbix社のWikiページには実装予定の機能の詳細な仕様が既に公開されています。カンファレンスでの発表内容とこのページの内容を確認し、仕様をまとめると以下の通りです。

トリガーの関数および計算アイテムとして以下の2つが新たに実装されます。

  • forecast : 今からxx秒経過した後に監視結果の値がどういった値になるかを評価
  • timeleft : ある監視結果の値がxxに到達するまでにあとどれぐらいの時間がかかるかを評価

prediction

TISセミナー発表資料より引用1

これらの関数では以下の5パターンの近似式を用いて値の予測を行う仕様となっています。

  • 線形近似(linear)
  • 多項式近似(polynomial)←1次~6次まで選択可能
  • 対数近似(logarithmic)
  • 指数近似(exponential)
  • 累乗近似(power)

線形近似 線形近似のイメージ

多項式近似 多項式近似のイメージ

対数近似 対数近似のイメージ

指数近似 指数近似のイメージ

累乗近似 累乗近似のイメージ

例えば、forecastの関数であれば以下のようにトリガー関数を設定することで直近1日分(86400秒間)のデータを線形近似(linear)により評価して、今から1時間後(3600秒後)に監視結果がどのような値(value)になるかの予測値を算出することが可能となります。

関数設定例:

対象の監視アイテムがどのパターンで近似を描いて予測するのがいいのか(linearにするかlogarithmicにするかなど)については自身で判断しなければならないため、扱うには少し難しいところもありそうですが、ただ単に監視するだけでなく、『監視した結果をいかに効果的に活用するか』という観点のもと実装された機能であるので非常に興味深いのではないかと思います。

ユーザ事例や活用ソリューションなど

Zabbix社からのアナウンス以外には、世界各国のユーザ事例やソリューションの紹介、Zabbixで監視運用する上でのTips紹介など幅広いテーマでセッションが行われました。

例えば、ブラジルの大手放送局であるglobo.comさんの事例ではZabbixとその他様々なツール・サービスを効果的に活用し非常に大規模なシステム運用を効果的に行われている事例が紹介されました。

globo.comではマルチな環境をZabbixを使って統合運用

globo.comさんは各種のツールやサービスを使って効果的な運用実現に向けて非常にチャレンジングな取り組みをされています。6000ホスト、60000監視アイテムが登録されるような大規模な環境で、これまではCricketNagiosといったレガシーなツールを使って運用していたが、大規模になるにつれ対応が困難になってきたのでZabbixに移行したとのことです。移行するに当り、自動化や効果的な視覚化などに注力され、ツールやサービスを活用して独自に開発を行われています。

ServiceNowというサービスで管理している構成情報やサービスの稼働基盤として活用されているTsuruというPaaSの情報、ネットワークトポロジーの情報などをZabbixで集約しグラフィカルに表示できるツールを開発したり、

基盤として利用されているCloudStack環境の監視設定をZabbixで自動化できるツールを開発したりされています。特に、このZabbixでのクラウド環境の監視を自動化する処理についてはTISが開発したHyClops for Zabbixをベースにカスタマイズ実装されているようです。

この事例を聞いて、今後益々高度化する環境に対してはこのように様々なOSSやサービスを効果的に組み合わせて運用管理を実現するというアプローチが非常に重要だと改めて感じました。

TISからはHyClopsの取り組みを紹介

globo.comさんの環境でも活用されているHyClops for Zabbixですが、過去2012年のZabbix Conferenceにてその取り組みコンセプトを紹介しました。(参考:http://www.zabbix.com/conf2012_agenda.php)

その後、3年間でHyClops for Zabbixも含めどのようにすれば運用管理が効果的になるかを考えながら日々活動しています。そんな中で、ジョブと監視の高度な融合を目指し、ZabbixとJobSchedulerというジョブ管理OSSを連携させるツール"HyClops JobMonitoring"を開発したり、Zabbix分散環境監視(Proxy監視)設定の自動化ツールの開発など行ってきました。TISでは、これらの活動を集約してHyClopsを益々強化し、Zabbixを中心として様々なツールやサービスとの間を取り持つハブツールとして成長していければと考えています。

hyclops_concept

TISセミナー発表資料より引用1

発表で紹介した開発ツール

まとめ

Zabbix3.0は監視フレームワークとして益々有用な機能が整備されてきています。デザインの変更も含め今後の長期的な成長を見据えた改善が多数入ってきています。さらには監視データをいかに活用するかという視点での機能実装など今後の成長が期待できます。TISではZabbix社のパートナー企業の方々とともに、Zabbix3.0の機能検証を現在実施しております。Zabbixを確実に安心して活用いただけるよう今後も取り組んでいく予定です。

最後に、今回のカンファレンスの発表資料については全て以下のページにて公開されております。

一見の価値ありなものが多数ありますのでぜひ御覧ください。

Zabbix Conference 2015 アジェンダページ


  1. 2015/9/25開催:Zabbix Conference 2015@ラトビア最新速報!と、Zabbixだけじゃない、OSSを徹底活用した運用自動化の実現 
エンジニア採用中!私たちと一緒に働いてみませんか?