Блог Олега Сердюкова

Настройка syslog-сервера на OS X для приёма сообщений TimeCapsule

Внимание! Заметка устарела.

Есть новая версия для OS X 10.9

Дано: OS X - одна штука, Time Capsule - одна штука.

Нужно: писать сообщения syslog от TimeCapsule в syslog сервера.

На TimeCapsule (впрочем, как и на AirPort Express/Extreme) настройка элементарна:

Но в syslog “из коробки” эти сообщения не попадают. Что делать?

Рецепты нашёл на SuperUser и Shortcut.

Нужно отредактировать конфигурацию launchd для запуска syslogd.

Преобразую plist в приспособленный для редактирования вид xml:

$ sudo plutil -convert xml1 /System/Library/LaunchDaemons/com.apple.syslogd.plist

Добавляю фрагмент в конце файла, начинающийся с NetworkListener:

$ sudo vim /System/Library/LaunchDaemons/com.apple.syslogd.plist

    <dict>
        <key>SockPathMode</key>
        <integer>438</integer>
        <key>SockPathName</key>
        <string>/var/run/syslog</string>
        <key>SockType</key>
        <string>dgram</string>
    </dict>

    <key>NetworkListener</key>
    <dict>
        <key>SockServiceName</key>
        <string>syslog</string>
        <key>SockType</key>
        <string>dgram</string>
    </dict>

Преобразую plist к предыдущему формату binary1:

$ sudo plutil -convert binary1 /System/Library/LaunchDaemons/com.apple.syslogd.plist

Правлю конфигурацию syslog для отправки сообщений в файл AirPort.log:

$ sudo vim /etc/syslog.conf
    #local0.*                       /var/log/appfirewall.log
    local0.*                        /var/log/AirPort.log

Не забываю создать лог-файл:

$ sudo touch /var/log/AirPort.log

Перезапускаю syslog:

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

Проверяю, что syslog стал слушать по сети:

$ sudo lsof -i:514
    COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
    launchd    1 root   55u  IPv4 0xffffff800cb05d60      0t0  UDP *:syslog
    launchd    1 root   74u  IPv6 0xffffff800bb94920      0t0  UDP *:syslog
    syslogd 2348 root    5u  IPv4 0xffffff800cb05d60      0t0  UDP *:syslog
    syslogd 2348 root    6u  IPv6 0xffffff800bb94920      0t0  UDP *:syslog

Проверяю поступление сообщений, переподключив iPhone по WiFi:

$ tail -f  /var/log/AirPort.log
    Aug 31 17:20:43 ... 80211: Disassociated with station 7c:c5:37:70:d3:9f
    Aug 31 17:20:44 ... 80211: Rotated TKIP group key.
    Aug 31 17:20:53 ... 80211: Associated with station 7c:c5:37:70:d3:9f
    Aug 31 17:20:53 ... 80211: Authenticating station 7c:c5:37:70:d3:9f to RADIUS.
    Aug 31 17:20:53 ... 80211: Installed unicast CCMP key for supplicant 7c:c5:37:70:d3:9f</small>

Для “контрольного в голову” захожу в Console.app и выбираю нужный лог:

Работает. Замечательно.

Я всё это делал с OS X Lion Server, но должно работать и на обычном OS X.

Comments