Как я заставляю 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 файл, но он не работает (по-видимому).
Спасибо
Я не попробовал это, но я смотрел в 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>
Обратите внимание, что, при попытке сделать это на машине Сервера 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 для использования другого средства системного журнала.