2015-05-07 3 views
0

У меня есть сервер Apache, из которого я хочу получить некоторую статистику (например, время безотказной работы, время начала и т. Д.) Для управления на Java. Прямо сейчас у меня есть простая веб-страница PHP, которая обнаруживает время безотказной работы и время запуска сервера, перекликается с ней на странице, а затем я читаю эту одностраничную PHP-страницу с Java, где я разделяю строку, зная, какие данные находятся в ней пространство.Получение надежной статистики с сервера Apache

Но теперь я хочу знать, как много раз это было, и для того, чтобы сделать это надежно, мне понадобится процесс на сервере, который регистрирует это. Моя первая мысль состояла в том, чтобы периодически проверять эту php-страницу на java, и если бы я столкнулся с проблемой ввода-вывода, это означало бы, что сервер не работает, но это также может означать, что на стороне java нет подключения к интернету или что-то в этом роде, так что это не 100 % надежный.

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

Любая помощь? Или какое-то другое возможное решение?

ответ

0

Вы хотите использовать страницу состояния сервера apache.

Вам нужно будет иметь mod_status включено, то вам нужно добавить это в ваш файл httpd.conf

<Location "/server-status"> 
    SetHandler server-status 
    Require host example.com 
</Location> 

Машиночитаемая версия файла состояния доступна при обращении к странице http://your.server.name/server-status?auto.

Оттуда вы можете легко разбирать его со своим скриптом.

Полная документация по mod_status можно найти здесь: http://httpd.apache.org/docs/current/mod/mod_status.html

Если вы хотите, чтобы собрать статистику и обработать их позже, вы могли бы просто просто добавить задание, которое работает каждую минуту (или другие сроки по вашему выбору)

# Example of job definition: 
# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23) 
# | | .---------- day of month (1 - 31) 
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# | | | | | 
# * * * * * command to be executed 

# Execute every hour 
    * * * * * wget --output-document=apache_stats_`date +%Y-%m-%d_%H:%M:%S`.txt http://your.server.name/server-status?auto 
+0

Это полезно, но я могу сделать это уже с PHP. Мне нужен способ сохранить эту информацию (время безотказной работы, время запуска, текущее время) в файле на стороне сервера и обновить его, пока сервер подключен к сети, поэтому я могу собрать статистику позже. – KatVolkov

+0

см. Обновленный ответ, который показывает, как сделать это cron job. – Augwa

+0

Спасибо большое, но я огляделся, чтобы узнать о работе cron job, и если бы я правильно понял, это в Unix ... и я использую Windows. Извините, но спасибо за вашу помощь! – KatVolkov

Смежные вопросы