Linuxログ監視完全ガイド:journalctlとrsyslogの設定と活用

Linuxのログ監視を徹底解説。journalctlとrsyslogの設定方法、リアルタイム監視、ログローテーション、セキュリティ監査まで実践的に紹介。

Linuxログ監視journalctlrsyslog監査設定2026/5/25

はじめに

Linuxシステムの安定運用にはログ監視が欠かせません。本記事では、主要なログ管理ツールであるjournalctl(systemdジャーナル)とrsyslogの設定方法、実践的な監視テクニックを解説します。初心者から中級者まで役立つ内容です。

1. Linuxログの基本

1.1 ログの種類と保存場所

Linuxのログは主に以下の場所に保存されます。

  • /var/log/messages : 一般的なシステムメッセージ
  • /var/log/syslog : syslog互換のログ(ディストリビューションによる)
  • /var/log/auth.log : 認証関連(Debian系)
  • /var/log/secure : 認証関連(RedHat系)
  • /var/log/kern.log : カーネルログ
  • systemd採用のディストリビューションでは、journaldがバイナリ形式でログを管理し、journalctlコマンドで参照します。

    2. journalctlの使い方

    2.1 基本的なコマンド

    <h1>全ログの表示</h1>
    journalctl
    

    <h1>最新のログを監視(tail -f 相当)</h1> journalctl -f

    <h1>指定行数表示</h1> journalctl -n 50

    <h1>特定のサービスのログ</h1> journalctl -u nginx.service

    <h1>優先度(エラーレベル)指定</h1> journalctl -p err

    2.2 フィルタリングと検索

    <h1>時間範囲指定</h1>
    journalctl --since "2023-10-01 00:00:00" --until "2023-10-02 00:00:00"
    

    <h1>特定のプロセスID</h1> journalctl _PID=1234

    <h1>キーワード検索(grep相当)</h1> journalctl | grep "error"

    2.3 出力フォーマット

    <h1>JSON形式</h1>
    journalctl -o json
    

    <h1>詳細表示</h1> journalctl -o verbose

    3. rsyslogの設定

    3.1 rsyslogの基本設定ファイル

    設定ファイルは/etc/rsyslog.confおよび/etc/rsyslog.d/配下のファイルです。

    <h1>rsyslogサービスの状態確認</h1>
    systemctl status rsyslog
    

    <h1>設定ファイルの構文チェック</h1> rsyslogd -N1

    3.2 ログ出力先のカスタマイズ

    例:特定のファシリティ(authpriv)のログを別ファイルに出力

    <h1>/etc/rsyslog.d/10-auth.conf に記述</h1>
    authpriv.*  /var/log/auth.log
    

    再起動:systemctl restart rsyslog

    3.3 リモートログ転送

    サーバー側(受信)

    <h1>/etc/rsyslog.conf で以下を有効化</h1>
    $ModLoad imtcp
    $InputTCPServerRun 514
    

    <h1>ファイアウォールでTCP 514を許可</h1>

    クライアント側(送信)

    <h1>/etc/rsyslog.d/10-remote.conf</h1>
    *.* @@192.168.1.100:514
    

    4. ログ監視の実践テクニック

    4.1 リアルタイム監視

    <h1>journalctlでリアルタイム監視</h1>
    journalctl -f -u sshd.service
    

    <h1>rsyslogのログをtail</h1> sudo tail -f /var/log/auth.log

    4.2 アラート設定(メール通知)

    rsyslogのommailモジュールを使用:

    <h1>/etc/rsyslog.d/10-mail.conf</h1>
    $ModLoad ommail
    $ActionMailSmtpServer smtp.example.com
    $ActionMailFrom root@example.com
    $ActionMailTo admin@example.com
    $ActionMailSubject "Critical Log Alert"
    <h1>優先度crit以上のログをメール送信</h1>
    *.crit :ommail:
    

    4.3 ログローテーション(logrotate)

    <h1>/etc/logrotate.d/rsyslog の例</h1>
    /var/log/auth.log /var/log/syslog {
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
            /usr/lib/rsyslog/rsyslog-rotate
        endscript
    }
    

    5. セキュリティ監査とログ分析

    5.1 不審なログイン試行の検出

    <h1>sshの失敗ログを抽出</h1>
    journalctl -u sshd.service -p err | grep "Failed password"
    

    <h1>上位10の攻撃元IP</h1> journalctl -u sshd.service | grep "Failed password" | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10

    5.2 ファイル改ざん検知(auditd)

    auditdを併用することで、ファイルアクセスを監視できます。

    <h1>auditdのインストール</h1>
    yum install audit -y  # RHEL系
    apt install auditd -y # Debian系
    

    <h1>監視ルールの追加(/etc/passwdへの書き込みを監視)</h1> auditctl -w /etc/passwd -p wa -k passwd_change

    <h1>ログの確認</h1> auditctl -a always,exit -S all -F path=/etc/passwd -F perm=wa ausearch -k passwd_change

    6. トラブルシューティング

    よくある問題と解決策:

  • journalctlのログが保存されない : journalctl --vacuum-size=500Mで容量制限を確認
  • rsyslogがログを書き込めない : パーミッション確認(ls -l /var/log/
  • リモート転送が動作しない : ファイアウォールとSELinuxの設定を確認

  • *この記事はArch Linux/btrfs/LUKs環境で実際に検証した内容を基にしています。セキュリティ設定は環境によって異なるため、本番環境への適用前に必ずテスト環境で検証してください。*

    まとめ

    Linuxのログ監視は、journalctlとrsyslogを適切に設定することで効率的に行えます。リアルタイム監視、アラート設定、ログローテーションを組み合わせ、さらにauditdでセキュリティ監査を強化しましょう。定期的なログ分析により、問題の早期発見とセキュリティ向上を実現してください。