Как мне заставить syslogd принимать входящие соединения от удаленных хостов на Snow Leopard?
Я хотел бы централизовать ведение журналов таким образом, чтобы различные устройства и системы отправляли журналы в syslogd Snow Leopard, который обычно зависает в UDP 514. Однако я не могу заставить их успешно приниматься хорошим ole syslogd. Я установил флажок Snow Leopard, чтобы убедиться, что пакеты отправляются на порт 514 - они есть. Я проверил, что syslogd слушает на 514 - это не так.
Поиск в Google сказал мне, что в старых версиях OSX (вам не нравится, как в OSX все так быстро меняется) нужно было просто добавить флаг в демон syslogd, чтобы разрешить удаленное управление; один сделал это в com.apple.syslogd.plist. Однако у демона syslogd нет флагов (по крайней мере, на его странице руководства), которые предлагают что-либо удаленное.
Какое решение для этого?
Вторичный, менее важный, но актуальный вопрос: что такое «newsyslog»? Я вижу файл plist, но он не работает (по-видимому).
Спасибо
Ответы:
Я не пробовал это, но я посмотрел в списке для syslogd (/System/Library/LaunchDaemons/com.apple.syslogd.plist) и вижу, что эта часть закомментирована:
Удалите комментарии, а затем перезагрузите сервис:
и вы, скорее всего, на вашем пути.
Ответ на дополнительный вопрос -
newsyslog
похож на logrotate, часто встречающийся в системах Linux.man newsyslog
(или онлайн ) расскажет вам больше.Как установлено с Snow Leopard, он запускается каждые 30 минут
launchd
согласно этому биту в своем списке:источник
Обратите внимание, что если вы пытаетесь сделать это на компьютере Snow Leopard Server (по крайней мере, с 10.6.4), вы обнаружите, что в /System/Library/LaunchDaemons/com.apple.syslogd нет закомментированного раздела .plist (и что файл plist хранится в двоичном формате).
Тем не менее, копирование и вставка ключа, который Дуг цитирует выше, сработает, хотя сначала вам нужно будет преобразовать формат файла в текст таким образом:
... и вам, вероятно, следует впоследствии преобразовать его (преобразования происходят на месте):
... затем перезагрузите демон launchd в соответствии с инструкциями Дуга.
После этого полный файл plist должен выглядеть следующим образом:
Еще одно замечание: если, как и я, вы хотите отправлять выходные данные системного журнала базовых станций AirPort (и / или Time Capsules) на ваш сервер, они используют функцию 0, которую нельзя изменить . Это означает, что они будут автоматически зарегистрированы в /var/log/appfirewall.log из-за следующей записи по умолчанию в /etc/syslog.conf:
На серверной версии ОС вы можете смело изменять имя файла, например, AirPort.log, выполнив следующую команду:
... поскольку брандмауэр приложений Apple (socketfilterfw) по умолчанию отключен (и должен оставаться выключенным на сервере - ipfw - это все, что вам действительно нужно). Я не уверен, возможно ли перенастроить socketfilterfw для использования другого средства системного журнала.
источник
<key>ProgramArguments</key> <array> <string>/usr/sbin/syslogd</string> <string>-udp_in</string> </array>
Другой способ включения сетевого доступа к syslogd на Snow Leopard - использование программы командной строки PlistBuddy,
А затем перезапустите демон,
Вы можете использовать lsof, чтобы проверить, что syslogd теперь прослушивает стандартный порт syslog, 514,
источник