0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macOSのログを見てOSの動きを理解する

0
Posted at

はじめに

まだまだIT運用、コンピューターの動きの解像度が低いのかなと思う今日この頃。。
macOSで実際に動いているログを見ながら、OSの内部動作を理解します。ログはシステムの「目」であり、何が起きているかを知る最も重要な情報源です。

対象読者

  • 若手エンジニア(2年目前後)
  • 「ログって何を見ればいいの?」と思っている方
  • macOSの内部動作に興味がある方

この記事でできること

  • 10分程度でmacOSのログシステムを理解
  • 実際のログを見てOSの動きを追跡
  • トラブルシューティングの基礎をかじる

macOSのログシステム

macOSには2つのログシステムがあります:

  1. 統合ログ(Unified Logging) - logコマンド

    • macOS 10.12以降の新しいシステム
    • 高速で構造化されたログ
    • リアルタイム監視が得意
  2. 従来のログファイル - /var/log/

    • テキストファイルで読みやすい
    • install.logsystem.logなど

Step 1:ログの場所を確認する(3分)

① ログディレクトリを見る

ls -lh /var/log/

出力例:

drwxr-xr-x   2 root  wheel    64B  apache2
-rw-r--r--   1 root  wheel   2.9M  install.log
-rw-r--r--   1 root  admin   132K  jamf.log

# ここを例にとって見てみる
drwxr-x---  11 root  admin   352B  DiagnosticMessages
#  d:ディレクトリ、rwx r-x ---:アクセス権限、wheel:sudo可能なユーザー
# 管理者だけが完全に操作できて、管理グループだけが中を覗けるディレクトリ

重要なログファイル:

  • install.log - ソフトウェアのインストール履歴
  • system.log - システム全体のログ(古いmacOS)
  • DiagnosticMessages/ - クラッシュレポート

② インストールログを見る

tail -20 /var/log/install.log

出力例:

# スリープ関連
2026-04-28 00:35:05 softwareupdated: System will sleep
2026-04-28 00:37:12 softwareupdated: System has powered on
2026-04-28 00:37:17 softwareupdated: System will sleep
# 更新なしと表示
SUOSULoginCredentialPolicyManager: No update downloaded and prepared.

これで「最近何がインストールされたか」がわかります。
今回は、インストールではなくmacOSが定期的に行う自動更新チェックが行われていました。

Step 2:統合ログを使う

macOSには、Unified Loggingという固有のログシステムがあります。Linux でいう/var/log/syslogjournalctlに近い存在で、macOS ではlogコマンド を使って参照します。

① 最近のログを表示

log show --last 5m

出力の見方:

Timestamp                       Thread     Type        Activity             PID    TTL
2026-04-28 08:22:09.791743+0900 0x1177979  Info        0x0                  380    0
  • Timestamp - いつ発生したか
  • Type - Info/Default/Error/Fault
  • PID - どのプロセスか(プロセスID)

出力例:

# bluetoothのログ
bluetoothd: BLE Scanner Device Found ...
# Wi-Fiドライバのログ(kernel)
IO80211ControllerMonitor::setAMPDUstat unhandled ...
DTIM missed count ...

② エラーだけを抽出

log show --predicate 'eventMessage contains "error"' --info --last 5m

出力例:

failed at lookup with error 159 - Sandbox restriction

サンドボックス制限のため、サービスに接続できなかった。大変なエラーではない。

③ 特定のアプリのログを見る

log show --predicate 'processImagePath contains "Chrome"' --info --last 1h

何がわかるか:

  • Chromeが何をしているか
  • どのタイミングで動作しているか
  • エラーが出ていないか

出力例:

(CoreAudio) HALC_ProxyIOContext::ResumeIO
Google Chrome Helper: (CoreAudio)
9  0    Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:entry] CopyData('AppleKeyboardLayoutOverridePasteboard' (<CFUUID 0x12402999120> 35BD862E-A2E2-4DC9-B33A-04924D89A5EF) gen: -1 item: 1264739405 flavor: 'AppleKeyboardLayoutOverrideFlavor')
2026-04-28 08:43:09.505614+0900 0x27893e   Info        0x0                  97909  0    Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:cache] Rebuilding cache for 'AppleKeyboardLayoutOverridePasteboard' (<CFUUID 0x12402999120> 35BD862E-A2E2-4DC9-B33A-04924D89A5EF)
2026-04-28 08:43:09.506014+0900 0x27893e   Info        0x0                  97909  0    Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:general] Will request data from daemon
2026-04-28 08:43:09.506472+0900 0x27893e   Info        0x0                  97909  0    Google Chrome: (CoreFoundation) [com.apple.CFPasteboard:exit] (not-in-cache) - result: 0 generation: 130670 data (252 bytes) flags: 0
2026-04-28 08:43:09.520940+0900 0x27893e   Info        0x0    

Audio, Helperなどが出ていた。Chromeの機能として
cashe general entry exitがくり返し出ていた。キャッシュが何回も作られている。

Step 3:リアルタイム監視

① ログをリアルタイムで見る

log stream

Ctrl+C で停止

これで「今この瞬間」のシステムの動きが見えます。

② 特定の条件でフィルタ

log stream --predicate 'eventType == logEvent AND messageType == error'

エラーだけをリアルタイムで監視できます。

Step 4:その他演習

システム起動時のログを見る

log show --predicate 'process == "kernel"' --last 1d | head -50

何がわかるか:

  • カーネルの起動順序
  • ハードウェアの認識
  • ドライバの読み込み

出力例:

# AppleSMC / RTBuddy
(AppleSMC) system-state-notify
(RTBuddy) SMC HID Event
(AppleM68Buttons) dispatchEventExt keyboard
  • SMC(電源・温度管理チップ)が状態変化を検知
  • HIDイベント(キー・蓋など)が発生
# IOPlatformWwakeAction
IOPlatformWakeAction -> ApplePMP
IOPlatformWakeAction -> AppleT8103PMGR
IOPlatformWakeAction -> AppleSmartIO
IOPlatformWakeAction -> AppleT8101GPIOIC
...
スリープ中に留めていた各ハードウェアを順番に再起動している。

ログから障害の原因を探す(クラッシュレポートを確認)

ls -lt ~/Library/Logs/DiagnosticReports/ | head -10

出力例:

hinano@Hinanos-MacBook-Air ~ % 
hinano@Hinanos-MacBook-Air ~ % ls -lt ~/Library/Logs/DiagnosticReports/ | head -10

total 0
drwxrwx---  2 hinano  _analyticsusers  64  4  2 09:14 Retired

crashがないので安全。

おわりに

ログを見ることで、macOSの内部で何が起きているか見ていきました。どんどん色々なログを触ってざーっと見ていくだけでもOSの動きがわかるようになりそうだな♪と思いました。

実践内容:

  • log showでログを表示
  • log streamでリアルタイム監視
  • --predicateで条件フィルタ
  • エラーの見つけ方
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?