-- Views
May 19, 26
スライド概要
2026/5/19に開催されたFindyのイベントでの登壇資料です。
https://findy.connpass.com/event/390043/
ログ理解が変わると、 開発の質が変わる ~今あらた めて押さえたい基礎と 実践~ COPYRIGHT (C) 2026 MASUIPEO 1
自己紹介 氏名: 増井 ⚫ 国家資格 敏克 (増井技術士事務所 代表) ➢ 技術士(情報工学部門) ➢ システムアーキテクト ➢ データベーススペシャリスト ➢ テクニカルエンジニア(ネットワーク) ⚫ 略歴 ➢ 2004年3月 大阪府立大学大学院 修了 ➢ 2004年4月 セキュリティ企業 入社 ➢ 2011年5月 増井技術士事務所 設立 ➢ テクニカルエンジニア(情報セキュリティ) ⚫ 民間資格 ➢ ビジネス数学検定1級 COPYRIGHT (C) 2026 MASUIPEO 2
著書、監修 COPYRIGHT (C) 2026 MASUIPEO 3
業務内容 COPYRIGHT (C) 2026 MASUIPEO 4
ログを読んでいますか? 毎日読む エラー時だけ ほぼ読まない 今日のゴール • どんなログを出力すればいいのか • どうやってログを読めばいいのか COPYRIGHT (C) 2026 MASUIPEO 5
目次 ログの役割と種類 基本的なログ分析の考え方 AI活用とログの可能性 COPYRIGHT (C) 2026 MASUIPEO 6
目次 ログの役割と種類 基本的なログ分析の考え方 AI活用とログの可能性 COPYRIGHT (C) 2026 MASUIPEO 7
ログの役割 ⚫ 何のためにログを出力するのか ➢「いつ」「どこで」「誰が」「何を」操作したのかを後で調べられるようにする (5W1Hの視点で出力されていることが多い) ⚫ トラブル対応以外にも使われる ログはシステムの「日記」であり、システムが発する「声」 であり、時には「証言者」としての役割も果たします。 ➢ セキュリティ面での使用(事後対応、予兆検知、不正抑止) 「はじめに」より ➢ アクセス解析での使用(Webサーバーへのアクセスログ) ➢ 問い合わせ対応での使用(チャットログ、電話応対ログなど自然言語で書かれたもの) ➢ 労働状況の管理(出退勤の記録 → パソコンにログイン・ログオフした時刻) COPYRIGHT (C) 2026 MASUIPEO 8
ログの種類 ⚫ パソコンに記録されているログ ➢ システムログ … OSやハードウェア、ドライバなどの基盤部分の動作 ➢ アプリケーションログ …インストールされたアプリケーションの動作、エラー、警告 ➢ セキュリティログ … ログインやログオフ、特権使用などセキュリティ関連 ➢ クラッシュログ … システムやアプリケーションが異常終了したときの詳細 ⚫ Webサーバーに記録されているログ ➢ アクセスログ … 成功、失敗を問わずすべてのリクエストを記録 ➢ エラーログ … エラーやサーバー異常を記録し、ログレベルで分類 ログにはたくさんの種類がある COPYRIGHT (C) 2026 MASUIPEO 9
ログに何が記録されているか ⚫ 一般的なログの例 2026-04-13 09:12:34.567 ERROR [PaymentService] Payment failed orderId=ORD-001 reason=timeout タイムスタンプ (いつ起きたか) コンポーネント (どこで起きたか) ログレベル (重大度・種別) コンテキスト (付加情報) メッセージ (何が起きたか) 基本的には1つのログが1行に出力されている COPYRIGHT (C) 2026 MASUIPEO 10
Webサーバーのログの場合 ⚫ 要求ごとにログが出力されている 接続元の IPアドレス Webブラウザ リクエスト 接続元の OS、Webブラウザ Webサーバー アクセス日時 直前に 閲覧していた ページ URL 例)「/var/log/httpd/」などに保存されている COPYRIGHT (C) 2026 MASUIPEO 11
Windowsのログを確認するには ⚫ イベントビューアーを使う ➢ システムログ ➢ アプリケーションログ ➢ セキュリティログ ➢ その他のログ マウスの操作で確認できる ⚫ コマンドで抽出する ➢ コマンドプロンプトやPowerShellを使う C:¥> Get-EventLog -LogName System -EntryType Error -Newest 100 システムログからエラーレベルのイベントの最新100件を抽出する COPYRIGHT (C) 2026 MASUIPEO 12
macOSのログを確認するには ⚫ logコマンドを使う ➢ リアルタイム表示 % log stream ➢ 過去のログ検索(直近5分) % log show --last 5m ➢ 直近5分間のエラー % log show --last 5m --predicate 'messageType == 16' ➢ Safariの直近1時間のログ % log show --last 1h --predicate 'process == "Safari"' COPYRIGHT (C) 2026 MASUIPEO 13
ログを取得(記録・管理)するには ⚫ 優先順位を意識して取得する ➢ すべてのログを記録するのは現実的ではない(容量、管理体制、…) ➢ 記録したとしても、それを分析できるか(スキル、処理速度、…) 標準的な設定でもある程度のログは出力されているが、 必要に応じてログの出力内容を調整する設定が必要 ⚫ ログ管理システムを使う ➢ 1台のコンピュータだけならイベントビューアーで確認することもできる ➢ 実際には社内には膨大な数のコンピュータ、サーバーがある ➢ 自社の目的に合ったシステムを選ぶ COPYRIGHT (C) 2026 MASUIPEO 14
目次 ログの役割と種類 基本的なログ分析の考え方 AI活用とログの可能性 COPYRIGHT (C) 2026 MASUIPEO 15
ログがないとどうなるか? ログがないとき ログがあるとき ⚫ なぜか動かない ⚫ エラー箇所をすぐ特定 ⚫ 再現できない ⚫ エラーを再現できる ⚫ 全員が当てずっぽうで調査 ⚫ 根本原因までたどれる ⚫ 障害対応が数時間~数日に ⚫ 障害対応が数分~数十分で完了 ⚫ 同じ障害が再発する ⚫ 再発防止策を立てられる リリース後は祈るだけ ログ監視で異常を即検知できる COPYRIGHT (C) 2026 MASUIPEO 16
ログがあるときのフロー ⚫ トラブル発生から対策の実施までにログを使える トラブルの発生 • エラーメッ ログの確認 現象の再現 対策の実施 • 発生時刻や内 • 同じ操作で再 • プログラムの セージの表示 容の確認 現するかの確 修正、設定 • 正しく動作し • 問題点の把握 認 ファイルの変 ない • 他の原因の調 査 更 • 再発しないこ との確認 ログは「未来の自分(またはチーム)」への手紙 COPYRIGHT (C) 2026 MASUIPEO 17
何を残すべきか 残すべきもの 残してはいけないもの ⚫ 起動、停止、変更などの履歴 ⚫ パスワード、認証トークン ⚫ 注文、決済など重要なイベント ⚫ クレジットカード番号 ⚫ エラー、例外 ⚫ マイナンバーなど個人識別情報 ⚫ パフォーマンスの異常 ⚫ 機密性の高い社外秘の情報 ⚫ 外部APIの呼び出し、結果 ⚫ 過度な量のデバッグ情報(本番環境) ⚫ 認証、認可など ⚫ 意味のない繰り返しログ COPYRIGHT (C) 2026 MASUIPEO 18
適切なログレベルで出力する ⚫ 環境に応じて出力するログ、調べる内容は異なる レベル 内容 使う環境 DEBUG 変数の値や処理(関数)の開始、終了 開発環境のみ INFO 正常な動作の記録、アプリの起動や終了 開発、検証環境など WARN 推奨外の動作(非推奨の関数など) 全環境 ERROR 処理の失敗、例外の発生 全環境 FATAL システム停止など 全環境 開発環境ではDEBUG情報だけ出力、本番環境では一定の値以上のみ出力 COPYRIGHT (C) 2026 MASUIPEO 19
複数のログを「つなげて」読む ⚫ ログは複数の場所で出力される ➢ 例)Webアプリの場合 DBサーバー Webサーバー ネットワーク上 (ルーター、WAF) Webアプリ 時系列で並べて読む = 時刻情報の同期は必須 COPYRIGHT (C) 2026 MASUIPEO 20
ログを集計する ⚫ 正常な状態を把握していないと異常には気づけない ➢ 例)毎日のログを集計していると、件数が多い日があることに気づく 時間軸での集計 • 1時間ごと、1日ごと、1週間ごと、曜日ごとなどで集計して時間的な傾向を把握する グループでの集計 • 特定のエラーコード、IPアドレス、タグなどでグループに分けて差を把握する 環境での集計 • サーバーごと、アプリケーションごとなどで集計して差を把握する COPYRIGHT (C) 2026 MASUIPEO 21
ログを検索する ⚫ イベントビューアーでのフィルター ➢ レベルやイベントIDなどで検索できる ⚫ コマンドでのフィルター ➢ grepコマンドなどで抽出する C:¥> grep Error sample.log ⚫ テキストエディタでのフィルター ➢ キーワードで検索する COPYRIGHT (C) 2026 MASUIPEO 22
ログを可視化する ⚫ データの羅列を見るのは苦痛 ➢ 数が増えると、直感的に把握するのは難しくなる → グラフなどで可視化する COPYRIGHT (C) 2026 MASUIPEO 23
問題を発見するパターンの例 突然のエラー 徐々に遅くなる 特定ユーザーだけ • デプロイ直後 • メモリリーク • データ不整合 • 外部システムの障害 • 利用者数の増加 • 権限設定ミス 定時に発生 一部リクエストだけ 再起動で回復 • 処理の競合 • 特定の入力パターン • メモリ不足 • タイムゾーンの問題 • 境界値での不具合 • 外部環境の不具合 COPYRIGHT (C) 2026 MASUIPEO 24
目次 ログの役割と種類 基本的なログ分析の考え方 AI活用とログの可能性 COPYRIGHT (C) 2026 MASUIPEO 25
ログ分析で生成AIが得意な分野 自然言語での要約 • 大量のログから「何が起きたか」をまとめる パターン認識 • ログの中から繰り返しパターンや異常値を見つける 原因の推論 • エラーログから考えられる原因と調査手順の提案 対話的な調査 • 次に確認すべきことなどを会話しながら進める COPYRIGHT (C) 2026 MASUIPEO 26
生成AIを用いたログの分析 ⚫ Webサーバーのアクセスログを生成AIにそのまま渡す ➢ 例)添付したファイルを要約して ➢ 例)対応策を教えて 専門家が分析する結果に 近い内容が一瞬で出力される 今後はこのような使い方が 当たり前になるかも (正確性は検証が必要) COPYRIGHT (C) 2026 MASUIPEO 27
異常なログの出力を把握する ⚫ 例)決定木を使ってAIで自動的に判定する ➢ 決定木は量的データも質的データも扱えて、条件を人間が理解しやすい ➢ 複数の決定木を使って、その結果を多数決する「ランダムフォレスト」もある COPYRIGHT (C) 2026 MASUIPEO 28
サービスの改善に使う ⚫ パフォーマンスを最適化する ➢ CPU使用率、メモリ使用量、ストレージの空き容量、応答速度などを元に、 買い替えやメモリ増強、ストレージ追加、ネットワーク変更などを考える ⚫ システムが壊れる前に兆候を検出する ➢ CPUの温度が高い、ファンの音が大きい、エラーメッセージが出ている、などを把握する ⚫ ユーザーの行動を分析する ➢ どのページで離脱するのか、どのような属性の顧客がアクセスしているのかを分析する 大切なのは「データ」を根拠に話をすること COPYRIGHT (C) 2026 MASUIPEO 29
ログで文化を変える Before After • 動いていればOK • 観測できるシステムを作る • 障害は運が悪かった • ログで原因を突き止める • ベテランだけが修正できる • ログで誰でも対応できる • 本番環境は触らない • ログで本番を観察する COPYRIGHT (C) 2026 MASUIPEO 30
まとめ 必要なログについて意識する • 何を記録しておくと原因がわかるかを考えてログを出力する 既存のエラーログを読む • 普段見ていないサービスのログを確認してみる 生成AIに渡して相談する • 効率よくログを分析する COPYRIGHT (C) 2026 MASUIPEO 31