SlideShare a Scribd company logo
1 of 10
Download to read offline
ログモニタリングツール
を自作した話
Hiroki Takeda
各種サーバのログを一元的に管理し、可視化するブラウザ
ベースのログモニタリングツール
つくったもの
2
モチベーション
• アプリ実行環境をマネージドサービスとして提供するため
利用者にSSHでログイン等はさせない世界観
⇒利用者が各種ログを管理・閲覧できる仕組みが必要
3
①サーバにSSH
$ view /var/log/xxxx.log
②viewコマンド等でログを閲覧
オンプレの世界観
①ブラウザからログを
選択するだけ
PaaSの世界観
• シンプルかつオープンをコンセプト
– データストアはelasticsearch
– ログ収集エージェントはbeatsシリーズのfilebeat
– REST APIはSpark Framework(Java)をベースに構築
– 画面はRiot.jsをベースに構築
アーキテクチャ
4
Client
View
HTTPS
Websocket
API Server
REST API Data Store
HTTPS HTTPS
Log Agent
Elasticsearch構成
• 物理構成
– クラスタはプロジェクト単位
• 論理構成
– インデックス(RDBのデータベース相当)はログ収集対象の
各サーバ毎、年月日単位で作成
– タイプ(RDBのデーブル相当)はログファイル単位
– ドキュメント(RDBの行相当)はログファイルの1行単位
5
Elasticsearch
インデックス
=サーバ名_年月日
タイプ
=ログの種類
ドキュメント
=ログ1行
…
…
特徴・機能
• 認証・認可(LDAP)
• 多様なログ検索
– 文字列指定検索
– 日付・時刻指定検索
– 複数ログ同時検索
• ファイルダウンロード
• リアルタイムログ出力(tail –fコマンド相当)
• マテリアルデザイン・レスポンシブデザイン
6
Demo
7
裏話というか細かい話(1/2)
• リアルタイムのログ出力では通信コストを低くし、リアル
タイム性を向上させるためWebsocketを利用
⇒ Client⇔APIサーバは双方向通信
⇒ ElasticsearchがWebsocket対応していないため、
APIサーバ⇔Elasticsearch間は別スレッドでポーリング
• Elasticsearchのindexのサフィックス日付はUTC時刻で
決定されるため、日付検索で一部のログが引っかからない
⇒ 例えば日本時間の2016/8/10の03:00に出力されたログは、
xxxx-2016.08.10ではなくxxx-2016.08.09のインデックスに格納される
⇒ 日付指定検索時に指定された日付のみでインデックスを絞るとダメ
⇒ タイムゾーンオフセットを元に指定日付の前or後1日のインデックスも
検索対象に含める
8
裏話というか細かい話(2/2)
• elasticsearchの@timestampフィールドはミリ秒まで
しか保持できないため、時系列表示が完全に担保できない
⇒ ログファイル自体にナノ秒まで保持させ、logstashでパースして
elasticsearchに食わせるか?
⇒ logstash使いたくないし、そもそもログ自体にナノ秒を保持できない
ケースもある
⇒ filebeatのoffsetを利用
• ファイル行番号表示を実現しようとするとパフォーマンス
が大幅に劣化する
⇒ filebeatではログデータの行番号は連携できない仕様
⇒ 元ファイル通りに行番号を表示しようとすると1ファイル分のドキュメント
を総なめして、ドキュメントIDと行番号の紐付きをキャッシュしておく
必要がある(条件検索で一部のログデータのみがヒットする場合も、連番
ではなく元ファイルの行番号を表示したいため)
⇒ ログが100万行とかあるといろいろキツイ
⇒ あきらめ(とりあえずoffsetを表示) 9
今後やりたいこと
• オーケストレーションの実現
– 対象サーバ、ファイルパス等を入力して画面をポチると
エージェント(filebeat)のインストール、設定が自動で実行
• エージェントレスな世界の実現
• ログ分析用のビュー
どなたか知見・アドバイスを・・・
10

More Related Content

Similar to ログモニタリングツールを自作した話

AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理fisuda
 
Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2Yoshi Nagase
 
Ansible x softlayer Provisioning
Ansible x softlayer ProvisioningAnsible x softlayer Provisioning
Ansible x softlayer Provisioningsoftlayerjp
 
Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積
Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積
Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積Takeshi Mikami
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤Takumi Sakamoto
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションDaisuke Masubuchi
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践真吾 吉田
 
Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Yuki Hattori
 
Liveness AccessViewのレビュー
Liveness AccessViewのレビューLiveness AccessViewのレビュー
Liveness AccessViewのレビュー健補 萩原
 
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントTrainocate Japan, Ltd.
 
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04敦志 金谷
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例知教 本間
 
Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707Ayumu Inaba
 
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...オラクルエンジニア通信
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Takahiro YAMADA
 
codeless/serverless develop
codeless/serverless develop codeless/serverless develop
codeless/serverless develop Tomoyuki Obi
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践de:code 2017
 

Similar to ログモニタリングツールを自作した話 (20)

AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理FIWARE の ID 管理、アクセス制御、API 管理
FIWARE の ID 管理、アクセス制御、API 管理
 
Hyperledger Fabric 1.0 概要
Hyperledger Fabric 1.0 概要Hyperledger Fabric 1.0 概要
Hyperledger Fabric 1.0 概要
 
Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2Rablock applicatin dev_guide_v1.2
Rablock applicatin dev_guide_v1.2
 
Ansible x softlayer Provisioning
Ansible x softlayer ProvisioningAnsible x softlayer Provisioning
Ansible x softlayer Provisioning
 
Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積
Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積
Rails3+devise,nginx,fluent,S3構成でのアクセスログ収集と蓄積
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発
 
Liveness AccessViewのレビュー
Liveness AccessViewのレビューLiveness AccessViewのレビュー
Liveness AccessViewのレビュー
 
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
 
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例
 
Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707Azure monitoring and alert v0.2.21.0707
Azure monitoring and alert v0.2.21.0707
 
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
 
NGINXでの認可について考える
NGINXでの認可について考えるNGINXでの認可について考える
NGINXでの認可について考える
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
 
codeless/serverless develop
codeless/serverless develop codeless/serverless develop
codeless/serverless develop
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
 

Recently uploaded

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (10)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

ログモニタリングツールを自作した話

Editor's Notes

  1. こっから本題で、改めて何つくったのというところですが、 皆さんアプリケーションの開発やテストをする上で、色々なサーバにいろいろなログが出力されると思いますが、 それらのログを一元的に管理し、可視化できるようなブラウザベースのログモニタリングツールを作りました。 イメージ的にはAWSのAmazon CloudWatchであったり、社内コンポーネントで言えば、CERNのログ参照機能のようなもの とイメージして頂ければと思います。 このツール現在GSPプロジェクトで絶賛利用中であり、 宣伝も兼ねて紹介させて頂ければと思います。
  2. まずはじめになんでこれ作ったのというところですが、 経緯としてはTIG活動の一環で、社内向けにプライベートPaaSのようなものを構築していることに端を発します。 要は、インフラ + アプリケーションの実行環境をマネージドサービスとして提供しまっせということなので、 利用者にSSHとかでサーバに直接ログインはさせないような世界観となっています。 今までオンプレの環境とかでサーバのログを見ようとすると、 サーバにSSHでログインして、viするなりtailするなりしてたと思いますが、 そうではない方法でログを閲覧できる仕組みが必要ということで、 今回はブラウザベースのアプリケーションを作ろうとなったわけです。
  3. アーキテクチャですが、シンプルかつオープンというところをコンセプトに選定を行いました。 大きく3つの構成要素に分かれていますが、 いわゆるログデータをため込むデータストアにはelastic社の全文検索エンジンelasticsearchを利用しています。 ログ収集のエージェントとして、elastic社のbeatシリーズの1つのfilebeatというものを ログ収集対象の各サーバにインストールしています。 このbeatがリアルタイムにログファイルを監視し、Elasticsearchに連携をしている形になります。 でクライアント側にはRESTFulなAPIを提供しており、ここはSpark FrameworkというJavaの軽量フレームワークで 構築しています。 利用者に見せる画面はRIOT.jsというこれまた超軽量旧のフレームワークをベースにつくりこんでおり、 各種構成要素は基本的にHTTPでしゃべるという形になっています。
  4. Elasticsearchの構成にもライトに触れておくと 物理構成として、Elasticsearchサーバ自体は利用するプロジェクト単位に立ててもらう想定でいます。 論理構成的には、各サーバ毎1日単位で、インデックスという(RDBのDB相当のものを)作成しており、 ログファイルの種別単位(要はアプリのエラーログとかデバッグログとか)にタイプといわれる (RDBのテーブル相当のものを)作成しています。 各種ログファイルの1行がドキュメントといわれる、RDBの行相当のものに対応しています。
  5. とまあちょっと裏側の話になっちゃいましたが、 こいつが一体何できるんだいというところの紹介です。 現在実装されている機能はこんな感じで、 ・社内のADと連携して、認証・認可が制御できますよ ・いろいろなログ検索に対応しており、いわゆる文字列指定の検索であったり、日付、時刻で絞り込んだり、  複数ログを同時に表示・検索することもできます。   あとはファイルダウンロード機能であったり、 シェルのtailコマンドに相当するようなリアルタイムのログ出力機能なんかがあったりします。 あと見た目も無駄にマテリアルデザイン・レスポンシブデザインとなってます。 まあPC以外でログ見ようなんで人いないと思いますけど。