/System/Library/LaunchDaemons/com.apple.syslogd.plist を編集する.
<key>ProgramArguments</key> <array> <string>/usr/sbin/syslogd</string> </array>
の部分を
<key>ProgramArguments</key> <array> <string>/usr/sbin/syslogd</string> <string>-u</string> </array>
のように変更.
他の情報では,/System/Library/LaunchDaemons/com.apple.syslogd.plist の
NetworkListener
がキーのあるところのコメントをアンコメントすればいいと書いてある.
10.9.2 Mavericks では,
/System/Library/LaunchDaemons/com.apple.syslogd.plist (バイナリファイル)
を一旦 /tmp などにコピーし,
$ plutil -convert xml1 com.apple.syslogd.plist
として,XML ファイルに変換する.
その後,変換されたファイルを編集して,
<key>Sockets</key>
のキーの要素(dict)として,
<key>NetworkListener</key> <dict> <key>SockServiceName</key> <string>syslog</string> <key>SockType</key> <string>dgram</string> </dict>
を追加.
$ plutil -convert binary1 com.apple.syslogd.plist
として,バイナリに変換し,元あった場所に上書きコピー. 再起動でリモートからの syslog を受け付けるようになった.
com.apple.syslogd.plist を変更後,
$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist $ sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
以下の 1行を加える.
LOCAL7.*[tab]/var/log/login.log
/etc/periodic/monthly/500.monthly
cd /var/log for i in wtmp install.log; do
の部分を
cd /var/log for i in wtmp install.log login.log; do
に変更.
上記の変更はなくして,独自に作ろう 月に 1回の集計なので. /var/adm/acctrotate.sh
毎月 1日 4:01 に行う.
"-u" をつける設定をしていると syslogd に HUP を送ったあと syslogd が機能しなくなるようだ. 効果がなくなる. なので,kill -HUP じゃなくて kill する.
El Capitan ぐらいから syslog の実装が変わって logger が使えなくなった (メッセージが飛ばなくなった) また,syslogd も独自のログシステムに集約されている.
んで,どうするか.
msg="$1 ${SECURITYSESSIONID} `date +%s` I" echo "<190> ${msg}" | nc -v -u -w 0 syslogserername 514
といった記述をログインスクリプトに仕込む.
上記の "190" は,Facility と Severity から計算した値. http://www.faqs.org/rfcs/rfc3164.html にある Facility の値に 8 を掛け, Severity の値を足したもの.
例えば,
local7.info
なら
23 * 8 + 6 = 190