Мониторинг игровых серверов
В продолжение этой статьи.
Мониторинг серверов (всех, которые поддерживает qstat) на php.
$regexp = '~([\d\.]+)\s*([\d\/]+)\s*([\S]+)\s*(\d+\s\/\s\d+)\s*([\S]+)~s';
$out_ = array();
$m_ = array();
// check q3
$s = `/usr/local/bin/qstat -nh -q3s 127.0.0.1`;
preg_match($regexp,$s,$m_);
$m_[0]='Quake 3'; $out_[]=$m_;
$m_ = array();
// check q2
$s = `/usr/local/bin/qstat -nh -q2s 127.0.0.1`;
preg_match($regexp,$s,$m_);
$m_[0]='Quake 2'; $out_[]=$m_;
$m_ = array();
// check cs
$s = `/usr/local/bin/qstat -nh -a2s 127.0.0.1`;
preg_match($regexp,$s,$m_);
$m_[0]='CS 1.6'; $out_[]=$m_;
// output
foreach($out_ as $v) {
$s_color=intval($v[2])?'green':'red';
echo "<p style='font-family:monospace;margin-bottom:8px;'>"
."<u style='display:block;margin-bottom:4px;'><b>{$v[0]}</b> ({$v[1]})</u>"
."Игроков : <span style='color:{$s_color};font-family:monospace;'>{$v[2]}</span><br/>"
."Карта : {$v[3]}<br/>"
."Пинг : {$v[4]}<br/>"
."Мод : {$v[5]}<br/>"
."</p>";
}
Код легко модифицируется под любые потребности.
Применение его несет следующие трудности:
- при падении проверяемого сервера скрипт будет долго "думать"
- при нагруженном веб сервере результаты необходимо кэшировать, чтобы не создавать лишнюю нагрузку вызовом программы qstat
@author: j4ck
@date: Суббота, 30 Июнь 2007
Комментарии : 3
|
3] Гость - 15:44, 16 Сентябрь, 2010
|
|
www.mz-game.ru
|
|
2] Гость - 12:54, 05 Август, 2010
|
Открылось два сервера Call of Duty 4 - Modern Warfare (без проверки ключа и лагов)
- 178.165.81.34:28960 Maxnet COD4 Server Classic (патч 1.7)
- 178.165.81.34:28961 Maxnet COD4 Server Hard (патч 1.7)
Ждём вас!
|
|
1] Гость - 16:46, 30 Декабрь, 2008
|
|
Всы заходьте на мый сервер 10.192.2.75:27015
|
@СКАЖИРЕКЛАМЕНЕТ@