Translated message

A translation of this page exists in English.

Configuring system logging without journald

更新 -

Red Hat Enterprise Linux は、デフォルト設定で共存できる 2 つのロギングソリューション (systemd-journald と rsyslog) を提供します。パフォーマンスが重要なユースケースの場合、このセットアップにおけるデータスループットとメモリー消費は最適ではありません。

これを軽減するために、rsyslog をソケット専用モードで実行することを選択できます。この方法にはパフォーマンス上の利点がありますが、ログメッセージがプレーンテキストであるため、journald のフォーマットは失われます。このため、構造化された systemd ログにアクセスする必要があり、それらのメタデータを使用する場合は、これはお客様のシナリオの解決策にはなりません。

免責事項:この記事で説明する設定は、RHEL に標準搭載されている設定とは大きく異なります。imuxsock rsyslog モジュールは RHEL に同梱されており、サポート対象です。ここで概説されているように rsyslog のデフォルトのログ入力方法として使用できますが、Red Hat は可能な限りデフォルト設定を使用することを推奨しています。パフォーマンス上の問題が発生した場合は、まずこの設定が本当に最善の進め方であるかどうかを判断するために、サポートケース を作成する必要があります。

  • /etc/rsyslog.conf rsyslog 設定ファイルを編集し、imuxsock ローカルメッセージの使用を on にし、imjournal モジュールのロードをコメントアウトして imklog モジュールのロードのコメントを解除します。

    module(load="imuxsock"                 # provides support for local system logging (e.g. via the logger command)
    SysSock.Use="on")
    # module(load="imjournal"             # provides access to the systemd journal
    # StateFile="imjournal.state")        # file to store the position in the journal
    module(load="imklog") # reads kernel messages (the same are read from journald)
    
  • /etc/systemd/journald.confjournald 設定を編集します。journal をメモリー内専用モードに切り替え、転送を有効にします。

    [Journal]
    Storage=none
    ForwardToSyslog=yes
    
  • ソケットの作成とリンクを確認するために、/etc/systemd/system/rsyslog.service.d/logging.conf で、rsyslog ユニット設定ファイルのドロップインファイルを以下の内容で作成します。

    # https://access.redhat.com/articles/4058681
    [Unit]
    Requires=syslog.socket
    
    [Install]
    Alias=syslog.service
    
  • ドロップインファイルをロードし、サービスを再起動します。

    # systemctl daemon-reload
    # systemctl enable rsyslog.service
    # systemctl restart rsyslog.service
    # systemctl restart systemd-journald.service
    

Comments