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