ソフトバンクについて
「SoftBank」「Y!mobile」「LINEMO」の各ブランドの移動体通信サービス、「SoftBank Air」「SoftBank 光」などインターネット通信サービスなどを手掛ける、日本有数の大手通信事業者。近年では、コア事業である通信事業のさらなる成長を図ると同時に、5G、AI、IoT、ビッグデータを駆使した新規事業の創出や拡大を目指す「Beyond Carrier戦略」に取り組んでいる。
複数あった性能分析・ログ集約システムを、 Elastic Stackベースのシステムに一元化
日本有数の大手通信事業者であるソフトバンクでは、そのサービスを支えるサーバも膨大な数にのぼる。システム数は700~800ほど、ノード数は開発/商用含め約2万を超える。この基盤全体について、サーバの設計や構築、管理、性能監視などを担当するのが、約100名ほどのITインフラ統括部だ。近年ではCI/CD(継続的インテグレーション/継続的デプロイ)や、サーバ構築自動化などの基盤構築にも取り組み、自社ビジネスの加速を図っている。
こうした同社のシステム基盤における性能の分析や監視については、かつて複数のシステムが存在していた。
「かつて社内で使われていた性能分析やログ集約のシステムは複数ありましたが、それぞれ異なる経緯で個別に開発され、運用・メンテナンスが行われていました。それらは連携しておらず、重複する機能を持ったシステムが複数あったので、ユーザビリティが低い上に、コストも重複して発生していました。また、ユーザー部門が独自に開発したものの、メンテナンスが行き届いていないものもありました」と、コーポレートIT本部 ITインフラ統括部のKim Dasol氏は説明する。
そこでITインフラ統括部では、性能分析・ログ集約のシステムを集約し一元化することで課題を解消しようと、数年前からElastic Stackを利用したログ分析プラットフォームの設計・開発に取り組んできた。ElasticsearchやKibanaは複数の既存システムで使われており、その有効性が認知されていたこと、インターネット上のナレッジも豊富な上にElasticによるサポートが期待できることなどが、採用の理由だ。
Elastic Stackはナレッジが豊富で、やりたいことをより簡単に実現できるのがメリットです。これにより数百、数千台ものサーバのログを集約し、システム監視の効率化ができるようになりました。また、システムごとの固有ログを用いて、システムの性能分析や障害検知などにも活用することができています
Kibanaをラッピングし、画面を作り込むことで、容易に使えるシステムを作成
性能分析システムの開発は、メンバーが入れ替わりつつ数年越しのプロジェクトとして進められ、現在のメンバーになったのは2018年頃のことだった。その一人、ITクラウドチームの岩脇氏は、現状の性能分析システム「APOLLON」について、以下のように説明する。
「APOLLONはElastic Stackを活用し、障害の早期検知や障害時の性能分析などに役立てるためのシステムです。背後には、対象となるシステムからLogstashやBeats、その他のツールでデータを収集してElasticsearchに格納し、必要なデータをKibanaのVisualize/Dashboardで可視化するまでの環境を構築してあり、APOLLONはそのKibanaの画面をラッピングしたような形となっています。APOLLONが内部的にクエリを実行して、KibanaのVisualizeやDashboardの画面を呼び出す仕組みです。APOLLONで呼び出す画面は我々があらかじめ作り込んでいるため、ユーザーは必要な情報をAPOLLONのGUI上で選ぶだけで見ることができます。例えば、まだCanvasがなかった頃には、閾値を設定すると青/黄/赤の信号で表示するような仕組みも作り込みました。社内システムや利用する組織ごとにホストをグループ化して表示するといった機能もあり、そのグループに合わせて信号機表示の画面も自動生成されます。この画面は、近日中にCanvasで置き換える計画です」
APOLLONには、新たに構築したサーバの情報を収集することも容易に行える配慮が盛り込まれているとKim氏は話す。
「サーバを構築した際には、その構成情報を登録したり必要最低限のメトリックを収集するなどすれば、あとは必要な情報を自動で収集できます。立ち上げた翌日にもなれば情報が入ってきているため、APOLLONで表示することが可能です」(Kim氏)
Elastic Stackの豊富なナレッジやElasticのサポートがAPOLLONの改良にも役立つ
APOLLONは本格的にリリースされた後、段階的に機能改良を行いつつ、既存ツールを順次置き換えてきた。
「APOLLONでは数百、数千台ものサーバのログを集約し、システム監視の効率化ができるようになりました。また、システムごとの固有ログを用いて、システムの性能分析や障害検知などにも活用することができています。これによって、以前より障害の検知が迅速になり、予防も可能になりました。Elastic Stackはナレッジが豊富なので、APOLLONの機能改良をする際にも、より簡単に実現できるのもメリットですね。例えばBeatsの導入や設定なども、ネット上にある豊富なナレッジを活用することで、手軽にできるようになっています。プラグインも数多く用意されているので、新しいテクノロジーに対応するのも容易です。やはりオープンソースのソフトウェアは、色々な分野のプロフェッショナルが関わって作られているだけあって、新しいことへの対応も早いのが助かります」(Kim氏)
APOLLONの開発には、ネット上のナレッジだけでなく、Elasticのサポートも役立っているという。
「Elasticのサポートは充実しているなと実感します。Elasticの日本法人がサポートに力を入れているのでしょう、他社より親切に回答してくれる印象があります。おかげで我々も、APOLLONを安心してユーザーに提供できるのだと思います」(岩脇氏)
社内のAPOLLONユーザーに対しては、プロジェクトメンバーがドキュメントなど様々な情報を提供、社内ユーザーのAPOLLON活用事例も共有しているという。APOLLONでは既存ツールより幅広い範囲を可視化できるようになったことから、ユーザーにも好評だ。
「提供側が思っていた以上に利用者側の反応が良いですね。リアルタイムの障害検知や性能分析、それらに関するレポートなどの機能が助かる、と言われますし、最近では『なくなったら困る』といった声も聞かれました」(Kim氏)
Elasticsearchクラスタ自体も大規模、その安定稼働に尽力する
ソフトバンクのITインフラ統括部では、今後もAPOLLONの機能改良を進めていく計画だ。
「Elastic Stackに関する部分でいえば、例えばMachine LearningやWatcherといった新機能の活用、それからセキュリティ面での活用にも取り組んでいきたいですね。また、APOLLONの利用規模拡大に伴ってデータ量もますます増えており、Elasticsearchのクラスタ規模も大きなものとなっているので、そのクラスタ自体を安定稼働させていくための監視などを強化させていきたいと考えています」とKim氏は語る。
インタビュー時点で、APOLLONが収集しているログおよび性能情報は78種類以上にも及ぶ。しかも開発/商用含め約20,000ノードを対象としているだけあって、1日あたりの収集データ量はプライマリだけで517GB、レプリカも合わせると1TBにもなるという。それを格納するElasticsearchデータノードは21ノードあり、保存するログをHot/Warm/Coldの3階層、各7ノードで管理しているとのことだ。
ソフトバンク社内では、APOLLON以外にもElastic Stackが活用されている。例えば、Elastic APMをアプリケーションの開発部署がチューニングのために利用するといったケースだ。Kim氏はElasticと連携を取り、そういったElastic Stack活用の社内向けアドバイスやコンサルテーションなども担当している。