目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

syslogのメモ

syslogの実装は複数あり、etchはsysklogd、lennyではrsyslogdが動いています。

コマンドからsyslogに書き込んでみる

-tオプションでタグを指定、-pでファシリティとプライオリティを指定できます。

logger -t <tag> -p <facility>.<priority> <message>

/var/log/messageに書き込んだメッセージが確認できるはずです。

プライオリティ

ログの重要度に相当するものです。
プライオリティにはこんなものがある模様。括弧書きのやつは非推奨のようです。

  • emerg
  • (panic)
  • alert
  • crit
  • err
  • (error)
  • warning
  • (warn)
  • notice
  • info
  • debug

ファシリティ

ログの分類に相当するものです。
ファシリティにはこんなものがある模様です。local0 ~ 7 のファシリティがユーザが使えるファシリティになってます。

  • auth
  • authpriv
  • cron
  • daemon
  • ftp
  • kern
  • lpr
  • mail
  • news
  • syslog
  • user
  • uucp
  • local0 ~ 7

syslog.confの見方

基本的に の形式で書かれています。selectorでファシリティとプライオリティを指定して、actionで動作を指定します。
selcectorにはワイルドカードが使用できます。

# いろんなselectorの書き方
local1.*        /var/log/debug1   # local1のすべてのプライオリティ
*.*;news.none   /var/log/debug2   # (news以外の)すべてのファシリティ、すべてのプライオリティ
*.debug         /var/log/debug3   # プライオリティがdebug以上のもの
*.=debug        /var/log/debug4   # プライオリティがdebugもののみ
*.!=debug       /var/log/debug5   # プライオリティがdebug以外のもの

# ファイルにロギングする以外のいろんなactionの書き方
local1.*        @remotehost.com   # remotehost.comにログ転送
local2.*        @@remotehost.net  # remotehost.netにTCPでログ転送(rsyslog)
local3.*        *                 # ログインしているすべてのユーザに通知
local4.*        root              # rootに通知
local5.*        /dev/tty12        # 指定したコンソールに通知
local6.*        |/bin/hoge        # 指定したコマンドにパイプ