На машине установлена FreeBSD 9, вне jailов стоит syslogd, в разных jail крутится named, tomcat, mysql. Хочу сделать так, чтобы named из jail писал в syslog вне jail. Но пока не получается.Рут jail c named стоит в /usr/jails/named. Соответственно syslogd открывает дополнительный сокет в /usr/jails/named/var/run/log. Но в лог ничего не падает. Команда logger в jail работает, но с нее тоже ничего в лог не падает (вне jail logger работает нормально), и ошибок никаких не падает.
Полазил в интернете, это навело меня на мысль, что в jail должен быть свой /dev/log. Но его создать не получается.
>ls -fs /var/run/log /usr/jails/named/dev/log
ln: /usr/jails/named/dev/log: File Exists
>rm /usr/jails/named/dev/log
rm: /usr/jails/named/dev/log: No such file or directory
>devfs -m /usr/jails/named/dev/ rule add path log unhide
>ls /usr/jails/named/dev/fd null random stderr stdin stdout urandom zero
Что не так делаю? Что почитать?
> Полазил в интернете, это навело меня на мысль, что в jail должен
> быть свой /dev/log. Но его создать не получается.Все верно, только создаете неправильно.
Надо смонтировать devfs внутри ждайла
>> Полазил в интернете, это навело меня на мысль, что в jail должен
>> быть свой /dev/log. Но его создать не получается.
> Все верно, только создаете неправильно.
> Надо смонтировать devfs внутри ждайла/usr/jails/named/dev/ - это внутри джейла. Я монтирую его штатными средствами, скриптом /etc/rc.d/jail
Изнутри же Джейла линк создавать не получается, там таких прав нет, чтобы /dev модифицировать.
>[оверквотинг удален]
> Полазил в интернете, это навело меня на мысль, что в jail должен
> быть свой /dev/log. Но его создать не получается.
>>ls -fs /var/run/log /usr/jails/named/dev/log
> ln: /usr/jails/named/dev/log: File Exists
>>rm /usr/jails/named/dev/log
> rm: /usr/jails/named/dev/log: No such file or directory
>>devfs -m /usr/jails/named/dev/ rule add path log unhide
>>ls /usr/jails/named/dev/
> fd null random stderr stdin stdout urandom zero
> Что не так делаю? Что почитать?читать:
# man jail
# man syslogd1) если у вас обычный jail без vnet, то вы используете интерфейсы хоста
2) обычно на host машине syslogd запускается с опцией -ss
-s - не логгировать с удаленных машин
-ss - не логгировать с удаленных + без сетевых сокетов
3) в jail машинах исходя из верхнего, разумеется без syslogd4) /dev будет монтироваться внутрь jail/dev если задано в настройках jail-машины:
# grep jail /etc/defaults/rc.conf:
#jail_example_devfs_enable="NO" # mount devfs in the jail
#jail_example_devfs_ruleset="ruleset_name" # devfs ruleset to apply to jail -
# usually you want "devfsrules_jail".перевод и комментарий, надеюсь не нужен - выше, это devfs для системы,
теперь вспоминаем про запуск bind9(named) во FreeBSD:5) запуск системного named в FreeBSD:
# grep named /etc/defaults/rc.conf (нас интересуют только нижние)
...
named_uid="bind" # User to run named as
named_chrootdir="/var/named" # Chroot directory (or "" not to auto-chroot it)
...если у нас переменная named_chrootdir не пуста, то named будет стартовать в chroot
окружении, для которого необходимо ЕЩЕ создание devfs со специальным набором ruleset'овТеперь поразмышляем, у нас для запуска bind(named) уже есть jail-машина, зачем городить
огород и ВНУТРИ jail'а запускать named в окружении chroot?!
Достаточно сделать named_chrootdir="" пустой и named будет стартовать обычным
образом внутри jail, но если вы хотите ВНУТРИ jail, запускать named в CHROOT, то вам
необходимо в host-машине реализовать дополнительно mount_devfs с набором правил(ruleset)
для:/jails/jail_name_root/var/named/dev
где /jails - месторазмещения jail-vm
/jails/jail_name_root - имя jail-машины где она находится# man jail
# man 8 devfsПо jail + named - все.
Теперь вернемся к syslogd:
- варианты: биндить в host'е syslogd на конкретный ip и смотреть возможно ли
при этом работать с syslogd в jail'ах?
- запускать syslogd с опцией -l для работы через unix-socket'ы : man syslogdВарианты которые рещат все ваши проблемы традиционными способами:
1) jail + vnet (vimage kernel)
2) headless virtualbox для виртуальных машинВроде бы все
Такой большой пост. А где ответ на мой вопрос.
У меня jail работает, сислог тоже, даже с опцией, только в него не пишется ничего из jail.
> Такой большой пост. А где ответ на мой вопрос.
> У меня jail работает, сислог тоже, даже с опцией, только в него
> не пишется ничего из jail.перечитывайте снова до наступления просветления
>> Такой большой пост. А где ответ на мой вопрос.
>> У меня jail работает, сислог тоже, даже с опцией, только в него
>> не пишется ничего из jail.
> перечитывайте снова до наступления просветленияЛадно, а что я не сделал по-твоему из того, что ты написал?
Ты сам делал хоть раз такую схему, как я описал? Или теоретически отвечаешь?
>>> Такой большой пост. А где ответ на мой вопрос.
>>> У меня jail работает, сислог тоже, даже с опцией, только в него
>>> не пишется ничего из jail.
>> перечитывайте снова до наступления просветления
> Ладно, а что я не сделал по-твоему из того, что ты написал?мы знакомы или пили на брудершафт?
вы все поняли о чем было написано?
какой документацией вы пользовались для установки и настройки jail?> Ты сам делал хоть раз такую схему, как я описал? Или теоретически
> отвечаешь?если бы перечитали, поняли бы.
>>>> Такой большой пост. А где ответ на мой вопрос.
>>>> У меня jail работает, сислог тоже, даже с опцией, только в него
>>>> не пишется ничего из jail.
>>> перечитывайте снова до наступления просветления
>> Ладно, а что я не сделал по-твоему из того, что ты написал?
> мы знакомы или пили на брудершафт?
> вы все поняли о чем было написано?
> какой документацией вы пользовались для установки и настройки jail?Маны я читать умею, и комменты к конфиг файлам тоже.
>> Ты сам делал хоть раз такую схему, как я описал? Или теоретически
>> отвечаешь?
> если бы перечитали, поняли бы.Опять, я задаю 2 вопроса, и не получаю на них ответ. А понтов-то сколько. Если не разу не далал, так и скажи, что чисто теоретически отвечаешь.
>[оверквотинг удален]
>> мы знакомы или пили на брудершафт?
>> вы все поняли о чем было написано?
>> какой документацией вы пользовались для установки и настройки jail?
> Маны я читать умею, и комменты к конфиг файлам тоже.
>>> Ты сам делал хоть раз такую схему, как я описал? Или теоретически
>>> отвечаешь?
>> если бы перечитали, поняли бы.
> Опять, я задаю 2 вопроса, и не получаю на них ответ. А
> понтов-то сколько. Если не разу не далал, так и скажи, что
> чисто теоретически отвечаешь.вы выступаете как воинствующий незнайка, понты оставьте себе и читайте до просветления,
вам даны ЧЕТКИЕ наводки, как по named в jail, так и по syslog:named в jail:
- либо без chroot
- если с chroot - дополнительные ruleset для mount /dev в /var/named/dev унутри jailsyslogd:
- в host машине syslogd с опцией -l на unix-socket в jail машинах
вариант отличный от традиционного jail: jail + vnet (vimage ядро)
вариант: headless virtualboxкогда поймете что традиционный jail не имеет собственного tcp/ip стека и не работает
с raw socket, все заработает
> вам даны ЧЕТКИЕ наводки, как по named в jail, так и по
> syslog:
> named в jail:
> - если с chroot - дополнительные ruleset для mount /dev в /var/named/dev
> унутри jailво внутрь, те дополнительный mount_nullfs на хосте в jailvm:/var/named/dev
с дополнительными ruleset'ами, а то ведь не поймете...
> вам даны ЧЕТКИЕ наводки, как по named в jail, так и по
> syslog:
> named в jail:
> - либо без chroot
> - если с chroot - дополнительные ruleset для mount /dev в /var/named/dev
> унутри jailЯ в своем посте пишу, что использую logger, чтобы в лог писать из тюрьмы, поэтому чрут тут не при чем. Ну и чрут я там не использую.
> syslogd:
> - в host машине syslogd с опцией -l на unix-socket в jail
> машинахО том, что syslogd открывает дополнительный сокет, я тоже писал.
> вариант отличный от традиционного jail: jail + vnet (vimage ядро)
> вариант: headless virtualboxВиртуалбокс - это совсем не то, что нужно. про vimage я ничего не слышал, как это может помочь с моими логами.
> когда поймете что традиционный jail не имеет собственного tcp/ip стека и не
> работает
> с raw socket, все заработаетЭто-то тут причем? Я с UNIX сокетами пытаюсь работать. И судя по тому, что я в интернете нахожу, схема в принципе такая может быть.
>[оверквотинг удален]
>> вариант отличный от традиционного jail: jail + vnet (vimage ядро)
>> вариант: headless virtualbox
> Виртуалбокс - это совсем не то, что нужно. про vimage я ничего
> не слышал, как это может помочь с моими логами.
>> когда поймете что традиционный jail не имеет собственного tcp/ip стека и не
>> работает
>> с raw socket, все заработает
> Это-то тут причем? Я с UNIX сокетами пытаюсь работать. И судя по
> тому, что я в интернете нахожу, схема в принципе такая может
> быть.Клинический случай....
1) Надо в "тюрьме" создать устройство, куда софт логи писать будет
2) Надо сислогу (который не в "тюрьме") сказать откуда эту писанину читать (да - как ни странно - именно с того устройства в "тюрьме". забавно - правда? и совсем не сложно)
3) http://natribu.org/
> Клинический случай....Да уж действительно!
> 1) Надо в "тюрьме" создать устройство, куда софт логи писать будет
Мы всё ближе и ближе подходим к вопросу, который я задавал в самом первом письме. Вот я там как раз написал, что надо, и спросил, как же это сделать.
> 2) Надо сислогу (который не в "тюрьме") сказать откуда эту писанину читать
> (да - как ни странно - именно с того устройства в
> "тюрьме". забавно - правда? и совсем не сложно)Было бы несложно, я бы не писал. Может еще подскажешь как? Только сначало перечитай мой первый пост, чтобы узнать, что я уже попробовал.
>[оверквотинг удален]
> Да уж действительно!
>> 1) Надо в "тюрьме" создать устройство, куда софт логи писать будет
> Мы всё ближе и ближе подходим к вопросу, который я задавал в
> самом первом письме. Вот я там как раз написал, что надо,
> и спросил, как же это сделать.
>> 2) Надо сислогу (который не в "тюрьме") сказать откуда эту писанину читать
>> (да - как ни странно - именно с того устройства в
>> "тюрьме". забавно - правда? и совсем не сложно)
> Было бы несложно, я бы не писал. Может еще подскажешь как? Только
> сначало перечитай мой первый пост, чтобы узнать, что я уже попробовал.В конфиге сислога создай еще один src - в пути укажи путь до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и удивляешься магии - он появляется сам! =)
P.S. Можешь даже прописать еще один путь в уже имеющемся src
> В конфиге сислога создай еще один src - в пути укажи путь
> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
> удивляешься магии - он появляется сам! =)Вот весь интернет в таких советах, а syslog на самом деле не может создать сокет в /dev/log. Потому что в /dev вообще нельзя произвольные файлы создавать. Или я что-то не так делаю?
Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.
> P.S. Можешь даже прописать еще один путь в уже имеющемся src
>> В конфиге сислога создай еще один src - в пути укажи путь
>> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
>> удивляешься магии - он появляется сам! =)
> Вот весь интернет в таких советах, а syslog на самом деле не
> может создать сокет в /dev/log. Потому что в /dev вообще нельзя
> произвольные файлы создавать. Или я что-то не так делаю?
> Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.
>> P.S. Можешь даже прописать еще один путь в уже имеющемся srcКонфиг сислога и то, что тебе сислог пишет в студию!
> Конфиг сислога и то, что тебе сислог пишет в студию!Облазил все логи, проверил консоль. Нигде ничего не пишет, но и сокет не создает.
>> В конфиге сислога создай еще один src - в пути укажи путь
>> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
>> удивляешься магии - он появляется сам! =)
> Вот весь интернет в таких советах, а syslog на самом деле не
> может создать сокет в /dev/log. Потому что в /dev вообще нельзя
> произвольные файлы создавать. Или я что-то не так делаю?
> Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.
>> P.S. Можешь даже прописать еще один путь в уже имеющемся srcВне jaila в rc.conf прописано:
syslogd_flags="-C -ss -l /usr/jails/named/dev/log -l /var/jails/named/run/log ..."
Второй сокет создается без проблем. А вот первый не создается. :(
>[оверквотинг удален]
>>> до устройства log песочницы (которое ты хочешь создать). Перезапускаешь сислог и
>>> удивляешься магии - он появляется сам! =)
>> Вот весь интернет в таких советах, а syslog на самом деле не
>> может создать сокет в /dev/log. Потому что в /dev вообще нельзя
>> произвольные файлы создавать. Или я что-то не так делаю?
>> Чуть попозже попробую, чтобы написать сюда, что syslog пишет мне.
>>> P.S. Можешь даже прописать еще один путь в уже имеющемся src
> Вне jaila в rc.conf прописано:
> syslogd_flags="-C -ss -l /usr/jails/named/dev/log -l /var/jails/named/run/log ..."
> Второй сокет создается без проблем. А вот первый не создается. :(О, до меня дошло: Речь идёт о фре =)
Короче, можно и на фрю поставить syslog-ng из портов - а он-то как раз попадает под мой совет выше