タイムリー開発を目指し、開発部門もシステムの稼働状況を常に把握する現場がある。障害に早く気付いて短時間で解決することで、本来の開発の時間を確保している。障害解決に役立つ情報を素早く収集する仕組みはツールで作れる。

オールアバウト
重大エラーの見逃しを防止
Fluentd、Elasticsearch、Kibana

 システム障害の発生時、いかに早く気付けるか――。障害を短時間で解決するには、第一に必要なポイントだ。対策として、メンバー全員にメールでアラートを通知している現場は多い。しかし、軽微なエラーまで含めてメールを送り、件数が多くなれば、重要なエラーの通知を見落としやすくなる。どんなエラーが多いのかといった傾向も把握しにくい。

 オールアバウトの寺門伸悟氏(システム部 開発4G マネジャー)らのチームは、DevOpsツールでこの問題を解決した。特に発生頻度が高いエラーを抽出し、ITチームで確実に共有・分析する仕組みを、2014年1月に作り上げた。寺門氏は「運用担当者だけでなく、開発担当者も重要なエラーを見逃さないようにし、障害の解決を早めるため」と狙いを語る。

収集・集計・視覚化ツールを活用

 この仕組みは、OSSのログ収集ツール、集計ツール、視覚化ツールを組み合わせたものだ(図1)。

図1●頻度の高いエラーを抽出・分析する仕組み
図1●頻度の高いエラーを抽出・分析する仕組み
ログの収集ツール、集計ツール、視覚化ツールを組み合わせて実現した
[画像のクリックで拡大表示]

 通常時、複数のアプリケーションサーバーのエラーログを8Mバイトごと、または1分置きに収集する。この処理には、ログ収集ツール「Fluentd」を使っている。

 続いて、Fluentdで収集したログを、プラグインを介してオランダのElasticsearchのログ集計ツール「Elasticsearch」と、視覚化ツール「Kibana」を搭載するサーバーに転送する。これらのツールで、GUIを使ってログを分析できるようにしている。この仕組みを活用することで、「同じメッセージを含むログを収集し、その件数を短時間で集計できる」(オールアバウト システム部 システムG 大原和人氏)。

 これにより、エラー発生件数の推移などを確認しながら、注意すべきエラーに対してサマリーを付けてチームメンバーにメールを送る、といった対応が取りやすい。また、緊急度、頻度とも低いエラーについては、メンバーには当面の間は通知しないという手が打てる。アラートのメールの数を絞り込めるようになり、重要なエラーの通知を見逃しにくくなった。

 寺門氏らのチームはこの仕組みを整備する以前も、性能監視ツールを使ってエラーが発生するたびに開発担当者にメールで通知し、エラーログを分析できるようにしていた。ただし、エラーの重要度を区別せずにすべて通知していたため、多いときに1日当たり数百通に上り、どのエラーが重要なのかを識別しにくかった。結果、運用担当者が手作業で重要なエラーを通知して初めて、ログの分析に取りかかるケースが大半だったという。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。