Как Вы позволяете syslogd принять входящие соединения на Snow Leopard от удаленных регистраторов?

Как я заставляю syslogd принимать входящие соединения от удаленных хостов на Snow Leopard?

Я хотел бы централизовать вход таким образом, что различные устройства и системы отправляют журналы в syslogd Snow Leopard, который обычно болтается на UDP 514. Однако я не могу заставить их успешно быть принятыми хорошим ole syslogd. Я tcpdumped на поле Snow Leopard, чтобы проверить, что пакеты извергаются для портирования 514 - они. Я проверил, что syslogd слушает на 514 - это не.

Поиск с помощью Google вокруг сказанного меня, что, на более старых версиях OSX (не, Вы любите способ, которым вещи изменяются так быстро на OSX), один просто должен был добавить флаг к syslogd демону для разрешения удаленный; каждый сделал это в com.apple.syslogd.plist. Однако у syslogd демона нет флагов (по крайней мере, в его странице справочника), который предлагает любого удаленного что-либо.

Что решение к этому?

Вторичный, меньше импорта, но актуальный вопрос: что такое 'newsyslog'? Я вижу plist файл, но он не работает (по-видимому).

Спасибо

11
задан 16.04.2010, 08:08

2 ответа

Я не попробовал это, но я смотрел в plist для syslogd (/System/Library/LaunchDaemons/com.apple.syslogd.plist), и посмотрите эту прокомментированную часть:

<!--
        Un-comment the following lines to enable the network syslog protocol listener.
-->
<!--
        <key>NetworkListener</key>
        <dict>
                <key>SockServiceName</key>
                <string>syslog</string>
                <key>SockType</key>
                <string>dgram</string>
        </dict>
-->

Удалите комментарии и затем перезагрузите сервис:

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

и Вы, вероятно, на пути.


Ответьте на свой вторичный вопрос- newsyslog подобно logrotate, часто находимому в системах Linux. man newsyslog (или онлайн), скажет Вам больше.

Как установлено с Snow Leopard, это выполняется каждые 30 минут launchd на этот бит в его plist:

<key>StartCalendarInterval</key>
<dict>
    <key>Minute</key>
    <integer>30</integer>
</dict>
5
ответ дан 07.12.2019, 12:15

Обратите внимание, что, при попытке сделать это на машине Сервера Snow Leopard (по крайней мере, с 10.6.4), Вы найдете, что нет никакого прокомментированного раздела в/System/Library/LaunchDaemons/com.apple.syslogd.plist (и что plist файл хранится в двоичном формате).

Однако копирование и вставка ключа, который Doug заключает в кавычки выше, добьются цели, хотя сначала необходимо будет преобразовать формат файла для отправки текстовых сообщений таким образом:

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

... и необходимо, вероятно, преобразовать его назад впоследствии (преобразования происходят на месте):

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

... затем перезагрузите launchd демона на инструкции Doug.

Впоследствии полный plist файл должен читать следующим образом:

    <?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>HopefullyExitsLast</key>
    <true/>
    <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>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>
        <key>NetworkListener</key>
        <dict>
            <key>SockServiceName</key>
            <string>syslog</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
    </dict>
</dict>
</plist>

Еще одно примечание: если, как я, Вы хотите отправить свои базовые станции AirPort (и/или Капсулы времени) выводы системного журнала к Вашему серверу, они используют средство 0, который не может быть изменен. Это означает, что они будут автоматически зарегистрированы к /var/log/appfirewall.log из-за следующей записи по умолчанию в/etc/syslog.conf:

local0.*                                               /var/log/appfirewall.log

На Серверной версии ОС можно безопасно изменить имя файла на, например, AirPort.log, после того как Вы дали следующую команду:

sudo touch /var/log/AirPort.log

... начиная с Брандмауэра Приложения Apple (socketfilterfw) прочь по умолчанию (и должен оставаться выключенным на сервере — ipfw, все, что Вы действительно хотите). Я не уверен, возможно ли реконфигурировать socketfilterfw для использования другого средства системного журнала.

11
ответ дан 07.12.2019, 12:15

Теги

Похожие вопросы