Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kibanaを用いたアクセスログ調査と解析 / Access Log Analysis Using Kibana

alpicola
August 02, 2018
740

Kibanaを用いたアクセスログ調査と解析 / Access Log Analysis Using Kibana

alpicola

August 02, 2018
Tweet

Transcript

  1. を用いた
    アクセスログ調査と解析
    勉強会

    View full-size slide

  2. あるぴこら
    ● 株式会社はてな
    ● アプリケーションエンジニア
    ● はてなブックマークチーム 最近

    View full-size slide

  3. サービスの稼働状況・アプリケーションの状態
    をどうやって把握するか

    View full-size slide

  4. はてなのサーバー監視

    ○ 自社サービス

    View full-size slide

  5. ● 状態の記録・監視
    ○ ホストの稼働状態
    ■ やミドルウェアのメトリック
    ○ サービスの稼働状態
    ■ サービス全体のアクセス状況 レイテンシ
    ● 障害対応など が起点

    View full-size slide

  6. アクセスログのユースケース
    ● リクエストにフォーカスしたいとき
    ○ エンドポイント ユーザー 応答時間
    ● 例
    ○ 障害の原因となるエンドポイントの特定
    ○ アプリケーションのパフォーマンス分析

    View full-size slide

  7. アクセスログの形式
    ● ベース
    ○ 時刻 time リクエスト uri 応答時間 reqtime ステータ
    スコード status ユーザーエージェント ua
    ● その他
    ○ エンドポイントの識別子 dispatch
    ○ ログが生成されたホスト名 hostname

    View full-size slide

  8. アクセスログの配送
    ● で へ送る
    ● 流量は数億 くらい
    ○ リクエスト数とは異なる サンプリングもしてる

    View full-size slide

  9. のマッピング
    ● で定義
    ○ ログの形式は不定
    ● 基本的に しない

    View full-size slide

  10. ケーススタディ

    View full-size slide

  11. 障害対応時
    ● のアラートで異常に気づく
    ● で細かい状況把握と原因調査
    ○ で異常を示したメトリクスが手がかり

    View full-size slide

  12. 急なアクセス増加
    ● 誰が どこに いつから アクセスしている
    ○ 典型的には
    ● で可視化
    ● は次を指定
    ○ date_histgram いつ ua 誰
    ○ date_histgram いつ dispatch どこ

    View full-size slide

  13. 型サーバーの 枯渇
    ● どこで の時間をたくさん使っている

    ○ dispatch どこ

    ○ reqtime 時間

    View full-size slide

  14. レスポンスの増加
    ● タブで status: [500 TO inf]
    ● で値の偏りがないか見る
    ○ エンドポイント dispatch uri
    ○ クライアント ua client_ip
    ○ ホスト hostname
    ● 怪しい要素でフィルタして原因特定まで絞り込む

    View full-size slide

  15. リリース・デプロイ時
    ● ダッシュボードを作っておく
    ● 主要なエンドポイントの健全性を確認
    ○ dispatchでフィルタ
    ○ statusの
    ○ reqtimeの

    View full-size slide

  16. パフォーマンス振り返り
    ● エンドポイント dispatch ごとに表にする
    ○ reqtime
    ○ reqtime の時間の利用
    ○ size 帯域の利用

    View full-size slide

  17. 課題/今後の展望

    View full-size slide

  18. 「クソクエリ」問題
    ● 実行に長時間かかる
    ● 大量のリソースを消費
    ● クラスタ全体の応答時間が悪化
    ○ ログの投入も遅延

    View full-size slide

  19. 先頭のワイルドカード
    ● ua:*GoogleBot*
    ● あらゆる を考慮することになるので遅い
    ● 対策 allow_leading_wildcardをfalse にする

    View full-size slide

  20. な の集計
    ● の生成で に比例した計算量
    ● な の集計を行う意義は少ない
    ● ダッシュボードを作った後で が高くなることも

    View full-size slide

  21. 分散トレーシング
    ● トレースの中でのボトルネックはどこか
    ● ログにトレース を含めても活用が難しい

    View full-size slide

  22. モニタリング
    ● エンドポイントごとのモニタリングがしたい
    ○ 異常があれば自動でアラートをあげたい
    ● ダッシュボードだけではモニタリングではない

    View full-size slide

  23. アイデア
    ● の を使う
    ○ クエリの実行結果を外部に通知できる機能
    ○ 任意のトリガ・整形方法
    ● のサービスメトリックを投稿

    View full-size slide

  24. を使ってみて
    ● サービスの運用に役立っている
    ○ 探索的なログ調査
    ○ ダッシュボードによる観測
    ● のモニタリングと組み合わせる

    View full-size slide