Мониторинг для сампа

Начинающий
Статус
Оффлайн
Регистрация
20 Сен 2017
Сообщения
25
Реакции[?]
20
Поинты[?]
0
Всем привет!
Обычно в качестве мониторинга на сайте предлагают использовать библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.
, которая имеет существенный минус - в случае, если ваш сервер перезагружается или просто временно недоступен, эта же библиотека замедляет загрузку сайта как минимум на несколько секунд (что довольно таки ощутимо даже для обычного пользователя). Есть несколько способов решить данную "проблему":


  1. Использовать для мониторинга связанную с сервером базу данных
  2. Использовать сторонний сервис для получения информации о сервере
Первый вариант является идеальным, благодаря возможности расширения функционала от простой информации о сервере до полноценной панели управления. Но давайте будем честны - те, кто может написать панель управления персонажем - вряд ли бы читали эту тему. :) И опять таки, к ограничениям: если хостинг не поддерживает PHP либо же отключена возможность создания UDP подключений (которая крайне необходима для библиотеки SampQueryApi), и недоступна на большинстве бесплатных/дешёвых хостингов - вам придется использовать сторонний сервис для получения информации о сервере.

В качестве стороннего сервиса хочу предложить
Пожалуйста, авторизуйтесь для просмотра ссылки.
, который имеет некоторые отличия от остальных мониторингов:

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

Пожалуйста, авторизуйтесь для просмотра ссылки.


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

HTML:
https://servers.fun/api/servers/127.0.0.1:7777

Список доступных параметров:
(название / тип возвращаемых данных / краткое описание)

  • 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="
Пожалуйста, авторизуйтесь для просмотра ссылки.
<SERVER_ID>"></iframe>




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


Ссылка на сам мониторинг для поиска нужного сервера:
Пожалуйста, авторизуйтесь для просмотра ссылки.
. (не реклама)
Пожалуйста, авторизуйтесь для просмотра ссылки.

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