NTTドコモR&Dの技術ブログです。

【Splunk】開発者目線でトラブル分析を簡単にしてみた

はじめに

皆様こんにちは。NTTドコモ4年目社員の富塚です。 私は、サービスデザイン部に所属しており、主にサーバ開発に従事しています。 様々なシステムが利用する大きな基盤システムのサーバ開発であり、日々奮闘しながら社内一丸となり日々奮闘しております。

今回は、基盤システムならではの困りごとを解決すべく取り組んだ内容について記事を書いていきたいと思います。

チームの課題

私が開発しているサーバは情報を集約して保管し、必要に応じて対向サーバへ参照させる機能を具備しています。 そのため、どこか1か所でも通信が滞ったり、バグが発生すると様々な影響が発生してトラブルを引き起こします。 このように発生したトラブルを解決すべく、解析を進める中で大きな時間がかかってしまうことがチームの課題となっていました。 トラブルの発生についてわかりやすく表現するために、サーバ間の通信を道路、電文を車としてイメージ図を作ってみました!

イメージのように、サーバ間の通信は道路、電文は車を表しています。 本来、車はスムーズにサーバ間を通過し、対向先サーバに届くべきですが、トラブル(事故)が発生すると途端に渋滞し、正しく電文が流れなくなります。 これが、いくつものサーバでさらには複雑な経路となっているため、原因を特定することが難しいことが多くなります。

トラブルが発生すると、最終的に困るのはお客様であり、いち早く解決すべくトラブルの原因を突き止め解消することが重要です。 そのため、トラブルの原因となっている箇所を即座に見極めることができる環境を構築しました。

Splunkで渋滞情報掲示板作ってみた

今回、作成したのはいわば高速道路に表示されている渋滞情報の掲示板をイメージしました。 皆さんも1度は目にしたことがあると思いますが、SAやPAにある高速道路の掲示板は渋滞しているところが赤くなっていますよね。

あれを見て、一目でどこが渋滞している、どこで事故が起こっているのがわかると思います。 サーバ間の通信を道路とした場合、このようなものをSplunkで作れば、「いつ」「誰が」みても原因をすぐに特定することができます。

Splunkとはどのようなものなのか簡単に説明させていただきます。 Splunkは、あらゆるITシステムから生成されるマシンデータを収集し、シンプル&スピーディ&フレキシブルな「検索」「分析」「可視化」を実現するプラットフォームです。 このプラットフォームを使って、あらゆるサーバからの通信データをまとめ、画面として表示する機能を具備しました。 引用: www.scsk.jp

そして、Splunkで作り上げたものがこちらになります。

※一部加工しています。画像はイメージです。

ルートごとに閾値を決定し、閾値を超過したものは赤色に変更する画面になっています。 このように、どのルートでどの程度の電文が滞留(渋滞)しているのかを明確に把握することが可能となりました。

この画面ですと、左下の「52」という部分が滞留していることが、確認できます。 さらにこの画面は52をクリックすることができ、詳細を確認することを可能としました。

※一部加工しています。画像はイメージです。

このような形で詳細なルートの件数を確認することで原因特定の時間を早めることに成功しました。

まとめ

今回は、自ら開発しているサーバでトラブルが発生した場合の分析をSplunkを用いて簡単にした事例を紹介いたしました。 ごく一部とはなりますが、皆様の参考になれば幸いです。