Отслеживание Apache VirtualHost

(недостаточно репутации все же для комментария, таким образом, я добавляю это как ответ),

Это - причина, что я обычно поощряю позволять по крайней мере несколько типов icmp (эхо-запрос, эхо-ответ и превышенное время приходит на ум) на всех машинах, потому что отбрасывание ICMP действительно не скрывает существование машины так или иначе (это могло бы для машин позади него, хотя), но главным образом препятствует контролю и сетевая отладка.

Если Вы действительно параноики о нападениях pingflood, своего рода ограничение уровня могло бы сделать (или фильтрует только на стороне границы сети).

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

Что касается исходного вопроса, одно из сканирований nmap обычно делает задание (больше, чем часто так называемое "tcp проверяют с помощью ping-запросов" сканирование).

7
задан 26 November 2009 в 19:23
2 ответа

Я ценю, что это не всегда подходит для имения mod_status в наличии и на всем времени, но это и apachetop - лучшие способы диагностировать эти проблемы. Однако существует много способов освежевать кошку.

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

for pid in `pgrep -u www-data`; do find /proc/${pid}/cwd -printf "%l\n" ; done

Давайте сломаем его:

  • pgrep-u www-данные дает Вам список pids, работающего под пользовательскими www-данными. Это - значение по умолчанию на Debian / Ubuntu, изменение для удовлетворения собственной системе (основанные на Redhat системы имеют тенденцию использовать httpd, например, как пользователь). Для систем без pgrep можно использовать PS axuwww | grep, пользователь | awk '{печатают 2$}'
  • *для; сделайте;... сделанный * цикл означает, что мы циклично выполняемся по каждой записи, выполняющей команду (команды) в рамках того, чтобы вносить свой вклад цикла.
  • найдите, что/proc/$ {pid}/cwd-printf "%l\n" просто ищет/proc каждый из тех PIDs и выкладывает текущий рабочий каталог для того процесса. Apache будет chdir () к VirtualHost по умолчанию, когда обслуживание файлов от того VirtualHost./proc/PID/cwd будет символьной ссылкой на каталог, в котором работает апачский процесс. printf "%l\n" печатает конечную точку к той ссылке. Посмотрите находят (1) для большего количества информации об этом.

Существует два главных протеста к тому приему:

1) Если что-то работающее под тем же контекстом как процесс Apache делает chdir () за пределами каталога VirtualHost, Вам было бы трудно узнать это.

например, Сценарий PHP, работающий под mod_php (CGI будет отличаться как ветвление Apache отдельный процесс, но я предполагаю CGI, не является проблемой, или Вы смогли бы отследить их легче).

2) Если у Вас есть экземпляры Apache, которые очень очень быстро служат страницам (например, маленькая статическая страница HTML). Это обычно не проблема, но это может быть возможно. Если Вы получаете большой "Никакой такой файл или каталог" ошибки, это - в основном проявление его. Я ожидал бы некоторых, но не большинство, если они не соответствуют этому конкретному случаю. В основном это вызвано тем, что Apache обрабатывает, Вы просканировали с PS, уже вышли к тому времени, когда Вы проверили/proc. Очевидно, это означает, что они служат страницам очень очень быстро.

Относительно связанных процессов Apache памяти я использую ps_mem.py для вычисления использования памяти на мои веб-серверы. Если у Вас есть большой Apache (с точки зрения резидентной емкости памяти) процессы, и они выходят быстро, который является примерно эквивалентом просьбы, чтобы большой парень продолжал управлять спринтами на 100 м. Если Ваш веб-сервер не является общим, те "Никакой такой файл или каталог", ошибки обычно являются хорошими кандидатами, чтобы перейти некоторое содержание на легкий веб-сервер меньшего размера (например, nginx / lighttpd) или начать в большой степени кэшировать содержание (например, лак / сквид).

4
ответ дан 2 December 2019 в 23:41
  • 1
    Это - ТОЧНО вид вещи, которую я искал!Спасибо. –  Brent 27 November 2009 в 18:02
  • 2
    Я вижу много "/" результаты в этом списке. Они могли быть результатом mod_php, и если так, Вы знаете о каком-либо способе отследить их также? –  Brent 27 November 2009 в 18:54

Я думаю, что Вы хотите apachetop, или иначе mod_statusExtendedStatus On). У меня должна все же быть проблема производительности в Apache, который не был освещен mod_status, и apachetop похож на аккуратный инструмент (который имеет некоторые раздражающие ограничения в расположении журнала).

2
ответ дан 2 December 2019 в 23:41
  • 1
    Спасибо - я don' t действительно хочу поддерживать mod_status в рабочем состоянии, но изучу очистку apachetop для получения информации, если это там. –  Brent 26 November 2009 в 20:49
  • 2
    Поэтому включите его, когда Вы будете нуждаться в нем и будете возвращать его прочь снова когда you' ре сделано. Простой. –  womble♦ 26 November 2009 в 21:01
  • 3
    Это doesn' t вполне работают на какой I' m пытающийся сделать, с тех пор для превращения, это от/на Вас должно повредить все текущие апачские соединения. Я хотел бы ВИДЕТЬ текущие соединения, когда проблема происходит - который любой отъезд средств ExtendedStatus на. (это предоставляет информации I' m поиск, хотя +1) –  Brent 26 November 2009 в 22:55

Теги

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