前置き
ルーターがたまに切れるので買い替えどきかなと思いつつ、syslogの出力を確認してみようと思った
syslogを受け付けるようにする
初期状態でmacOSのログのシステムはsyslogで動いているようです。が、外部から受信できるようにはなっていないので、起動時に使われる/System/Library/LaunchDaemons/com.apple.syslogd.plist
を編集して、外部からのsyslogを受け付けるようにします。
手順としては、ファイルを安全な所にコピーし、一旦XML形式にして編集。バイナリ形式に戻して書き戻すだけです。
ファイルのコピー
ファイルを安全な所にコピーして作業します。
$ cd /System/Library/LaunchDaemons/
$ cp com.apple.syslogd.plist /tmp
ファイルの編集
plistは、そのままではバイナリ形式になっているので、xml形式に変換して編集します。
$ cd /tmp
$ plutil -convert xml1 com.apple.syslogd.plist
# 編集。ファイル内容は後述
$ vi com.apple.syslogd.plist
syslogd.plistの中身
以下を dict
の最後の要素(BSDSystemLoggerと同列になる箇所)として追加します。
<key>NetworkListener</key>
<dict>
<key>SockServiceName</key>
<string>syslog</string>
<key>SockType</key>
<string>dgram</string>
</dict>
Lint
ファイルの修正が妥当かを確認します。
$ plutil -lint com.apple.syslogd.plist
com.apple.syslogd.plist: OK
バイナリ形式に戻して書き戻す。
$ plutil -convert binary1 com.apple.syslogd.plist
# 元の所に書き戻す
$ sudo cp com.apple.syslogd.plist /System/Library/LaunchDaemons/com.apple.syslogd.plist
cp: /System/Library/LaunchDaemons/com.apple.syslogd.plist: Operation not permitted
SIP
ここまで順調だったんだけどなにかエラー。
sudo cp com.apple.syslogd.plist /System/Library/LaunchDaemons/com.apple.syslogd.plist
cp: /System/Library/LaunchDaemons/com.apple.syslogd.plist: Operation not permitted
うぎゃ。何やら色々と制限が入っちゃったみたい。むむむ。
ここらへん見てなんとか解決。
syslogの設定と起動
syslog.confの設定
/etc/syslog.conf に以下の行を追加する
local1.* /var/log/WZR-450
起動
$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
設定
syslogを送りたいマシン/ルーターなどから、送り先のIPアドレスを指定すればOK。
MacBook等の場合スリーブ時にネットワークが切れてIPアドレスが変わる場合があるので、固定IP&可能な限り有線接続にするのが良いです。