SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2016】セッションレポート

【デブサミ2016】18-B-2レポート
データ分析で始めるサービス改善最初の一歩


  • X ポスト
  • このエントリーをはてなブックマークに追加

 ログデータの可視化・分析周りのライブラリが充実してきたことで、日常のサービス運用で発生するユーザーのアクセス記録やサーバーログをリアルタイムで分析し、サービス開発や運用の指針とすることが一般的になってきています。2016年2月18日に目黒雅叙園にて開催された「Developers Summit 2016」では、インターネットイニシアティブ プラットフォーム本部プラットフォームサービス2部分散システム技術課の石原翔真氏が、自社のサービスである「IIJ GIOストレージ&アナリシスサービス」(S3互換のストレージとHiveによる解析機能を提供)について、運用に際して直面した課題・そして課題をいかにして改善解決の方向へ持っていったのか、改善にあたってはどのようなツールやサービスを用いたのか、という点について発表を行いました。本記事ではそのセッション内容をレポートします。

  • X ポスト
  • このエントリーをはてなブックマークに追加

これまでの運用と直面していた課題

 はじめに、石原氏は今回のセッションテーマの題材となったサービスの大まかな構成図を示し、概要の説明を行いました。構成図は以下の内容となります。このサービスは解析ツールに自社サービス+αの形でRやElasticsearch、FlumeといったOSSを活用・併用しています。

 サービスの現状として石原氏が掲げたポイントは2点。障害検知を元にした監視については監視基盤として社内共通のものを用意したり、サーバ監視ツールのmuninを導入したりなどの対策を行っていました。しかしながらこの環境は"単体の"障害を検知できていたものの、障害の全体像を把握するには至らない環境でした。そしてもう1点は自動化に関するもの。テスト自動化の仕組みとしては稼働しているものがあったのですが、ユニットテストや結合テストが中心の構成だったため、定常的なパフォーマンス計測については手薄な部分がありました。

 この2点のポイントを踏まえて石原氏は「"サービスの全体傾向をつかむ"という部分ができていなかった。まずログを収集・分析することで改善・問題解決への実現を目指した」と現状認識からのアクション実践へと移ります。

インターネットイニシアティブ 石原翔真氏
インターネットイニシアティブ 石原翔真氏

「ログ収集と可視化」の取り組み内容

 1つめのアクションとして行った「ログ収集と可視化」では、オープンソースを活用。ログ収集をFlumeで行い、Elasticsearchに収集したログを蓄積し、蓄積したログの可視化にKibanaを選択することでアクションに取り組みました。この仕組みで「リクエスト単位での利用傾向を確認する」というのが1つのゴールとなり、必要なプラグインの設定等を行い、下記画像のような構成ができ上がりました。

 しかし運用を続けていくと、いくつかの問題点が見えてきます。当該環境ではログの出力量が多く(1日あたり20GB)、そのまま長期間保存を続けて行くと"容量的に厳しい"状況となることが分かります。また、出力されているログレベルや内容がまちまちだったこともあり、有用なログを選別していくことが困難であることも分かりました。

 この問題については、収集するログをApacheアクセスログのみとすることで大幅に削減。サイバーエージェント社の事例を参考に、FlumeにEsperを組み込むことで対応を行いました。Esperは複合イベント処理(CEP:Complex Event Processing)が可能なJavaベースのオープンソースで、SQLライクなイベントデータの操作を可能とします。Esperの機能を使って必要な集計値などを割り出し、Elasticsearchには必要な値のみを投入することでログの量を大幅に削減することができました。また、Elasticsearchに投入するデータについてはKibanaで可視化する際の設定を踏まえて可視化・項目選択の試行錯誤を繰り返し、有用な可視化対象項目の選定を行いました。

 この取り組みによって、「障害の全体像がわからない」「需要予測がしづらい」といった課題が解決、アクセス傾向も掴める様になったと石原氏は振り返りました。更には、ElasticsearchやKibanaを使った可視化は殊の外簡単ではあるものの、何を集めてどう可視化するのかというポイントを踏まえたデータの判別を行わないと同種の問題に突き当たることになる、という反省点にも併せて言及しました。

次のページ
「解析」の取り組み内容

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2016】セッションレポート連載記事一覧

もっと読む

この記事の著者

しんや(シンヤ)

2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。2013年05月『出張ブロガー』を経て2013年08月にクラスメソッド株式会社へ転職。現在は業務(AWS及びその周辺技術を扱う)の...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9263 2016/03/08 18:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング