Как получить запущенный запрос Apache в определенный момент? - PullRequest
1 голос
/ 16 января 2011

Мне нужно найти способ получить все запущенные запросы Apache в данный момент.Мне нужно перечислить vhost, процессор, IP-адрес запроса и некоторую другую информацию.Эта информация будет использоваться сценарием PHP.

У меня установлено mod_status и в нем содержится вся необходимая информация.Поэтому я попытался использовать file_get_contents для получения отчета, сгенерировав запрос с сервера (http://localhost/server-status).. Он работал отлично. Затем я попытался проанализировать отчет, преобразовав его в XML с помощью simplexml_load_string. Проблема в том, что HTML-код, выводимый mod_statusне правильно сформирован.

Вот HTL из таблицы, которую мне нужно проанализировать:

<table border="0"><tr><th>Srv</th><th>PID</th><th>Acc</th><th>M</th><th>CPU
</th><th>SS</th><th>Req</th><th>Conn</th><th>Child</th><th>Slot</th><th>Client</th><th>VHost</th><th>Request</th></tr>

<tr><td><b>0-1</b></td><td>-</td><td>0/0/70</td><td>.
</td><td>0.00</td><td>107</td><td>0</td><td>0.0</td><td>0.00</td><td>0.34
</td><td>127.0.0.1</td><td nowrap>zsce</td><td nowrap>OPTIONS * HTTP/1.0</td></tr>

<tr><td><b>1-1</b></td><td>-</td><td>0/0/55</td><td>.
</td><td>0.04</td><td>108</td><td>0</td><td>0.0</td><td>0.00</td><td>0.70
</td><td>127.0.0.1</td><td nowrap>zsce</td><td nowrap>OPTIONS * HTTP/1.0</td></tr>

</table>

Я уверен, что кто-то пытался сделать что-то подобное раньше. 1) Есть ли другойспособ доступа к информации мне нужно?2) Кто-нибудь пробовал другие инструменты / модули?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 16 января 2011

Я не вижу проблемы с HTML. Что с ним не так?

Разве у PHP нет либерального парсера HTML; что-то вроде Python's BeautifulSoup или Ruby's Nokogiri?

Также помните, что у mod_status есть режим 'auto' для создания машиночитаемого вывода.

http://www.apache.org/server-status?auto http://httpd.apache.org/docs/2.2/mod/mod_status.html#machinereadable

0 голосов
/ 16 января 2011

Я только что обнаружил, что если я удаляю "nowrap" из HTML перед его разбором, он работает.

...