こんにちは、さるまりんです。
サーバーやアプリの挙動を確認するときにまずは「ログ」をみる。
GUIツールを使って効率的に行うのも良いのですが、最終的にはターミナルで確認することが多いように思います。
今回は、開発・運用で役立つ「ログ監視ワンライナー」を集めてみました。
1. 基本の tail -f
まずはこれですね。tail -f
でログをリアルタイムで追いかけます。
tail -f /var/log/syslog
新しいログが追加されると即座に画面に反映されるので何が起こっているのかをみるにはとても便利です。
2. 特定の文字列だけ見たいとき
大量にログが出力されていると、流れが速すぎて何が起こってるかわからなくなる時があります。
そんな時はgrepコマンドと組み合わせて使います。
tail -f /var/log/syslog | grep "ERROR"
これで「ERROR」を含む行だけを表示します。
デバッグや障害対応時に、ノイズを減らして効率的に確認です。
3. 見やすく色付き表示
さらにマッチしたところを色付きで表示します。
tail -f /var/log/syslog | grep --color=always "ERROR"
マッチ部分を色付けして強調、複数キーワードを使うならgrep -E "ERROR|WARN"
のように書くことができます。
4. Docker コンテナのログ監視
最近はDockerを使った開発も多いですよね。
「さるまりんのひきだし」でもDockerでパパッと環境を作ってとかよくやっていますね。
その、Docker上のコンテナのログを追跡する方法です。
docker logs -f <container_id> | grep "WARN"
docker logs -f
で、コンテナのログをリアルタイムで追跡できます。
サービスごとの監視に便利です。
5. less +F
長いファイルを表示・検索するときに使うless
コマンドに+F
オプションをつけると、tail -f
と同じようにファイルを追いかけられます。
less +F abc.log
開いた直後は画面の下に
Waiting for data... (interrupt to abort)
と表示され、変更があるたびに更新されます。
Ctrl+C
で通常の less
に戻って検索・移動ができ、
Shift+F
で再び追いかけモードに戻せます。
いろんな工夫で便利にログを監視することができますね。
これらのワンライナーを覚えておくといざという時に強い味方になります。
ここに集めてみたものの他に、複数のファイルをmultitail
っていう、複数のファイルを同時に監視できるツールもあるみたいです。
これも試してみたいです。使ってみて、ここで扱ってみたいと思います。
読んでくださってありがとうございました。
それでは、また!