Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
を用いた アクセスログ調査と解析 勉強会
Slide 2
Slide 2 text
あるぴこら ● 株式会社はてな ● アプリケーションエンジニア ● はてなブックマークチーム 最近
Slide 3
Slide 3 text
サービスの稼働状況・アプリケーションの状態 をどうやって把握するか
Slide 4
Slide 4 text
はてなのサーバー監視 ● ○ 自社サービス
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
● 状態の記録・監視 ○ ホストの稼働状態 ■ やミドルウェアのメトリック ○ サービスの稼働状態 ■ サービス全体のアクセス状況 レイテンシ ● 障害対応など が起点
Slide 7
Slide 7 text
アクセスログのユースケース ● リクエストにフォーカスしたいとき ○ エンドポイント ユーザー 応答時間 ● 例 ○ 障害の原因となるエンドポイントの特定 ○ アプリケーションのパフォーマンス分析
Slide 8
Slide 8 text
アクセスログの形式 ● ベース ○ 時刻 time リクエスト uri 応答時間 reqtime ステータ スコード status ユーザーエージェント ua ● その他 ○ エンドポイントの識別子 dispatch ○ ログが生成されたホスト名 hostname
Slide 9
Slide 9 text
アクセスログの配送 ● で へ送る ● 流量は数億 くらい ○ リクエスト数とは異なる サンプリングもしてる
Slide 10
Slide 10 text
のマッピング ● で定義 ○ ログの形式は不定 ● 基本的に しない
Slide 11
Slide 11 text
ケーススタディ
Slide 12
Slide 12 text
障害対応時 ● のアラートで異常に気づく ● で細かい状況把握と原因調査 ○ で異常を示したメトリクスが手がかり
Slide 13
Slide 13 text
急なアクセス増加 ● 誰が どこに いつから アクセスしている ○ 典型的には ● で可視化 ● は次を指定 ○ date_histgram いつ ua 誰 ○ date_histgram いつ dispatch どこ
Slide 14
Slide 14 text
型サーバーの 枯渇 ● どこで の時間をたくさん使っている ● ○ dispatch どこ ● ○ reqtime 時間
Slide 15
Slide 15 text
レスポンスの増加 ● タブで status: [500 TO inf] ● で値の偏りがないか見る ○ エンドポイント dispatch uri ○ クライアント ua client_ip ○ ホスト hostname ● 怪しい要素でフィルタして原因特定まで絞り込む
Slide 16
Slide 16 text
リリース・デプロイ時 ● ダッシュボードを作っておく ● 主要なエンドポイントの健全性を確認 ○ dispatchでフィルタ ○ statusの ○ reqtimeの
Slide 17
Slide 17 text
パフォーマンス振り返り ● エンドポイント dispatch ごとに表にする ○ reqtime ○ reqtime の時間の利用 ○ size 帯域の利用
Slide 18
Slide 18 text
課題/今後の展望
Slide 19
Slide 19 text
「クソクエリ」問題 ● 実行に長時間かかる ● 大量のリソースを消費 ● クラスタ全体の応答時間が悪化 ○ ログの投入も遅延
Slide 20
Slide 20 text
先頭のワイルドカード ● ua:*GoogleBot* ● あらゆる を考慮することになるので遅い ● 対策 allow_leading_wildcardをfalse にする
Slide 21
Slide 21 text
な の集計 ● の生成で に比例した計算量 ● な の集計を行う意義は少ない ● ダッシュボードを作った後で が高くなることも
Slide 22
Slide 22 text
分散トレーシング ● トレースの中でのボトルネックはどこか ● ログにトレース を含めても活用が難しい
Slide 23
Slide 23 text
モニタリング ● エンドポイントごとのモニタリングがしたい ○ 異常があれば自動でアラートをあげたい ● ダッシュボードだけではモニタリングではない
Slide 24
Slide 24 text
アイデア ● の を使う ○ クエリの実行結果を外部に通知できる機能 ○ 任意のトリガ・整形方法 ● のサービスメトリックを投稿
Slide 25
Slide 25 text
を使ってみて ● サービスの運用に役立っている ○ 探索的なログ調査 ○ ダッシュボードによる観測 ● のモニタリングと組み合わせる