Linuxのrsyslogでログ出力先とレベルを設定する方法|/etc/rsyslog.confの書き方を解説

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ログ管理 > Linuxのrsyslogでログ出力先とレベルを設定する方法|/etc/rsyslog.confの書き方を解説
「どのプロセスのログがどのファイルに出力されているのか把握できていない」「特定のサービスのエラーだけを別ファイルに記録したい」

こういった悩みを解決するのが /etc/rsyslog.conf の設定です。Linuxのログ管理は rsyslog(または syslog)デーモンが担っており、どのログをどこに出力するかをこのファイルで細かく制御できます。

【この記事でわかること】

・/etc/rsyslog.confでログのファシリティ・プライオリティ・出力先を設定できる
・ファシリティはログのカテゴリ(kern/mail/cronなど)を意味する
・プライオリティはログの重要度(debug/info/warning/err/critなど)を意味する
・設定変更後はrsyslogサービスの再起動が必要

rsyslog.confの基本構造

/etc/rsyslog.conf の設定は「セレクタ(ファシリティ.プライオリティ)」と「アクション(出力先)」の組み合わせで記述します。

[root@Tiger ~]# vi /etc/rsyslog.conf #### RULES #### # *.info以上のレベルを /var/log/messages に記録(mail,authpriv,cronを除く) *.info;mail.none;authpriv.none;cron.none /var/log/messages # 認証メッセージはアクセス制限されたファイルに記録 authpriv.* /var/log/secure # メールメッセージを記録(先頭の-はディスク書き込みを非同期にする意味) mail.* -/var/log/maillog # cronのメッセージを記録 cron.* /var/log/cron # 全員に緊急メッセージを通知 *.emerg * # ブートメッセージを記録 local7.* /var/log/boot.log

ファシリティ(ログのカテゴリ)

ファシリティはログを出力するプロセスやカテゴリを表します。

auth / authpriv:認証メッセージ(sshなど)
cron:cronデーモンのメッセージ
daemon:各種デーモンのメッセージ
kern:カーネルメッセージ
mail:メール関連メッセージ
syslog:rsyslog自身のメッセージ
local0 ~ local7:独自アプリケーション用の汎用ファシリティ
*:すべてのファシリティ

プライオリティ(ログの重要度)

プライオリティは重要度の低い順に以下のとおりです。

debug:デバッグ情報
info:通常の情報
notice:通知
warning:警告
err:エラー
crit:致命的な問題
alert:すぐに修正すべき問題
emerg:システム不能の非常事態

プライオリティを指定すると、そのレベル以上のすべてのメッセージが対象になります。特定レベルのみを対象にするには = を使います(例:=debug)。none を指定するとそのファシリティを除外できます。

設定変更の手順

1. rsyslog.confを編集する

[root@Tiger ~]# vi /etc/rsyslog.conf

2. rsyslogを再起動して設定を反映する

# CentOS 6系 [root@Tiger ~]# /etc/rc.d/init.d/rsyslog restart システムロガーを停止中: [ OK ] システムロガーを起動中: [ OK ] # CentOS 7以降 [root@server ~]# systemctl restart rsyslog

応用・カスタム設定の例

特定アプリのエラーだけを別ファイルに記録する

# /etc/rsyslog.conf に追記する # local0ファシリティのerr以上を独自ファイルに記録 local0.err /var/log/myapp-error.log

ログを別サーバーに転送する

アクションに @ホスト名(UDP)または @@ホスト名(TCP)を指定することで、別サーバーにログを転送できます。

# 全てのログをUDPで別サーバーへ転送 *.* @192.168.0.200

本記事のまとめ

/etc/rsyslog.conf でログの出力先・ファシリティ・プライオリティを設定する
・設定書式は「ファシリティ.プライオリティ 出力先」
none で特定ファシリティを除外、=プライオリティ で特定レベルのみを対象にする
・変更後は systemctl restart rsyslog(CentOS 7以降)で反映する

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Linuxのログ管理を体系的に学びたい方へ

rsyslogの設定を理解すると、障害発生時の原因調査が格段に早くなります。ログ管理はLinuxサーバー運用の基本スキルです。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。