Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Мониторинг сервера на сайте

brebvix

Изучающий
Пользователь
Регистрация
11 Янв 2014
Сообщения
182
Лучшие ответы
0
Репутация
54
Всем привет!
Обычно в качестве мониторинга на сайте предлагают использовать библиотеку , которая имеет существенный минус - в случае, если ваш сервер перезагружается или просто временно недоступен, эта же библиотека замедляет загрузку сайта как минимум на несколько секунд (что довольно таки ощутимо даже для обычного пользователя). Есть несколько способов решить данную "проблему":
  1. Использовать для мониторинга связанную с сервером базу данных
  2. Использовать сторонний сервис для получения информации о сервере
Первый вариант является идеальным, благодаря возможности расширения функционала от простой информации о сервере до полноценной панели управления. Но давайте будем честны - те, кто может написать панель управления персонажем - вряд ли бы читали эту тему. :) И опять таки, к ограничениям: если хостинг не поддерживает PHP либо же отключена возможность создания UDP подключений (которая крайне необходима для библиотеки SampQueryApi), и недоступна на большинстве бесплатных/дешёвых хостингов - вам придется использовать сторонний сервис для получения информации о сервере.

В качестве стороннего сервиса хочу предложить , который имеет некоторые отличия от остальных мониторингов:
  • Скорость работы (сервис API размещен на отдельном сервере, что позволяет отдавать нужную информацию мгновенно)
  • Всегда актуальная статистика (мы обновляем информацию о серверах с периодичностью 5-15 минут, что позволяет отдавать пользователям данные почти в режиме реального времени)
  • Вам не нужно добавлять свой сервер в мониторинг (мы собираем информацию о актуальном списке всех серверов с открытых источников, и с огромной вероятностью ваш сервер уже есть в мониторинге)
  • Возможность узнать средний / максимальный онлайн (за последние 24 часа / последнюю неделю / последний месяц)
  • Поддержка не только CRMP, но еще и SAMP, MTA*(различия в использовании API отсутствуют)
  • Возможность получить игроков онлайн, или же ТОП-100 игроков по отыгранному на сервере времени (и в первом и во втором варианте вы получите информацию о том, сколько игрок провел времени на вашем сервере, а так же когда он был последний раз онлайн)
  • Возможность получить статистику сервера за последний день (с периодом 15 минут), последнюю неделю, последний месяц.


В качестве идентификатора (IDENTIFIER) вы можете использовать либо API сервера в мониторинге, либо адрес сервера (IP:port), например:



Для начала нужно найти сервер в мониторинге, достаточно нажать на "Поиск" вверху страницы и ввести часть названия (например "Arizona"), после из предложенного списка серверов выбираем нужный, и переходим к нему на страничку. Для доступа к API (получение информации о сервере) нужно знать ID сервера в мониторинге, для этого на страничке сервера нажмите по адресной строке, там будет что-то вроде этого:
3364
Цифры в конце строки (после слэша) и есть ID сервера в мониторинге.

Список доступных параметров:
(название / тип возвращаемых данных / краткое описание)
  • id boolean - ID сервера в мониторинге
  • title string - заголовок сервера
  • ip string - IP сервера
  • port integer - порт сервера
  • gamemode string - мод сервера
  • language string - язык сервера
  • version string - версия сервера
  • site string - сайт
  • players array
    • number integer - количество игроков онлайн
    • maximum integer - максимальное количество игроков
    • averageNumber float - средний онлайн на сервере
    • maximumNumber integer - максимальный онлайн на сервере
  • rating float - рейтинг сервера
  • createdAt string - дата добавления сервера
  • onlineStatus boolean - онлайн ли сервер
  • found boolean - найден ли сервер
PHP
Для подключения вам достаточно вставить нижеприведенный способ в любом участке сайта, где бы вы хотели вывести информацию о сервере, а так же заменить <SERVER_ID> на ID необходимого сервера.


PHP:
$server = json_decode(file_get_contents('https://servers.fun/api/servers/<SERVER_ID>'), true); // Замените <SERVER_ID> на ID или адрес нужного сервера
echo "Игроки: {$server['players']['number']} / {$server['players']['maximum']} <br>"; // Количество игроков / Максимальное количество игроков
echo "Заголовок сервера: {$server['title']} <br>"; // Заголовок сервера
echo "Адрес: {$server['ip']}:{$server['port']} <br>"; // Адрес сервера
echo "Рейтинг: {$server['rating']} / 10 <br>"; // Рейтинг сервера в мониторинге
echo "Статус: " . $server['status'] ? 'Онлайн' : 'Оффлайн' . " <br>"; // Статус сервера - Оффлайн / Онлайн
JavaScript / HTML
Используя данный способ у вас отпадает необходимость в использовании PHP, а так же данный способ подходит для абсолютно любого хостинга. Вам так же нужно всего лишь заменить <SERVER_ID> на ID необходимого сервера.


HTML:
<script src="https://servers.fun/api/servers/<SERVER_ID>&jsVariable=true"></script>
<b>Игроки:</b> <i><script>document.write(server.players.number + ' / ' + server.players.maximum);</script></i><br>
<b>Заголовок сервера:</b> <i><script>document.write(server.title);</script></i><br>
<b>Адрес:</b> <i><script>document.write(server.ip + ':' + server.port);</script></i><br>
<b>Рейтинг:</b> <i><script>document.write(server.rating);</script> / 10</i><br>
<b>Статус:</b> <i><script>document.write(server.status ? 'Онлайн' : 'Оффлайн');</script></i>
Не стоит забывать, что вышеприведенные примеры только выводят информацию в текстовом виде, если же вы хотите её оформить - вам нужно либо сделать это самостоятельно, либо воспользоваться одним из следующих веб-модулей:


Для добавления такого, адаптивного, блока с информацией о сервере к себе на сайт достаточно вставить в нужном месте следующий HTML код (и заменить <SERVER_ID> на ID нужного сервера.):
Код:
<iframe src="https://servers.fun/api/web-one?server_id=<SERVER_ID>"></iframe>

Для добавления такого, адаптивного, блока с информацией о сервере к себе на сайт достаточно вставить в нужном месте следующий HTML код (и заменить <SERVER_ID> на ID нужного сервера.):
*
Код:
<iframe src="https://servers.fun/api/web-one-dark?server_id=<SERVER_ID>"></iframe>

Ссылка на сам мониторинг для поиска нужного сервера: .

- использование всех доступных в API функций на примере PHP.

Всем спасибо, если у кого-то остались вопросы - с радостью отвечу.
 
Последнее редактирование:
Сверху Снизу