株式会社サイバーエージェント様導入事例

サイバーエージェントが求める「スピード感」をAPI連携による自動化で実現

Objective

新しいサービスを始める際に早く開発サーバーを構築や監視を出来る方法が必要だった

Requirements

新規にサーバーを追加した際に、自動的に監視対象を見つけ、柔軟かつ詳細に自動で設定ができる監視システム

Approach

Zabbixを使用することで、API、テンプレート機能やオートディスカバリー機能も利用可

自動化と相性がよいZabbixの長所を活かし、サーバー構築や監視設定を簡単に自動化

Outcome

30台以上のZabbixサーバー、20,000以上のトリガー、60,000以上のアイテムの効率的な監視

マルチテナント監視

プロセスを自動化することで、ミスや設定漏れを防止

アバターやスマートフォンなど、インターネットの利用動向に合わせて進化してきたコミュニティサービス「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を通じてサーバー群の監視を行っている。Zabbix Server 1台当たりの監視対象は平均すると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

CyberAgent Inc.

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

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

本社:
東京都渋谷区
設立:
1998年
従業員数:
1,498名
(2013年9月30日現在)
資本金:
7,203百万円
(2014年9月現在)
www.cyberagent.co.jp

監視ソリューションの活用事例をご紹介いただける場合は

質問事項にお答えくださいまたは、マーケティングチームまでお気軽にお問い合わせください。

完全無料、10分ほどで始められます

Zabbixダウンロード

Zabbixは真のオープンソースです。無制限かつコストゼロ。