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

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

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

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

каково решение этой проблемы?

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

спасибо

22
задан Emmel
03.05.2023 20:56 Количество просмотров материала 3301
Распечатать страницу

3 ответа

Я не пробовал, но я посмотрел в plist для syslogd (/System/Library/LaunchDaemons / com.яблоко.демон 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 (или online) скажет вам более.

как установлено с Snow Leopard, он работает каждые 30 минут launchd в этот бит в файл plist:

<key>StartCalendarInterval</key>
<dict>
    <key>Minute</key>
    <integer>30</integer>
</dict>
4
отвечен Doug Harris 2023-05-05 04:44

обратите внимание, что если вы пытаетесь сделать это на Снежный Барс Server machine (по крайней мере, с 10.6.4), вы обнаружите, что в /System/Library/LaunchDaemons/com нет закомментированного раздела.яблоко.демон syslogd.plist (и что файл plist хранится в двоичном формате).

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

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

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

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

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

после этого полный файл 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.войдите из-за следующей записи по умолчанию в /etc/syslog.conf:

local0.*                                               /var/log/appfirewall.log

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

sudo touch /var/log/AirPort.log

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

11
отвечен Joe Carroll 2023-05-05 07:01

другой способ включения сетевого доступа к syslogd на Snow Leopard с помощью программы командной строки PlistBuddy,

sudo /usr/libexec/PlistBuddy /System/Library/LaunchDaemons/com.apple.syslogd.plist
add :Sockets:NetworkListener dict
add :Sockets:NetworkListener:SockServiceName string syslog
add :Sockets:NetworkListener:SockType string dgram
save
quit

, а затем перезапустить демон,

sudo launchctl unload com.apple.syslogd.plist 
sudo launchctl load com.apple.syslogd.plist 

вы можете использовать lsof, чтобы проверить, что syslogd теперь слушает стандартный порт системного журнала, 514,

$ sudo lsof -i:514
COMMAND   PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
launchd     1 root   44u  IPv6 0x0e459370      0t0  UDP *:syslog
launchd     1 root   56u  IPv4 0x0f7a9ef0      0t0  UDP *:syslog
syslogd 24319 root    5u  IPv6 0x0e459370      0t0  UDP *:syslog
syslogd 24319 root    6u  IPv4 0x0f7a9ef0      0t0  UDP *:syslog
5
отвечен aid 2023-05-05 09:18

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

logging
mac
macos
osx-server
syslogd
Вверх