2015年02月16日

株式会社サイバーエージェント様Zabbix導入事例 サイバーエージェントが求める「スピード感」をAPI連携による自動化で実現

Zabbix Japan LLC   http://www.zabbix.com/jp/

アバターサービスやスマートフォン展開など、インターネットの利用動向に合わせて進化してきたコミュニティサービス「Ameba」をはじめ、インターネット広告やスマートフォンゲーム、メディアなど、幅広くインターネット上の事業を展開しているサイバーエージェント。同社の主戦場であるインターネット市場では「時は金なり」だ。日々新たなアイデアが生まれ、投入されるこの業界において、他者に先んじて新たなサービスを展開できれば、それだけ多くのユーザーを獲得できる。逆に投入が遅れれば先を越され、利益を大きく失うことになりかねない。
サイバーエージェントでは、監視も含めたサーバー構築の自動化を進めることで、市場のニーズに合った素早いサービス実現に取り組んでいる。その中で大きな役割を果たしているソフトウェアのひとつが「Zabbix」だ。

■サーバーの構築だけでなく監視設定の自動化も

サイバーエージェントのアドテク本部は、アドテクノロジーに特化した部門横断型の組織だ。子会社も含めた多数のサービスやプロダクト向けに、Amazon Web Servicese(AWS)とOpenStackによるプライベートクラウドを組み合わせたハイブリッドクラウド環境をベースに、多数の広告サービスを提供している。
同本部の長谷川誠氏によると、この基盤に何よりも求められる要件が「スピード感」だという。「『新しいサービスを始めるので開発用サーバーを用意してほしい。なるべく早くほしい、まだできないの?』というリクエストに応えるに当たって、サーバーの構築作業はもちろん、監視項目の設定にもあまり時間をかけたくなかった」(同氏)。なるべく時間をかけず、必要なときに迅速にサーバーを用意するには何が必要だろうか——その答えとして同社が追求しているのが「自動化」だ。

サーバー構築および監視設定の自動化という目標を実現するため、サイバーエージェントではオープンソースソフトウェアの「Chef」を活用し、各種設定作業の自動化を実現している。そして、Chefを用いたサーバー構築に連動して、監視項目の設定も自動的に追加し、すぐ使えるようにするためのツールとして選んだのがZabbixだった。ChefとZabbixとをAPI経由で連携させることによって、サーバー構築に連動してZabbixエージェントをインストールし、さらにサーバーの種類に応じて必要な設定を流し込む仕組みを整えた。
「自動化を進めていくには、サーバー構築をなるべく手のかからない作業にしていく必要がある。その点、ディスカバリ機能を備え、監視の間隔や計算アイテムなど、柔軟な設定を全てAPI経由で流し込めるZabbixは、自動化と相性が非常によかった」(長谷川氏)。
この結果、人が目視で監視項目を一つ一つ確認し、設定を行うという手間を省くことができた。加えて、「人手で設定を行うと、どうしてもミスや設定漏れが発生する。自動化によって、全て同じレベルで監視を行えるようになったこともメリットだ」と長谷川氏は言う。
監視項目は、サーバーの種類や用途ごとにテンプレート化して管理しており、「使いやすくて助かっている」と長谷川氏。ただ、「運用し続けていくうちに監視項目が増えたり、変更が加わったりして、テンプレート自体のバージョン管理が必要になっている。今はテンプレートをエクスポートしてGitで管理しているが、テンプレート間の差分がすぐに分かる、diffのような仕組みがあればなおありがたい」と言う。

■秒単位で細かな監視が可能、アクションの設定も柔軟

元々オープンソースソフトウェアを積極的に活用してきたサイバーエージェントでは、以前から、各部署が独自にサーバーの監視にZabbixを用いていた。アドテク本部で実現した、Chefとの連携による自動監視の仕組みでは、Zabbix 2.2系はもちろん、2.4系も利用している。「Zabbixのよいところは後方互換がしっかりしていること。2.2系で作成した仕組みがそのまま2.4系でも使えるところも評価のポイントだ」(長谷川氏)
「APIを叩くところだけは作り込みが必要だったが、基本的には公式に配布されているrpmパッケージを入れるだけで済むため、導入作業は楽だった。監視対象の規模に応じてキャッシュ容量やメモリを増やすといった調整はしているが、基本的に手間をかけずにできている」(長谷川氏)。作り込みを行う際に参照したドキュメント類も「充実しすぎているほど」と評価する。
監視システム構築に当たって、同社ではNagiosやmunin、cactiといった他のオープンソースの監視ツールも検討したそうだ。「プロジェクトの監視の要件として、5秒ごとにモニタリングしたいという要望があったが、なかなかそれに見合うものがなかった。その点Zabbixは、細かく秒単位で見たいという要件にも合っていた」と長谷川氏は振り返る。
現在同社アドテク本部では、約30台のZabbix Serverを通じてサーバー群の監視を行っている。ZabbixServer1台当たりの監視対象は平均すると20〜30台程度。トリガー数は平均で約3000項目、アイテム数は平均約5000項目だが、多いケースではそれぞれ2万項目、6万項目に上るそうだ。1秒あたりの監視項目数は平均100項目というが、それでも「Zabbix自体のパフォーマンスは特に問題ない」と長谷川氏。
むしろ、バックエンドのデータベースサーバーのチューニングの方に労力を割いているという。
また、監視結果を受けて実行する「アクション」を柔軟に設定できる点も評価のポイントだという。監視項目がしきい値を超えるなど何らかの異常が発生した際には、電子メールでアラートを送信するだけでなく、チャットツールに情報を流したり、コマンドを実行させるといった処理を柔軟に行える。「社内ではChatworkやSlackといったチャットツールを使っているが、障害が起こったときとリカバリを行ったときにそれぞれ、監視内容をチャットに飛ばすようにしている」(長谷川氏)。
 細かなところでは、Javaアプリケーションのモニタリングや監視が行える「Java Management Extensions(JMX)」との連動が可能な点も評価している。「ZabbixではJMX経由でJavaアプリケーションのさまざまな値を取ってく ることができる。これを直接実現できるツールはおそらくほとんどなく、われわれとしては非常に助かっている」(長谷川氏)。

■Zabbixは「Infrastructure as a Codeの流れに沿ったツール」

このように自動化の一環としてZabbixを活用している長谷川氏だが、ちょっとした遊び心も出している。
Zabbixの管理用インターフェイスに用意されている「テーマ」に手を加え、緑を基調とした「Ameba風」に仕上げたそうだ。
今後は、プロダクトごとにあちこちに散らばっているZabbixの情報を一元的に把握できる仕組み作りに取り組んでいくという。「例えば、Zabbixで集計しておいた各サービスやプロダクトのレスポンスタイムをダッシュボード上に一覧表示し、今のレスポンスタイムやサーバーのアラート状況などを一目で把握できるようにしたい」(長谷川氏)。
また、監視対象に負荷をかけることなく、ミドルウェアからさまざまなデータを取得するためのツール「BlackBird」も独自に開発した。多数のネットワークコネクションを張ることなく、Zabbix Agentをインストールしていないミドルウェア、例えばクラウド上のコンポーネントからもデータを収集できる。BlackBirdはGitHub上でオープンソースとして公開されている( https://github.com/Vagrants/blackbird )。
「Blackbirdは、例えばAWSのRDSのようにZabbix Agentをインストールできない環境に対して複雑なモニタリングをしたい場合に相性がいい。また、ミドルウェアごとにプラグイン形式で追加可能な形にしている。
今後、さまざまなプラグインを公開していく予定だし、ぜひいろいろな方にもプラグインを作ってほしい」(長谷川氏)
インフラエンジニアとして多数のサーバーを構築、運用してきた長谷川氏は、自らの体験を踏まえ、「自動化の流れの中で、今後のインフラは、コードによって構築される『Infrastructure as a Code』になっていくだろう。どんどん新しいサービスが生まれてくる中、それらとインフラとをスクリプトで連携させなければいけない。従ってこれからのインフラエンジニアには、コードを作る、コードを理解する部分が必須になってくるだろう」と述べる。
そうした観点から見たZabbixは、「連携に必要なAPIが充実しており、ほぼ何でもできる。
Infrastructure as a Codeの流れに乗っている監視ツールと言えるのではないか」という。

■システム概要
Zabbixサーバー数: 約30台
冗長化: あり
マルチテナント監視: あり。オンプレミス及びAWS.
監視対象機器数: Zabbixサーバー1台あたり平均20〜30台、最大でZabbixサーバー1台あたり200〜250台
トリガー数: Zabbixサーバー1台あたり平均3,000、最大でZabbixサーバー1台あたり20,000
アイテム数: Zabbixサーバー1台あたり平均5,000、最大でZabbixサーバー1台あたり60,000

■株式会社サイバーエージェントについて
サイバーエージェントは、21世紀を代表する産業ともいえるインターネットにおいて事業を展開しています。常に大きな成長をし続ける「ベンチャー企業」であり続けると同時に、消費者や生活者に大きな影響を与え、「サイバーエージェントのサービスを使って育ってきた」と言われるような、【21世紀を代表する会社を創る】ことをビジョンとしています。

同社はインターネットというフィールドで、「Ameba事業」、「インターネット広告事業」、「スマートフォンゲーム事業」、「その他メディア事業」、「投資育成事業」の5つの事業を展開しており、インターネット総合サービス企業として、企業・インターネットユーザーに対し有益なサービスを提供しています

■Zabbixについて
Zabbixはネットワーク・サーバー・ネットワーク機器・サービス・その他のITリソースの監視・追跡を行うために開発されたエンタープライズクラスのオープンソースのモニタリングソリューションです。柔軟な通知メカニズムを備えているため、ユーザーはあらゆる種類のイベントについて電子メール、Jabber、およびSMSベースのアラートを設定できます。それによって管理者はサーバーやデバイスの問題を迅速に認識することができます。Zabbixは継続的に開発が行われ、新しいバージョンのリリースのたびに新機能追加とパフォーマンスの改善が行われています。

Zabbixモニタリングソリューションは金融・保険業、IT通信業、ヘルスケア、公共機関、小売業、エネルギー・化学産業などを含むあらゆる業界の中小企業や、大規模エンタープライズ環境で活発に使われています。ソフトウェアのダウンロード数は毎月3万を超え、世界中にいる5万人以上のメンバーがアクティブなコミュニティを形成しています。

■Zabbix社について
Zabbix SIAは2005年に設立されました。ラトビア共和国の首都リガにある本社ではソフトウェア開発を行っています。日本支社であるZabbix Japanは、東京にあります。Zabbix社の主力製品は、オープンソースで配布されるエンタープライズモニタリングソリューションのZabbixです。Zabbix社は技術およびコンサルタントサポート、Zabbixの導入、実装、カスタム開発のサービス、およびZabbixのプロフェッショナルトレーニングなど幅広い商用サービスを提供しています。ユーザーのニーズに対する柔軟なアプローチと、最高のサービスを手頃な価格で提供することに重点を置いています。Zabbix社には世界中に各地域を代表する75以上のパートナーがいます。

Webサイト: http://www.zabbix.com/jp/

*ZabbixはZabbix SIAのラトビアおよびその他の国における登録商標または商標です。

本リリースに関するお問い合わせ

Zabbix Japan LLC 
営業部 寺島 友美(てらしま ゆみ)
〒105-0021 東京都港区東新橋2-16-3 カーザベルソーレ8階
Tel: 03-4405-7338 / Fax: 03-6809-1686
E-Mail: sales@zabbix.com