Понимание logrotate's создает директиву

Проблемами с многоуровневым NAT является по существу то же что касается единственного слоя NAT, но составленный. Такой как:

  1. Задержка из-за дополнительной работы, сделанной в пакетное время жизни (хотя это вряд ли будет значительно в большинстве случаев),

  2. Знание, куда что-либо прибывает из. При попытке разыскать, куда определенные запросы прибыли из (возможно, Ваш исходящий брандмауэр зарегистрировал то, что похоже на поставленную под угрозу машину, пытающуюся извергать спам или искать другие цели заражения), NAT делает такую диагностику намного более трудной.

  3. Перенаправление портов входящего соединения при необходимости во входящих соединениях является большим количеством faf, чтобы установить и поддержать.

  4. Ограниченное количество портов. NAT работает путем перевода исходных адресов в себя на различных портах, так например:

    • машина 1 говорит с внешним портом использования веб-сервера 1024, поскольку это - источник, переводится в адрес поля NAT на, скажем, порте 10000.
    • та же машина выполняет два запроса к этому или другому, веб-сервер одновременно (весьма обычный) исходный порт использования 1025 (два параллельных соединения должны иметь порты другого источника). Поле NAT переводит это в "меня на исходном порте 10001"
    • другая машина переговоры устанавливает три связи с внешними серверами. Прекрасный, поле NAT переводит их в "меня на портах 10002, 10003 и 10004"
    • поскольку пакеты возвращаются в форме внешние машины, поле NAT знает, что наполняет предназначенный для себя на порте 10000, как, действительно предполагается, переходят к машине 1 на порте 1024, и так далее для других активных соединений.

    Это все великолепно, пока у Вас нет многих исходящих соединений - т.е. большая сеть или небольшая сеть с машинами, которые устанавливают много связей (приложения P2P как те, которые реализуют bittorrent протокол, может создать много параллельных соединений). Существует только 65 536 портов в протоколе IP, меньше 1024, которые резервируются. В то время как 60,000 мог бы походить на много, это может быстро быть использовано затем, поле NAT должно решить, какие старые отображения могут быть удалены, который обычно не так прост как "отбрасывание самое старое". Это может привести к нечетным ошибкам (случайное отбрасывание соединений для трудного для диагностирования причин) или машина, просто не бывшая способная устанавливать новые связи некоторое время.

  5. нагрузка на поле (поля) NAT. При использовании небольших полей низкой мощности (стандартные маршрутизаторы поддержки NAT, например, скорее затем полный ПК с коротким ЦП), чтобы сделать NAT, дополнительная работа перевода (по сравнению с простой передачей пакетов согласно таблице базовой маршрутизации) могла замедлить передачи через них вниз. Для доступа в Интернет это вряд ли будет проблемой (Ваше 'сетевое соединение будет узким местом), но поскольку Вы - NATing между локальными сетевыми сегментами, это могло стать довольно noticable.

0
задан 22 July 2011 в 15:41
1 ответ

Ответ - то, что апач не открывает и закрывает файл каждый раз, когда он добавляет к нему, так как это была бы огромная сумма файловой системы наверху. Это открывает дескриптор файла на файле журнала при запуске и сохраняет это открытым неограниченно долго.

Обратите внимание что create директива не является вещью, которая создает новый файл, который просто определяет владельца и режим, который дан новый файл, когда вращение происходит.

Когда апач пишет в файл журнала, он пишет в открытый дескриптор файла. Этот дескриптор должен все еще быть присоединен к существующему файлу, даже при том, что название того файла, возможно, изменилось тем временем. Это - причина, исходная апачская конфигурация logrotate содержит блок как это:

postrotate
        if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
                /etc/init.d/apache2 reload > /dev/null
        fi
endscript

Это от Debian. Другие могут сделать это по-другому, но эффект состоит в том, чтобы заставить апача перезагружать его конфигурацию, таким образом заставив это вновь открыть его дескрипторы файлов на именованных файлах журнала. Так как logrotate только что создал новый, пустой файл журнала с тем именем, апач начнет писать в него.

Так, никакие записи в журнале не потеряны, но эта форма вращения действительно требует регулярной перезагрузки через postrotate директива. Люди с серверами очень интенсивного трафика не склонны любить эту сдержанность и могли бы одобрить некоторый другой метод входа, такой как mod_log_spread

2
ответ дан 4 December 2019 в 14:42

Теги

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