RIGHT:[[Mac 関係覚え書き]] *syslogd がリモートからメッセージを受けれるようにする. [#lc5740c6] /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 *syslog.conf [#pe944624] 以下の 1行を加える. LOCAL7.*[tab]/var/log/login.log *ログローテーション [#q5ac1b6e] /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 に行う. **注意 [#s0cabfb4] "-u" をつける設定をしていると syslogd に HUP を送ったあと syslogd が機能しなくなるようだ. 効果がなくなる. なので,kill -HUP じゃなくて kill する. ---- *ログインログ [#jdab1f5d] El Capitan ぐらいから syslog の実装が変わって logger が使えなくなった (メッセージが飛ばなくなった) また,syslogd も独自のログシステムに集約されている. んで,どうするか. **nc コマンド(netcat)を使う方法 [#he0bdc12] msg="$1 ${SECURITYSESSIONID} `date +%s` I" echo "<190> $HOSTNAME ${msg}" | nc -v -u -w 0 syslogserername 514 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