elastic stackを用いたシステム障害ログ解析 効率化への取り組み · elastic...

4
NTT技術ジャーナル 2017.12 37 IoT/AI/SDx時代を支えるOSSへの取り組み システム障害ログ解析効率化の ねらい システム障害発生時のシステム障害 ログ解析作業では,当該システムのア プリケーションのログだけでなく, OS ・ 他関連アプリケーション ・ デー タベースなどのログ解析も必要となり ます.取り扱うログはそれぞれ独自の フォーマットでさまざまな情報を含ん でいます.そのうえ,それぞれのログ は数メガバイト(数千行)から数十ギ ガバイト(数万行)の分量があるため, それらから必要な情報を抜き出し,ロ グどうしを関連付けて解析する作業 が,ログ可視化 ・ 解析の工程で発生し ます.従来の手法では,これらの作業 は手作業で行われており,表計算ソフ トを用いた集計などを含め,多くの時 間と工数が掛かっていました(図1 ). 実際,NTTコムウェアで取り扱っ た,あるシステム障害では,このログ 可視化 ・ 解析作業がシステム障害ログ 解析作業全体の42%を占めており(2 ),システム障害が発生してから回 復するまでの時間を短縮するうえで, 当該作業の効率化を実現することは大 きな課題の 1 つでした.そこで,シス テム障害ログ解析作業の中でも,特に ログ可視化 ・ 解析作業を効率化するこ とで,全体の作業時間を削減する取り 組みを実施しています. ログ可視化 ・ 解析作業効率化への 取り組み 本取り組みでは,Elastic Stackを用 いた効率化手法の整備を行っています. ログ解析 ElasticStack メトリクス分析 従来のログ可視化・分析手順 異常解消を確認した場合 異常が認められる場合 ②手作業で必要な 個所を絞り込み トラブル 発生 ログ収集 ログ可視化 解析 原因解析 対処案 検討 対処案実施 正常性確認 回復 ①分析観点に応じて 手作業でログを選択 ××時間 ××時間 ××時間 ③表計算ソフトで 集計 OS アプリケー ション データ ベース 図 1  従来のログ解析作業 ログ収集 6% 対処案実施・ 正常性確認 10% ログ可視化・ 解析 42% 原因解析 21% 対処案検討 21% 図 2  システム障害時の各作業の割合 ElasticStackを用いたシステム障害ログ解析 効率化への取り組み システム障害発生時の解析作業では,さまざまなフォーマットや情報を 含むログの収集作業と,収集したログから必要な情報を抜き出し,必要な 項目を関連付けた解析を行う作業が重要となります.これらの作業には多 くの手間が掛かるため,NTTコムウェアではElastic Stackを活用した当該作 業の時間短縮・簡易化に取り組んでいます.本稿では,その詳細と今後の 展開について紹介します. /上 あげつま かみむら けんいち /末 すえなが やすまさ たけばやし /山 やました かつゆき NTTコムウェア

Upload: others

Post on 08-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

NTT技術ジャーナル 2017.12 37

特集

IoT/AI/SDx時代を支えるOSSへの取り組み

システム障害ログ解析効率化の� �ねらい

システム障害発生時のシステム障害ログ解析作業では,当該システムのアプリケーションのログだけでなく,OS ・ 他関連アプリケーション ・ データベースなどのログ解析も必要となります.取り扱うログはそれぞれ独自のフォーマットでさまざまな情報を含んでいます.そのうえ,それぞれのログ

は数メガバイト(数千行)から数十ギガバイト(数万行)の分量があるため,それらから必要な情報を抜き出し,ログどうしを関連付けて解析する作業が,ログ可視化 ・ 解析の工程で発生します.従来の手法では,これらの作業は手作業で行われており,表計算ソフトを用いた集計などを含め,多くの時間と工数が掛かっていました(図 1 ).

実際, NTTコムウェアで取り扱った,あるシステム障害では,このログ

可視化 ・ 解析作業がシステム障害ログ解析作業全体の42%を占めており(図2 ),システム障害が発生してから回復するまでの時間を短縮するうえで,当該作業の効率化を実現することは大きな課題の 1 つでした.そこで,システム障害ログ解析作業の中でも,特にログ可視化 ・ 解析作業を効率化することで,全体の作業時間を削減する取り組みを実施しています.

ログ可視化 ・解析作業効率化への取り組み

本取り組みでは,Elastic Stackを用いた効率化手法の整備を行っています.

ログ解析 Elastic�Stack メトリクス分析

従来のログ可視化・分析手順

異常解消を確認した場合

異常が認められる場合

②手作業で必要な個所を絞り込み

トラブル発生

ログ収集 ログ可視化解析 原因解析 対処案

検討対処案実施正常性確認

回復

①分析観点に応じて手作業でログを選択

××時間 ××時間 ××時間

③表計算ソフトで集計

OS アプリケーション

データベース

図 1  従来のログ解析作業

ログ収集6 %

対処案実施・正常性確認10%

ログ可視化・解析42%

原因解析21%

対処案検討21%

図 2  システム障害時の各作業の割合

Elastic�Stackを用いたシステム障害ログ解析効率化への取り組み

システム障害発生時の解析作業では,さまざまなフォーマットや情報を含むログの収集作業と,収集したログから必要な情報を抜き出し,必要な項目を関連付けた解析を行う作業が重要となります.これらの作業には多くの手間が掛かるため,NTTコムウェアではElastic Stackを活用した当該作業の時間短縮・簡易化に取り組んでいます.本稿では,その詳細と今後の展開について紹介します.

前ま え だ

田 奈な

緒お

/上あげつま

妻 宜の り と

上かみむら

村 健けんいち

一 /末すえなが

永 恭やすまさ

竹たけばやし

林 信し ん や

哉 /山やました

下 克かつゆき

NTTコムウェア

NTT技術ジャーナル 2017.1238

IoT/AI/SDx時代を支えるOSSへの取り組み

■Elastic StackとはElastic Stackとは,Elasticsearch社(1)

が開発を主導するオープンソースソフトウェア(OSS)で ある,Beats* 1,Logstash* 2,Elasticsearch* 3,およびKibana* 4の組合せを示し,大量データの収集 ・ 蓄積 ・ 可視化技術の基盤ツールとして注目されているものの 1 つです.Elastic Stackの一般的な構成を図 3 に示します.

Elastic Stackに含まれるそれぞれのツールにログ収集(Beats),ログ解析

(Logstash),ログ蓄積(Elasticsearch),可視化(Kibana)といった役割があり,これらを組み合わせることで時系列グラフ ・ 円グラフや統計情報などログの

高度な可視化を実現しています.■Elastic Stackの選定理由

大量データの収集 ・ 蓄積 ・ 可視化技術の基盤ツールはElastic Stack以外にも多くのツールがリリースされています.その中から,本取り組みでは以下の 3 つの要件を実現できる最適なツールを選択する必要がありました.

① フォーマットの異なる複数のログの収集 ・ 解析

② 蓄積したログの特定項目の関連付けと複数ログの同時可視化

③ 継続したログの変化の確認①②は,前述のとおり,ログ収集 ・

解析作業工程の中で必要な作業に含まれているため必須要件です.

また,迅速なシステム障害への対応を可能とするためには,最新のログをリアルタイムに収集 ・ 解析し,可視化する必要があるため,③も必須要件としています.

類似の基盤ツールの比較調査の結果,Elastic Stackは機能面で 3 つの要件の実現が容易であり,なおかつ開発コミュニティ活動が活発で,ツールとしての将来性も確認できたため,本ツールを採用しました.またコスト面でも,Elastic StackはOSSであるため,ライセンス費などの初期導入コストが掛からない点も本ツールを採用した理由の 1 つとなっています.■ログ可視化 ・ 解析効率化手法

NTTコムウェアでは,ログ可視化 ・解析作業の効率化を実現する手法について,「障害発生時のログ解析手順書」としてドキュメントを整備しています.故障解析対応者,アプリケーション開発者,および運用管理者が本ドキュメントを活用することで,Elastic Stackを用いたOS ・ アプリケーション ・ データベースのログ可視化と被疑個所の切り分け作業時間の短縮化を図っています.

アプリケーション

データベース

OS各種ログ・データ

※表示例(Kibana 5.0)

ログ投入

ログ読み込み

ログ解析

ログ蓄積

ログ収集

可視化

可視化データ取得

※「Elasticsearch」,「Logstash」および「Kibana」はElasticsearch BVの米国およびその他の国の登録商標です.「Beats」は Elasticsearch BVの商標です.(https://www.elastic.co/jp/)

Elastic Stack

図 3  Elastic Stackの一般的な構成

*1 Beats:Elasticsearch/Logstashに情報を送信するデータシッパーです.サーバに常駐し,リソース情報やログファイルを取得してリアルタイムに転送できます.

*2 Logstash:ログを取り込み,解析 ・ 変換 し,指定した場所に適切な形式で出力できるログ収集ツールです.

*3 Elasticsearch:Apache Lucene検索エンジンが動作する分散型の全文検索サーバです.

*4 Kibana:Elasticsearchに投入されたデータを可視化するツールです.

NTT技術ジャーナル 2017.12 39

特集

本ドキュメントは,以下の 3 項目について記載しています.

(1) Beats,Logstash,Elasticsearch,Kibanaのインストール手順

本手法の利用にはElastic Stackに含まれる各ツールのインストールなど,環境構築作業が必要となります.そのため,本項目では,当該作業の簡易化を目的として,各種ツールのインストール手順について記載しています.

(2) 各種ログの登録方法および可視化 ・ 解析手順

本項目では,OS ・アプリケーション・データベースのログをそれぞれBeatsやLogstashで取り込み,Elasticsearchに蓄積し,Kibanaで可視化(図 ₄ )する手順についてまとめています.加えて,本ドキュメントに記載されている設定

は,NTT OSSセンタが提供しているOSSVERT®(OSs Suites VERified Technically)*₅を前提とした内容となっています.そのため,OSSVERT®に準拠した設定を施してあるシステムでは,本ドキュメントに記載してある設定をそのまま流用することができます.

(3) Elasticsearchに格納されているデータのバックアップおよびリストア手順

この 2 つの手順を踏まえて環境を構築しログ可視化 ・ 解析作業を行い続けた場合,蓄積され続けたログの肥大化によるストレージの圧迫の回避や,ログの格納先ディスクの障害発生に備え た 復 旧 も 重 要 で す.そ の た め,Elasticsearchに 蓄 積 さ れ た ロ グ のバックアップ方法とログのリストア方

法の手順について,本項目では記載しています.■Elastic Stackを用いたシステム障

害ログ解析効率化手法による成果前述の「障害発生時のログ解析手順

書」を社内に展開中のフェーズで,図3 と同様の構成で構築したElastic Stackを用いたシステム障害ログ解析を推進しています.本手法を用いることで,難解なシステム障害ログ解析作業のコストを平均で約20分の 1 に削減できることを確認しています.その一例として,ここでは,システム障害ログ解析の作業時間削減を達成した事例を紹介します.あるシステムで,頻繁にCPU使用率が高騰する事象が発生するというシステム障害が発生していました.そこで,本手法を用いたシステム障害ログ解析を実施したところ,運用者が不必要に投入したUNIXコマンドがCPU使用率高騰の原因であることが判明しました.仮に,従来手法を用いてシステム障害ログ解析を実施していた場合,当該作業で取り扱うログサイズが数ギガバイト規模と多量であったことから,正常性確認までに10営業日を費やす作業が必要でした.しかしながら,本手法を用いたことで,当該作業を約 4 時間で完了させることができ,迅速なトラブル解決に寄与しました.

図 4  Kibanaでの可視化例*5 OSSVERT:NTT OSSセンタが提供する

OSSの利用を支援するためのノウハウです.

NTT技術ジャーナル 2017.1240

IoT/AI/SDx時代を支えるOSSへの取り組み

■その他の整備ナレッジNTTコムウェアでは,「障害発生時

のログ解析手順書」以外にも,Elastic Stackの導入 ・ 検討を行うにあたり,必要なナレッジをドキュメントとして整備し,社内展開しています.その一部について,それぞれ内容を紹介します.

(1) Elastic Stackサイジング検証レポート/Elastic Stackサイジングガイド

取り扱うログが膨大な,あるいは肥大化しやすい商用システムにおいて,Elastic Stackを用いたログ解析の仕組みを導入する際にはその方式設計やサイジングが非常に重要なポイントとなります.そのため,NTTコムウェアではサイジング検証を実施し,その結果を「Elastic Stackサイジング検証レポート/Elastic Stackサイジングガイド」としてドキュメント化しています.このドキュメントでは,Elastic Stackの基礎性能や性能スケールの様子など,ログ解析の仕組みを構築する際に調達すべきハードウェア環境の指針などについてまとめています.

(2) Elastic Stack/Splunk比較調査報告書

システムにElastic Stackの導入を提案する際に,場合によっては商用製品を含む類似ツールとの比較調査情報を求められることがあります.NTTコムウェアでは特に,代表的な商用製品であるSplunk(2),* 6との比較調査情報を要望されることが多いため,

「Elastic Stack/Splunk比較調査報告書」として, SplunkとElastic Stackとの機能(学習容易性,環境への適用性,拡張性) ・ 性能における比較調査結果をまとめたドキュメントを整備しています.このドキュメントを活用することで,Elastic StackとSplunkの特性をより把握し,顧客への提案時における適切かつスムーズな製品選択を可能としています.

適用支援実績と今後の展開

本取り組みで整備した手法 ・ ナレッジの応用により,システム障害発生時のみの利用だけではなく,商用システムでの定常的な業務ログの可視化 ・ 解析においてもElastic Stackの利用が可 能 で す.NTTコ ム ウ ェ ア で は,2017年 8 月 ま で に す で に22件 のElastic Stack導入案件にかかわっており,OSS先端技術を活用した最適なシステム開発を進めています.

システム障害ログ解析効率化手法を社 内 に 展 開 し て い く に あ た り,Elastic Stack製品のバージョンアップ追従や新機能把握は必須となるため,Elastic Stackに関する製品ナレッジの蓄積を今後も継続的に実施してい

きます.さらに,近年増加傾向にあるログ解析基盤の構築案件などでは,Elastic Stackだ け で は な くApache Kafka(3),* 7 やApache Spark(4),* 8 といった大規模データ処理用OSSとの組合せに関するナレッジも求められており,周辺製品も含めたナレッジ拡充を実施中です.

■参考文献(1) https://www.elastic.co/(2) https://www.splunk.com/(3) https://kafka.apache.org/(4) https://spark.apache.org/

(後列左から) 上妻 宜人/ 末永 恭正/上村 健一

(前列左から) 山下 克行/ 前田 奈緒/竹林 信哉

ElasticStackを用いたログ解析手法はシステム障害ログ以外にも業務ログ分析等さまざまな応用が期待できます.適用領域の拡大に向けて,今後もElasticStackをはじめとする大規模なデータ処理用のOSS製品に関するナレッジ整備を進めていきます.

◆問い合わせ先NTTコムウェア 技術企画部 技術SE部門 OSSセンタ

TEL 03-6713-3034FAX 03-5460-0723E-mail ctpm-se-openjdk-all srv.cc.nttcom.co.jp

*6 Splunk:Splunk社が提供している商用ツールです.ログや設定などのリアルタイム収集 ・ 可視化を実現することができます.

*7 Apache Kafka:分散メッセージキューを実現するOSSです.「Apache Kafka」はApache Software Foundationの米国およびその他の国における登録商標です.

*8 Apache Spark:OSSの分散処理フレームワークです.「Apache Spark」はApache Software Foundationの米国およびその他の国における登録商標です.