SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
© 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.
ご清聴ありがとうございました

Contenu connexe

Tendances

Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Sho Yoshida
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Yahoo!デベロッパーネットワーク
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門KnowledgeGraph
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Web API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろいWeb API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろいAPI Meetup
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話Daichi Koike
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめMitsutoshi Kiuchi
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?大使 梶原
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
Glue DataBrewでデータをクリーニング、加工してみよう
Glue DataBrewでデータをクリーニング、加工してみようGlue DataBrewでデータをクリーニング、加工してみよう
Glue DataBrewでデータをクリーニング、加工してみようtakeshi suto
 

Tendances (20)

TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門
 
各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Web API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろいWeb API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろい
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?IaC事始め Infrastructure as Code やってみる?
IaC事始め Infrastructure as Code やってみる?
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
Glue DataBrewでデータをクリーニング、加工してみよう
Glue DataBrewでデータをクリーニング、加工してみようGlue DataBrewでデータをクリーニング、加工してみよう
Glue DataBrewでデータをクリーニング、加工してみよう
 

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

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
 

Similaire à ログについて改めて考えてみた (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紹介資料【中文】
 

Plus de 株式会社オプト 仙台ラボラトリ (6)

クラウド入門(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. ご清聴ありがとうございました