Мониторинг игровых серверов
В продолжение этой статьи.
Мониторинг серверов (всех, которые поддерживает qstat) на php.
Код легко модифицируется под любые потребности.
Применение его несет следующие трудности:
- при падении проверяемого сервера скрипт будет долго "думать"
- при нагруженном веб сервере результаты необходимо кэшировать, чтобы не создавать лишнюю нагрузку вызовом программы qstat
Мониторинг серверов (всех, которые поддерживает 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
- 178.165.81.34:28960 Maxnet COD4 Server Classic (патч 1.7)
- 178.165.81.34:28961 Maxnet COD4 Server Hard (патч 1.7)
Ждём вас!