【RHEL】journaldとは?rsyslogとの違い画像付き解説

【RHEL】journaldとは?rsyslogとの違い画像付き解説 Linuxサーバ
スポンサーリンク

rsyslogとjounaldログの違いについて

rsyslogはjournaldが保管したログを参照してログファイルに出力します。
journaldのログがあればsyslogは不要ではと考えてしまいますが、rsyslogではファシリティー、セベリティを設定して必要なログ情報だけを抽出して保管することができます。



jounaldについて詳しく知りたい方は、以下を参照ください。


jounaldのログを参照するケース

サーバで障害が発生し、すべてのイベントログを確認したいとき利用すると便利です。

rsyslogでは、ファシリティー、セベリティでログ出力が制限されており、確認したいログを出力されていない場合があります。
また、用途に合わせてファイルを分けて出力しているので、どのファイルに出力されるログなのか把握しておく必要があります。

jounaldでログを見るケースは、どのファイルに出力されたログなのか?が分からなかったり、時間帯を絞って、すべてのログを参照したい場合に非常に便利です。


rsyslogのログを参照するケース

業務でログの内容を絞って毎回確認したい場合やサービスが明確になっていて、ログを用途ごとに分けて確認したい場合に利用すると便利です。

journaldのログは、あらゆるログが保管されているので、目的以外のログと混じってログを確認するケースが発生し、ログが見づらくなる場合があります。

rsyslogでログを見るケースは、ログの内容を制限して目的のログを効率よく確認したい場合に非常に便利です。


journaldログの注意事項

journaldのログとrsyslogで設定するログで同じログが2重で保管されていることになるのですが、journaldのログはサーバが再起動すると消えてしまいます。

ログを保存しておきたい場合は、rsyslogでログを保管するか、journaldの設定を変更して再起動してもログが保管できるように設定しておく必要があります。

おススメは、ディスク容量を無駄にしてしまうと考えてしまいますが、journaldのログがサーバ再起動しても消えないよう保管設定することです。

 

基本、rsyslogで設定したログを参照し、何かあったときにjournaldでログを確認できるようにしておくと便利です。

journaldログの保管容量は、設定できるのでディスク容量を圧迫させない程度に無理なく保管することで、2重のログ管理の負担を軽減できます。




journaldとrsyslogのログ出力の違いを検証

journaldで管理されているログを利用してrsyslogのログは出力されています。
rsyslogの出力制限(ファシリティー、セベリティ)の設定でログが出力されなくてもjournaldで管理されているログ(原本)は残っています。
この検証は、journaldのログを参照することで、すべてのログが閲覧できることを確認できます。

【検証1】journaldとrsyslogの両方にログが出力されているケース

サーバへssh接続した時のログを「/var/log/secure」へ出力されるようにrsyslogで設定しています。このログがjournaldのログでも出力されていることを確認します。

rsyslogで設定したログを確認

【1.】から【6.】まで

rsyslog.confにて/var/log/secureにログが出力されるように設定
rsyslogで設定して/var/log/secureにssh接続したときのログ出力
※【6.】がrsyslogで設定して出力されたログ

journaldで出力されたログを確認

【7.】から【8.】まで

journaldで出力されたログをjournalctlコマンドで確認
※【8.】がjournaldで出力されたログ


sshの接続ログは「rsyslogの出力されたログ【6.】」「journaldのログ【8.】」で同じログを確認できました。



【検証2】journaldにログが出力されrsyslogにログが出力されないケース

サーバへssh接続した時のログを「/var/log/secure」へ出力されないようにrsyslogで設定しています。このログがjournaldのログでは出力されていることを確認します。

rsyslogの設定でログが出力されないことを確認

【1.】から【6.】まで

rsyslog.confにて/var/log/secureにログが出力されないように設定
rsyslogで設定で/var/log/secureにssh接続したときのログが出力されない
※rsyslogの設定で【6.】以降ログが出力されていない

journaldで出力されたログを確認

【7.】から【8.】まで

journaldで出力されたログをjournalctlコマンドで確認
※【8.】がjournaldで出力


sshの接続ログは、rsyslogでログ出力しない設定をしたことで、「journaldのログ【8.】」でしか確認できないことが確認できました。



【検証3】rsyslogで制限したログがjournaldのログで出力されている事を確認

rsyslogの設定で「/var/log/messages」にログを出力する設定にしています。
「/var/log/messages」は、ログ制限(「ファシリティー」・「セベリティ」)により
「user.info」のログレベルは出力されます。
「user.debug」のログレベルは出力されません。
このログをjournaldのログでは、すべて出力されていることを確認します。

rsyslogの「/var/log/messages」の設定を確認

【1.】から【3.】まで

rsyslogの設定に/var/log/messagesのログの出力設定を確認


「/var/log/messages」へ「user.info」のログ出力とjournaldのログ

【4.】から【6.】まで

rsyslogの/var/log/messagesのログではuser.infoは出力され、journaldのログでも出力されます
※「/var/log/messages」に「user.info」のログ【5.】は出力されており
journaldのログ【6.】にもログが出力されている

「/var/log/messages」へ「user.debug」のログ出力とjournaldのログ

【7.】から【9.】まで

rsyslogの/var/log/messagesのログではuser.debugは出力されないが、journaldのログでは出力されます
※「/var/log/messages」に「user.debug」のログ【8.】は出力されいないが
journaldのログ【9.】には出力されている


rsyslogの設定で「/var/log/messages」は、「user.info」レベルのログ【5.】は出力して、「user.debug」レベルのログ【8.】は出力させない設定を実施しました。「journaldのログ【6.】と【9.】」では、すべてのログを確認できました。

コメント

タイトルとURLをコピーしました