2013年4月6日土曜日

MacをSyslog Serverにする方法

リモートでSyslogを取りたい場面があって、手元にあるMac miniで取れば良いじゃんと思い方法を調べてみました。

最初にlaunchdの設定を簡単にできるアプリLingonをインストールします。

launchdを立ち上げると下記のような画面が出てきます。ここで、サイドメニューにあるSYSYTEM DAEMONSをマウスオーバーするとSHOWと言う文字が現れますのでこれをクリックします。

クリックすると隠れていたデーモンの一覧が出てきますので、com.apple.syslogdを探してクリックします。

次に画面右下にあるExpert Modeボタンを押下してエキスパートモードにします。

この画面で、下記の赤色で書かれた部分を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>EnvironmentVariables</key>
    <dict>
        <key>ASL_DISABLE</key>
        <string>1</string>
    </dict>
    <key>HopefullyExitsLast</key>
    <true/>
    <key>JetsamProperties</key>
    <dict>
        <key>JetsamMemoryLimit</key>
        <integer>300</integer>
        <key>JetsamPriority</key>
        <integer>-49</integer>
    </dict>
    <key>Label</key>
    <string>com.apple.syslogd</string>
    <key>MachServices</key>
    <dict>
        <key>com.apple.system.logger</key>
        <true/>
    </dict>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/syslogd</string>
    </array>
    <key>Sockets</key>
    <dict>
        <key>NetworkListener</key>
        <dict>
            <key>SockServiceName</key>
            <string>syslog</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
        <key>AppleSystemLogger</key>
        <dict>
            <key>SockPathMode</key>
            <integer>438</integer>
            <key>SockPathName</key>
            <string>/var/run/asl_input</string>
        </dict>
        <key>BSDSystemLogger</key>
        <dict>
            <key>SockPathMode</key>
            <integer>438</integer>
            <key>SockPathName</key>
            <string>/var/run/syslog</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
    </dict>
</dict>
</plist>

編集が終了したら、左上にあるsaveボタンを押下して保存します。保存後下記のコマンドを実行してsyslogdを再起動させます。

$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
$

あとはクライアントの設定を行えば、コンソール.appにクライアントのログが記録されます。今回はMac OSX 10.7.5で行いましたが、他のバージョンでも出来ると思います。

0 コメント:

コメントを投稿