/etc/rsyslog.conf にこんな行があった*.*;auth,authpriv.none -/var/log/syslog
呪文にしか見えん
【疑問】rsyslog.conf の「*.*;auth,authpriv.none」が読めない。ファシリティ・プライオリティ・アクション、転送と logger【LPICレベル1】
前提のおさらい。rsyslogd は裏で動き続けるサービス(デーモン)で、systemd のシステムでは rsyslog.service として systemctl で起動・停止・状態の確認をする
>>1
1行は「セレクタ」と「アクション」の2つ。セレクタは ファシリティ.プライオリティ で、どこから来たどの重さのメッセージか。アクションはそれをどうするか(ふつうはファイルに書く)
>>3
ファシリティって?
>>4
メッセージを出したのが何の仲間か
auth・authpriv(認証)、cron、daemon、kern(カーネル)、lpr(印刷)、mail、syslog、user(一般のプログラム)、local0〜local7(自由に使える)など
>>3
プライオリティは?
>>6
重さで、軽いほうから
debug < info < notice < warning < err < crit < alert < emergmail.err と書くと、mail の err 以上(err・crit・alert・emerg)が全部入る。指定したもの「以上」になるのがポイント
>>7
番号もあって、emerg が0、debug が7。メッセージの中では ファシリティ×8+プライオリティ の値で送られる。user が1、notice が5 なら
>>1
で、最初の行は?
>>9*.* は全部のファシリティの全部のプライオリティ。; で次のセレクタを足して、auth,authpriv.none で auth と authpriv だけ「何も入れない」
つまり「認証以外の全部を /var/log/syslog へ」。認証は Debian の既定の設定で別の行 auth,authpriv.* /var/log/auth.log に書かれてた
>>10
ファイル名の前の - は?
>>11
書くたびにディスクへの同期をしない印(rsyslog.conf の man)。今の rsyslog は既定で同期しないから、昔の書き方の名残
>>7
err だけ、とか、err 以外、とかはできる?
>>13
rsyslog の拡張で、= を付けると そのプライオリティだけ、! を付けると除くmail.=info は info だけ、mail.!err は err 以上を除く(info など err より軽いものだけ)
>>10
Debian の既定の設定の最後に *.emerg :omusrmsg:* もあった
>>15
emerg は、ログインしてる全員の端末に表示する。:omusrmsg:root なら root にだけ
ログを別のサーバーに集めたい
>>17
送る側はアクションにホストを書く。@ は UDP、@@ は TCP。ポートの既定は514*.* @@192.0.2.10
受ける側は rsyslog.conf でコメントになってる imudp か imtcp を有効にするmodule(load="imtcp")input(type="imtcp" port="514")
>>18
UDP は届かなくても分からんから、なくなったら困るなら TCP(もっと確実なのは RELP)
>>2
自分のスクリプトからログを出すには?
>>20
logger。logger -p local0.err -t backup "disk full" で、ファシリティ local0、プライオリティ err、タグ backup
-s で標準エラーにも出す。試したマシンは /dev/log がなくて、socket /dev/log: No such file or directory になった(rsyslog も journald も動いてない)
>>2
設定を変えたら?
>>22rsyslogd -N1 で書式を確かめてから systemctl restart rsyslog。/etc/rsyslog.d/*.conf も読み込まれる($IncludeConfig の行)
>>2
Debian 12 からは、新しく入れると rsyslog は入らず journald だけになった。rsyslog を使うならパッケージを足す。syslog-ng という別の実装もある
>>3
ファシリティ.プライオリティ(以上)とアクション、; で足して none で外す、= と ! は rsyslog の拡張、@ が UDP で @@ が TCP。読めるようになった
管理人のひとこと
- rsyslog.conf の1行は「ファシリティ.プライオリティ アクション」。ファシリティは auth・authpriv・cron・daemon・kern・lpr・mail・syslog・user・local0〜7 など。
- プライオリティは debug < info < notice < warning < err < crit < alert < emerg(番号7〜0)。指定したもの以上が対象。
*はすべて、noneは除外、,でファシリティを並べ、;でセレクタを足す。=はそれだけ、!は除く(rsyslog の拡張)。 - アクション:ファイル(前の - は同期しない印)、
@ホスト(UDP 514)、@@ホスト(TCP)、:omusrmsg:*(全員の端末)。受信は imudp・imtcp。 - logger で自分のメッセージを送る(-p ファシリティ.プライオリティ、-t タグ)。設定は /etc/rsyslog.conf と /etc/rsyslog.d/。Debian 12 以降は既定で入らない。syslog-ng もある。