SlideShare a Scribd company logo
© Opt, Inc. All Rights Reserved.
ログについて改めて考えてみた話
株式会社オプト 仙台テクノロジー開発部
第11回タガヤス登壇資料 
© Opt, Inc. All Rights Reserved.
自己紹介
- 佐藤宏
- 株式会社オプト 仙台テクノロジー開発部 所属
- 2011年入社
- シニアエンジニア
- 直近5年くらいはバックエンドしかやってない
© Opt, Inc. All Rights Reserved.
目次
1. What is a ログ?
2. ログの蓄積方法
3. ログの使い方
4. まとめ
© Opt, Inc. All Rights Reserved.
#0 きっかけ
© Opt, Inc. All Rights Reserved.
そもそもなんでログの事を考え始めたか?
- 性能改善やチューニングをする機会があった
- 前後での性能比較
- バックエンド側のバッチを主に担当していた
- 日々動いている事の確認
- 実行結果を後から調べる機会が多かった
© Opt, Inc. All Rights Reserved.
今日のゴール
以下の事を考えるきっかけになればゴール達成
- ログのことを考え直すきっかけ
- 様々なログの保存方法を知るきっかけ
- ログの使い方について考えるきっかけ
© Opt, Inc. All Rights Reserved.
#1 What is a ログ?
© Opt, Inc. All Rights Reserved.
1. What is a ログ?
データログ
履歴、情報を記録に残すこと。また、その記録自体を
指す。
元々は航海日誌の意味であり、語源は「丸太」を海
に流して船の速さを測ったことから
(Wikipediaより)
© Opt, Inc. All Rights Reserved.
1. What is a ログ?
コンピュータのログファイル。
アプリケーション、OS、サービスが処理内容、警告な
どの履歴を逐一記録し、障害発生時や開発時(デ
バッグ)などに参照できるようにするため作成する
(Wikipediaより)
© Opt, Inc. All Rights Reserved.
逐一記録して、
 使いたい時に参照するもの
© Opt, Inc. All Rights Reserved.
記録したいもの
- アプリケーションの処理履歴(イベントログ)
- 障害(エラー)内容
- 開発時のデバッグ情報
など
目的によって、記録したいログは色々ある
© Opt, Inc. All Rights Reserved.
目的=ログレベル
ログレベルを用いたログ管理の仕組みは、
syslog(プロトコル)が由来といわれている。
※syslog は、ログメッセージをIPネットワーク上で転送するための
標準規格である
© Opt, Inc. All Rights Reserved.
RFC 5424
Emergency: system is unusable
Alert: action must be taken immediately
Critical: critical conditions
Error: error conditions
Warning: warning conditions
Notice: normal but significant condition
Informational: informational messages
Debug: debug-level messages
© Opt, Inc. All Rights Reserved.
ロギングツール
例えば
- Java:Apache log4j
- PHP:Monolog
- Ruby:Logging
などなど色々ある
© Opt, Inc. All Rights Reserved.
log4jのログレベル
FATAL 致命的なエラー
ERROR エラー
WARN 警告
INFO 情報
DEBUG デバッグ用の情報
TRACE トレース情報
© Opt, Inc. All Rights Reserved.
1章まとめ
© Opt, Inc. All Rights Reserved.
1章まとめ
【再掲】
逐一記録して、
 使いたい時に参照するもの
© Opt, Inc. All Rights Reserved.
1章まとめ
- ログは明確な目的(エラーレベル)で出力している
か?
- ログに出力する内容は誰が決めている?
- ログの目的は誰が決めている?
© Opt, Inc. All Rights Reserved.
1章まとめ
- ログを使うのは誰か?利用用途は明確か?
- 開発者
- 運用保守担当者
- 非エンジニアのモニタリング用途
© Opt, Inc. All Rights Reserved.
問題
© Opt, Inc. All Rights Reserved.
例えば
Webアプリケーションで、ログイン失敗しました。
この時、ログレベルはどうするべきか?
© Opt, Inc. All Rights Reserved.
ログイン失敗
- ログイン出来ていないから、Error?
- ログイン処理として異常では状態じゃないけど、
正常とは異なるから、Warning(Notice)?
- サービスに影響はないから、Info?
© Opt, Inc. All Rights Reserved.
答え
- 一概には言えない
- 認証サービスが落ちているならError以上
- IDやパスワードの入力ミスならInfo以下
© Opt, Inc. All Rights Reserved.
#2 ログの蓄積方法
© Opt, Inc. All Rights Reserved.
2. ログの蓄積方法
- サーバ上のファイル
- テキストフォーマット(text,csv,json)
- 列指向(カラムナ)フォーマット(Parquet)
- データベース
- RDB、NoSQL
- クラウドサービス
© Opt, Inc. All Rights Reserved.
何を保存する?
- Webアプリケーション
- Accessログ
- Eventログ
- Errorログ
- Info/Debugログ
© Opt, Inc. All Rights Reserved.
サーバ上のファイルにためる
© Opt, Inc. All Rights Reserved.
サーバ上のファイル
- テキストファイル
- 区切り文字(空白、カンマ、タブ)ファイル
- JSONファイル
- XMLファイル
- バイナリファイル(列指向フォーマット)
- Parquet
© Opt, Inc. All Rights Reserved.
テキストファイル
メリット:
- ライブラリが対応しているフォーマットであれば用
意に出力可能
- 各Editor/Viewerで閲覧可能
© Opt, Inc. All Rights Reserved.
テキストファイル
デメリット:
- ファイルがサイズが大きくなる
- 圧縮
- ローテーション
- 検索しづらい(用途による)
- 集計しづらい(用途による)
© Opt, Inc. All Rights Reserved.
サーバ上のファイル
所感:
- 区切り文字のファイルは拡張性に難がある
- jsonが好き(メタデータを含めた形で保存可)
- Parquet形式も便利(テキストファイルと比較すべ
きではないかも?)
© Opt, Inc. All Rights Reserved.
データベースにためる
© Opt, Inc. All Rights Reserved.
データベース
メリット
- クエリが使える
- 検索、集計が出来る
- GUIツールや、クエリ等で閲覧可能
© Opt, Inc. All Rights Reserved.
データベース
デメリット
- テーブル定義をする必要がある
- ログ蓄積機能の開発
- トランザクション管理(性能劣化の可能性?)
- テーブルサイズが肥大化する
- テーブル定義の変更コスト
© Opt, Inc. All Rights Reserved.
クラウドサービスにためる
© Opt, Inc. All Rights Reserved.
クラウドサービス
メリット
- ロギングサービスを外に出せる
- サービス本体と切り離して考えられる
- 既存のサービスを利用して、提供されている機能
がすぐ利用できる
© Opt, Inc. All Rights Reserved.
クラウドサービス
デメリット
- コスト(使い方によっては有料)
- クラウドサービス側の障害の影響を受ける
- 各サービスのSLA次第
- 用途に合わないケース
© Opt, Inc. All Rights Reserved.
クラウドサービス
- Fluentd + α
- Sentry
- Amazon CloudWatch Logs
© Opt, Inc. All Rights Reserved.
Fluentd
© Opt, Inc. All Rights Reserved.
Fluentdとは
- オープンソースのデータログ収集ツール
- ログの取り込み(Input)と出力先(Output)を制
御(エージェントという形で常駐)
- Pluginという形で Input と Output を様々な組み
合わせ
- https://www.fluentd.org/plugins
© Opt, Inc. All Rights Reserved.
引用:https://www.fluentd.org/architecture
© Opt, Inc. All Rights Reserved.
Fluentd
- ログを保存するシステムではない
- td-agent.confファイルを設定するだけで、 任意
のInputとOutputを繋げられる
- 様々なPluginが用意されている
- Input: ApacheLog/Webアプリのログ(テキストファイル)
- Output: TreasureData
© Opt, Inc. All Rights Reserved.
Sentry
© Opt, Inc. All Rights Reserved.
Sentry とは
- ログの収集、監視サービス
- 言語ごとに用意されたSDKを使用してログをAPI
で送信
- エラー通知をSlackに連携することも可能
© Opt, Inc. All Rights Reserved.
引用:https://github.com/getsentry/sentry
© Opt, Inc. All Rights Reserved.
Sentry
- 個人用と開発初期のアプリケーション用途として、
無料版もあり
- プランごとにログイベントを受信できる制限が設け
られている
© Opt, Inc. All Rights Reserved.
Amazon CloudWatch Logs
© Opt, Inc. All Rights Reserved.
Amazon CloudWatch Logs とは
- AWSのログをためるサービス
- Lambda等、マネージドサービスのログは
CloudWatch Logsへ
- オンプレサーバ等でもCloudWatch Agentを利用
して、ログを流し込める
- Fluentdでも可
© Opt, Inc. All Rights Reserved.
Amazon CloudWatch Logs
© Opt, Inc. All Rights Reserved.
Amazon CloudWatch Logs
{
“aaa”: “hogehoge”,
“bbb”: 12345,
“ccc”: {
“c1”: 111,
“c2”: “222”
}
}
{$.aaa=hogehoge}
や
{$.ccc.c1 > 100}
など
© Opt, Inc. All Rights Reserved.
2章まとめ
© Opt, Inc. All Rights Reserved.
2章まとめ
- ログのため方は色々ある
© Opt, Inc. All Rights Reserved.
#3 ログの使い方
© Opt, Inc. All Rights Reserved.
3. ログの使い方
- イベントの監視/モニタリング
- 障害時のログ
- 開発時のログ
© Opt, Inc. All Rights Reserved.
クラウドサービス(モニタリング)
- DataDog
- Amazon CloudWatch Logs Insights
- Kibana
© Opt, Inc. All Rights Reserved.
DataDog
- サーバの監視/モニタリングツール
- 似たサービスとしてMackerel(マカレル)
- Freeプラン(サーバ5台、データ保管期間は1日)
- 様々なサービスと連携するための設定が用意さ
れている
© Opt, Inc. All Rights Reserved.
引用:https://docs.datadoghq.com/ja/guides/overview/
Host Map
© Opt, Inc. All Rights Reserved.
引用:https://docs.datadoghq.com/ja/guides/overview/
イベントの時系列表示
© Opt, Inc. All Rights Reserved.
Amazon CloudWatch Logs Insights
- 2018年末のre:Inventで発表されたサービス
- CloudWatch Logs のログデータを検索&分析
- クエリ言語を用いる
- 料金:0.0076 USD/GB(スキャンされたデータ)
© Opt, Inc. All Rights Reserved.
24時間で1分でコールされたAPIの回数
© Opt, Inc. All Rights Reserved.
24時間で1分でコールされたAPIの平均応答速度
© Opt, Inc. All Rights Reserved.
Amazon CloudWatch Logs Insights(印象)
- 現状では、CloudWatch Logs データをクエリで検
索しビジュアライズできるが、おまけ機能レベル
© Opt, Inc. All Rights Reserved.
Kibana
デモ
© Opt, Inc. All Rights Reserved.
#4 まとめ
© Opt, Inc. All Rights Reserved.
ログは、使い方にあった
  ため方をすることが大事
© Opt, Inc. All Rights Reserved.
定量的に計りたいイベントログは
常にモニタリング
© Opt, Inc. All Rights Reserved.
改善は
 モニタリングのその先に
© Opt, Inc. All Rights Reserved.
ご清聴ありがとうございました

More Related Content

What's hot

Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Noritaka Sekiyama
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
Yusuke Kagata
 
基幹システムの可視化技法
基幹システムの可視化技法基幹システムの可視化技法
基幹システムの可視化技法
Zenji Kanzaki
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718Mao Ohnishi
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門
Shohei Hido
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
増田 亨
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
Takuya Sato
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.Japan
Kohei KaiGai
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
 
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
Yahoo!デベロッパーネットワーク
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
 

What's hot (20)

Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
基幹システムの可視化技法
基幹システムの可視化技法基幹システムの可視化技法
基幹システムの可視化技法
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.Japan
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
 
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 

Similar to ログについて改めて考えてみた

Sumo Logic活用事例とその運用
Sumo Logic活用事例とその運用Sumo Logic活用事例とその運用
Sumo Logic活用事例とその運用
gree_tech
 
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
LIFULL Co., Ltd.
 
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
株式会社オプト 仙台ラボラトリ
 
ビッグデータとデータマート
ビッグデータとデータマートビッグデータとデータマート
ビッグデータとデータマート
株式会社オプト 仙台ラボラトリ
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
 
RPAって何、どんなことできるの
RPAって何、どんなことできるのRPAって何、どんなことできるの
RPAって何、どんなことできるの
株式会社オプト 仙台ラボラトリ
 
CloudHubのログバックアップについて
CloudHubのログバックアップについてCloudHubのログバックアップについて
CloudHubのログバックアップについて
MuleSoft Meetup Tokyo
 
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
典子 松本
 
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
 
データマート対応した話
データマート対応した話データマート対応した話
データマート対応した話
株式会社オプト 仙台ラボラトリ
 
Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop Daisuke Sugai
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
OSSラボ株式会社
 
JANOG35_RPKIやってみませんか? 20150120
JANOG35_RPKIやってみませんか? 20150120JANOG35_RPKIやってみませんか? 20150120
JANOG35_RPKIやってみませんか? 20150120
Osamu Kurokochi
 
インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
gree_tech
 
Ietf95 http2
Ietf95 http2Ietf95 http2
Ietf95 http2
Kaoru Maeda
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
NTT Software Innovation Center
 
IETF92報告IoT関連
IETF92報告IoT関連IETF92報告IoT関連
IETF92報告IoT関連
Kaoru Maeda
 
XPagesでRESTを使ってみよう
XPagesでRESTを使ってみようXPagesでRESTを使ってみよう
XPagesでRESTを使ってみよう
Masahiko Miyo
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
softlayerjp
 
momentum紹介資料【中文】
momentum紹介資料【中文】momentum紹介資料【中文】
momentum紹介資料【中文】
Jim Zhang
 

Similar to ログについて改めて考えてみた (20)

Sumo Logic活用事例とその運用
Sumo Logic活用事例とその運用Sumo Logic活用事例とその運用
Sumo Logic活用事例とその運用
 
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性趣味と仕事の違い、現場で求められるアプリケーションの可観測性
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
 
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
 
ビッグデータとデータマート
ビッグデータとデータマートビッグデータとデータマート
ビッグデータとデータマート
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
RPAって何、どんなことできるの
RPAって何、どんなことできるのRPAって何、どんなことできるの
RPAって何、どんなことできるの
 
CloudHubのログバックアップについて
CloudHubのログバックアップについてCloudHubのログバックアップについて
CloudHubのログバックアップについて
 
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
【Logic Apps編】ノンコーディングでデキる!お問い合わせフォーム機能拡張
 
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知・解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
 
データマート対応した話
データマート対応した話データマート対応した話
データマート対応した話
 
Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop
 
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
 
JANOG35_RPKIやってみませんか? 20150120
JANOG35_RPKIやってみませんか? 20150120JANOG35_RPKIやってみませんか? 20150120
JANOG35_RPKIやってみませんか? 20150120
 
インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動
 
Ietf95 http2
Ietf95 http2Ietf95 http2
Ietf95 http2
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
 
IETF92報告IoT関連
IETF92報告IoT関連IETF92報告IoT関連
IETF92報告IoT関連
 
XPagesでRESTを使ってみよう
XPagesでRESTを使ってみようXPagesでRESTを使ってみよう
XPagesでRESTを使ってみよう
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
momentum紹介資料【中文】
momentum紹介資料【中文】momentum紹介資料【中文】
momentum紹介資料【中文】
 

More from 株式会社オプト 仙台ラボラトリ

クラウド入門(AWS編)
クラウド入門(AWS編)クラウド入門(AWS編)
失敗から学ぶAWSの監視
失敗から学ぶAWSの監視失敗から学ぶAWSの監視
失敗から学ぶAWSの監視
株式会社オプト 仙台ラボラトリ
 
業務の自動化をはじめよう!!
業務の自動化をはじめよう!!業務の自動化をはじめよう!!
業務の自動化をはじめよう!!
株式会社オプト 仙台ラボラトリ
 
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
株式会社オプト 仙台ラボラトリ
 
各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
株式会社オプト 仙台ラボラトリ
 
ビッグデータ・データマートとは
ビッグデータ・データマートとはビッグデータ・データマートとは
ビッグデータ・データマートとは
株式会社オプト 仙台ラボラトリ
 
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
株式会社オプト 仙台ラボラトリ
 

More from 株式会社オプト 仙台ラボラトリ (7)

クラウド入門(AWS編)
クラウド入門(AWS編)クラウド入門(AWS編)
クラウド入門(AWS編)
 
失敗から学ぶAWSの監視
失敗から学ぶAWSの監視失敗から学ぶAWSの監視
失敗から学ぶAWSの監視
 
業務の自動化をはじめよう!!
業務の自動化をはじめよう!!業務の自動化をはじめよう!!
業務の自動化をはじめよう!!
 
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
RPA(ロボティック・プロセ ス・オートメーション) 仮想労働者の雇い方
 
各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
 
ビッグデータ・データマートとは
ビッグデータ・データマートとはビッグデータ・データマートとは
ビッグデータ・データマートとは
 
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)一歩前に進めるWeb開発のスパイス(仙台Geek★Night #1)
一歩前に進める Web開発のスパイス(仙台Geek★Night #1)
 

ログについて改めて考えてみた

  • 1. © Opt, Inc. All Rights Reserved. ログについて改めて考えてみた話 株式会社オプト 仙台テクノロジー開発部 第11回タガヤス登壇資料 
  • 2. © Opt, Inc. All Rights Reserved. 自己紹介 - 佐藤宏 - 株式会社オプト 仙台テクノロジー開発部 所属 - 2011年入社 - シニアエンジニア - 直近5年くらいはバックエンドしかやってない
  • 3. © Opt, Inc. All Rights Reserved. 目次 1. What is a ログ? 2. ログの蓄積方法 3. ログの使い方 4. まとめ
  • 4. © Opt, Inc. All Rights Reserved. #0 きっかけ
  • 5. © Opt, Inc. All Rights Reserved. そもそもなんでログの事を考え始めたか? - 性能改善やチューニングをする機会があった - 前後での性能比較 - バックエンド側のバッチを主に担当していた - 日々動いている事の確認 - 実行結果を後から調べる機会が多かった
  • 6. © Opt, Inc. All Rights Reserved. 今日のゴール 以下の事を考えるきっかけになればゴール達成 - ログのことを考え直すきっかけ - 様々なログの保存方法を知るきっかけ - ログの使い方について考えるきっかけ
  • 7. © Opt, Inc. All Rights Reserved. #1 What is a ログ?
  • 8. © Opt, Inc. All Rights Reserved. 1. What is a ログ? データログ 履歴、情報を記録に残すこと。また、その記録自体を 指す。 元々は航海日誌の意味であり、語源は「丸太」を海 に流して船の速さを測ったことから (Wikipediaより)
  • 9. © Opt, Inc. All Rights Reserved. 1. What is a ログ? コンピュータのログファイル。 アプリケーション、OS、サービスが処理内容、警告な どの履歴を逐一記録し、障害発生時や開発時(デ バッグ)などに参照できるようにするため作成する (Wikipediaより)
  • 10. © Opt, Inc. All Rights Reserved. 逐一記録して、  使いたい時に参照するもの
  • 11. © Opt, Inc. All Rights Reserved. 記録したいもの - アプリケーションの処理履歴(イベントログ) - 障害(エラー)内容 - 開発時のデバッグ情報 など 目的によって、記録したいログは色々ある
  • 12. © Opt, Inc. All Rights Reserved. 目的=ログレベル ログレベルを用いたログ管理の仕組みは、 syslog(プロトコル)が由来といわれている。 ※syslog は、ログメッセージをIPネットワーク上で転送するための 標準規格である
  • 13. © Opt, Inc. All Rights Reserved. RFC 5424 Emergency: system is unusable Alert: action must be taken immediately Critical: critical conditions Error: error conditions Warning: warning conditions Notice: normal but significant condition Informational: informational messages Debug: debug-level messages
  • 14. © Opt, Inc. All Rights Reserved. ロギングツール 例えば - Java:Apache log4j - PHP:Monolog - Ruby:Logging などなど色々ある
  • 15. © Opt, Inc. All Rights Reserved. log4jのログレベル FATAL 致命的なエラー ERROR エラー WARN 警告 INFO 情報 DEBUG デバッグ用の情報 TRACE トレース情報
  • 16. © Opt, Inc. All Rights Reserved. 1章まとめ
  • 17. © Opt, Inc. All Rights Reserved. 1章まとめ 【再掲】 逐一記録して、  使いたい時に参照するもの
  • 18. © Opt, Inc. All Rights Reserved. 1章まとめ - ログは明確な目的(エラーレベル)で出力している か? - ログに出力する内容は誰が決めている? - ログの目的は誰が決めている?
  • 19. © Opt, Inc. All Rights Reserved. 1章まとめ - ログを使うのは誰か?利用用途は明確か? - 開発者 - 運用保守担当者 - 非エンジニアのモニタリング用途
  • 20. © Opt, Inc. All Rights Reserved. 問題
  • 21. © Opt, Inc. All Rights Reserved. 例えば Webアプリケーションで、ログイン失敗しました。 この時、ログレベルはどうするべきか?
  • 22. © Opt, Inc. All Rights Reserved. ログイン失敗 - ログイン出来ていないから、Error? - ログイン処理として異常では状態じゃないけど、 正常とは異なるから、Warning(Notice)? - サービスに影響はないから、Info?
  • 23. © Opt, Inc. All Rights Reserved. 答え - 一概には言えない - 認証サービスが落ちているならError以上 - IDやパスワードの入力ミスならInfo以下
  • 24. © Opt, Inc. All Rights Reserved. #2 ログの蓄積方法
  • 25. © Opt, Inc. All Rights Reserved. 2. ログの蓄積方法 - サーバ上のファイル - テキストフォーマット(text,csv,json) - 列指向(カラムナ)フォーマット(Parquet) - データベース - RDB、NoSQL - クラウドサービス
  • 26. © Opt, Inc. All Rights Reserved. 何を保存する? - Webアプリケーション - Accessログ - Eventログ - Errorログ - Info/Debugログ
  • 27. © Opt, Inc. All Rights Reserved. サーバ上のファイルにためる
  • 28. © Opt, Inc. All Rights Reserved. サーバ上のファイル - テキストファイル - 区切り文字(空白、カンマ、タブ)ファイル - JSONファイル - XMLファイル - バイナリファイル(列指向フォーマット) - Parquet
  • 29. © Opt, Inc. All Rights Reserved. テキストファイル メリット: - ライブラリが対応しているフォーマットであれば用 意に出力可能 - 各Editor/Viewerで閲覧可能
  • 30. © Opt, Inc. All Rights Reserved. テキストファイル デメリット: - ファイルがサイズが大きくなる - 圧縮 - ローテーション - 検索しづらい(用途による) - 集計しづらい(用途による)
  • 31. © Opt, Inc. All Rights Reserved. サーバ上のファイル 所感: - 区切り文字のファイルは拡張性に難がある - jsonが好き(メタデータを含めた形で保存可) - Parquet形式も便利(テキストファイルと比較すべ きではないかも?)
  • 32. © Opt, Inc. All Rights Reserved. データベースにためる
  • 33. © Opt, Inc. All Rights Reserved. データベース メリット - クエリが使える - 検索、集計が出来る - GUIツールや、クエリ等で閲覧可能
  • 34. © Opt, Inc. All Rights Reserved. データベース デメリット - テーブル定義をする必要がある - ログ蓄積機能の開発 - トランザクション管理(性能劣化の可能性?) - テーブルサイズが肥大化する - テーブル定義の変更コスト
  • 35. © Opt, Inc. All Rights Reserved. クラウドサービスにためる
  • 36. © Opt, Inc. All Rights Reserved. クラウドサービス メリット - ロギングサービスを外に出せる - サービス本体と切り離して考えられる - 既存のサービスを利用して、提供されている機能 がすぐ利用できる
  • 37. © Opt, Inc. All Rights Reserved. クラウドサービス デメリット - コスト(使い方によっては有料) - クラウドサービス側の障害の影響を受ける - 各サービスのSLA次第 - 用途に合わないケース
  • 38. © Opt, Inc. All Rights Reserved. クラウドサービス - Fluentd + α - Sentry - Amazon CloudWatch Logs
  • 39. © Opt, Inc. All Rights Reserved. Fluentd
  • 40. © Opt, Inc. All Rights Reserved. Fluentdとは - オープンソースのデータログ収集ツール - ログの取り込み(Input)と出力先(Output)を制 御(エージェントという形で常駐) - Pluginという形で Input と Output を様々な組み 合わせ - https://www.fluentd.org/plugins
  • 41. © Opt, Inc. All Rights Reserved. 引用:https://www.fluentd.org/architecture
  • 42. © Opt, Inc. All Rights Reserved. Fluentd - ログを保存するシステムではない - td-agent.confファイルを設定するだけで、 任意 のInputとOutputを繋げられる - 様々なPluginが用意されている - Input: ApacheLog/Webアプリのログ(テキストファイル) - Output: TreasureData
  • 43. © Opt, Inc. All Rights Reserved. Sentry
  • 44. © Opt, Inc. All Rights Reserved. Sentry とは - ログの収集、監視サービス - 言語ごとに用意されたSDKを使用してログをAPI で送信 - エラー通知をSlackに連携することも可能
  • 45. © Opt, Inc. All Rights Reserved. 引用:https://github.com/getsentry/sentry
  • 46. © Opt, Inc. All Rights Reserved. Sentry - 個人用と開発初期のアプリケーション用途として、 無料版もあり - プランごとにログイベントを受信できる制限が設け られている
  • 47. © Opt, Inc. All Rights Reserved. Amazon CloudWatch Logs
  • 48. © Opt, Inc. All Rights Reserved. Amazon CloudWatch Logs とは - AWSのログをためるサービス - Lambda等、マネージドサービスのログは CloudWatch Logsへ - オンプレサーバ等でもCloudWatch Agentを利用 して、ログを流し込める - Fluentdでも可
  • 49. © Opt, Inc. All Rights Reserved. Amazon CloudWatch Logs
  • 50. © Opt, Inc. All Rights Reserved. Amazon CloudWatch Logs { “aaa”: “hogehoge”, “bbb”: 12345, “ccc”: { “c1”: 111, “c2”: “222” } } {$.aaa=hogehoge} や {$.ccc.c1 > 100} など
  • 51. © Opt, Inc. All Rights Reserved. 2章まとめ
  • 52. © Opt, Inc. All Rights Reserved. 2章まとめ - ログのため方は色々ある
  • 53. © Opt, Inc. All Rights Reserved. #3 ログの使い方
  • 54. © Opt, Inc. All Rights Reserved. 3. ログの使い方 - イベントの監視/モニタリング - 障害時のログ - 開発時のログ
  • 55. © Opt, Inc. All Rights Reserved. クラウドサービス(モニタリング) - DataDog - Amazon CloudWatch Logs Insights - Kibana
  • 56. © Opt, Inc. All Rights Reserved. DataDog - サーバの監視/モニタリングツール - 似たサービスとしてMackerel(マカレル) - Freeプラン(サーバ5台、データ保管期間は1日) - 様々なサービスと連携するための設定が用意さ れている
  • 57. © Opt, Inc. All Rights Reserved. 引用:https://docs.datadoghq.com/ja/guides/overview/ Host Map
  • 58. © Opt, Inc. All Rights Reserved. 引用:https://docs.datadoghq.com/ja/guides/overview/ イベントの時系列表示
  • 59. © Opt, Inc. All Rights Reserved. Amazon CloudWatch Logs Insights - 2018年末のre:Inventで発表されたサービス - CloudWatch Logs のログデータを検索&分析 - クエリ言語を用いる - 料金:0.0076 USD/GB(スキャンされたデータ)
  • 60. © Opt, Inc. All Rights Reserved. 24時間で1分でコールされたAPIの回数
  • 61. © Opt, Inc. All Rights Reserved. 24時間で1分でコールされたAPIの平均応答速度
  • 62. © Opt, Inc. All Rights Reserved. Amazon CloudWatch Logs Insights(印象) - 現状では、CloudWatch Logs データをクエリで検 索しビジュアライズできるが、おまけ機能レベル
  • 63. © Opt, Inc. All Rights Reserved. Kibana デモ
  • 64. © Opt, Inc. All Rights Reserved. #4 まとめ
  • 65. © Opt, Inc. All Rights Reserved. ログは、使い方にあった   ため方をすることが大事
  • 66. © Opt, Inc. All Rights Reserved. 定量的に計りたいイベントログは 常にモニタリング
  • 67. © Opt, Inc. All Rights Reserved. 改善は  モニタリングのその先に
  • 68. © Opt, Inc. All Rights Reserved. ご清聴ありがとうございました