SlideShare a Scribd company logo
1 of 68
Download to read offline
© 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

DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)Tokoroten Nakayama
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdfKazuaki Ishizaki
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へVirtualTech Japan Inc.
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチYoshiki Hayama
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発Takafumi ONAKA
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版Tokoroten Nakayama
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろうShingo Omura
 
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~Recruit Lifestyle Co., Ltd.
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 

What's hot (20)

DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
事業の進展とデータマネジメント体制の進歩(+プレトタイプの話)
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf20230105_TITECH_lecture_ishizaki_public.pdf
20230105_TITECH_lecture_ishizaki_public.pdf
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
分散システムの限界について知ろう
分散システムの限界について知ろう分散システムの限界について知ろう
分散システムの限界について知ろう
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 

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
 
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やってみませんか? 20150120Osamu Kurokochi
 
インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動インフラエンジニアの楽しい標準化活動
インフラエンジニアの楽しい標準化活動gree_tech
 
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 Zabbixsoftlayerjp
 
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 株式会社オプト 仙台ラボラトリ (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. ご清聴ありがとうございました