API интерфейс (версия 1.4)

По API интерфейсу вы можете автоматически подключаться к serverstate.ru и считывать различные данные как,
например, информацию о задачах по мониторингу. Данная страница содержит подробное описание интерфейса.

Доступны следующие интерфейсы:
- Доступ к проверкам доступности
- Доступ к отправленным уведомлениям
- Доступ к получателям уведомлений
- Доступ к задачам по мониторингу
- Доступ к статистике мониторинга за месяц
- Доступ к статистике мониторинга за день

Доступ к проверкам доступности

API-запрос:
https://serverstate.ru/api/1/checks/?nickname=...&password=...&sensor_id=...&from=...&to=...&state=...

API-запрос (используя Check-ID):
https://serverstate.ru/api/1/checks/?nickname=...&password=...&check_id=...
Параметр Пример Описание
nickname mynickname Псевдоним пользователя serverstate.ru.
password 34819d7beeabb9260a5c854bc85b3e44 Пароль в виде криптографического хэша (MD5).
sensor_id 12345 Идентификатор задачи по мониторингу.
from 05.09.2011 Выбор проверок доступности от указанной даты.
to 09.09.2011 Выбор проверок доступности до указанной даты.
state successful Выбор проверок доступности только с определенным статусом.
Выбор осуществляется по следующим значениям: all, successful и
failed. Данный параметр опциональный. По умолчанию
выбираются все проверки доступности.
check_id 12345 Идентификатор проверки доступности.. Если данные загружаются используя этот параметр, тогда параметры sensor_id, from, to и state не требуются.
API-ответ:
<?xml version='1.0' encoding='UTF-8'?>
<checks>
 <check>
  <id>...</id>
  <created>...</created>
  <successful_flag>...</successful_flag>
  <checkpoint>...</checkpoint>
  <response_time>...</response_time>
  <failure_reason>...</failure_reason>
  <applied_information>...</applied_information>
 </check>
</checks>
Параметр Пример Описание
id 12345 Идентификатор проверки доступности.
created 09.09.2011 18:35 Дата и время проверки доступности.
successful_flag FALSE Статус проверки доступности (TRUE или FALSE).
Статус TRUE обозначает, что проверка была успешной.
checkpoint Россия (5.63.152.80) Точка мониторинга, откуда была выполнена проверка.
Точка мониторинга отсутствует, если осуществлялся мониторинг
параметров сервера.
response_time 834 Время ответа в мс. Информация отсутствует, если осуществлялся
мониторинг параметров сервера.
failure_reason CONTENT CHECK FAILED При неудачных проверках — точная причина отказа.
applied_information Данное поле содержит дополнительную информацию,
формат которой зависит от типа мониторинга:
  • Если осуществляется PING мониторинг, то данное поле содержит значение допустимой потери пакетов, а также актуальное значение потери пакетов в процентах. Например значение '50|10' означает что допустимый уровень потери пакетов составляет 50 процентов, а актуальный — 10 процентов.
  • Если осуществляется мониторинг параметров сервера, то указываются данные о параметрах и их значениях. Например, 'cpu_usage|65|GREATER THAN|95;free_disk_space|10|LESS THAN|5' содержит два параметра — cpu_usage и free_disk_space. У параметра cpu_usage актуальное значение равно 65 единиц (например, загрузка в процентах). Если актуальное значение превысит (см. ключевое слово GREATER THAN) 95 единиц, то проверка будет оцениваться как неудачная. Проверка параметра free_disk_space работает по аналогичному принципу. Доступны следующие операторы сравнения: GREATER THAN, LESS THAN, EQUALS, NOT EQUALS

Доступ к отправленым уведомлениям

API-запрос:
https://serverstate.ru/api/1/notifications/?nickname=...&password=...
Параметр Пример Описание
nickname mynickname Псевдоним пользователя serverstate.ru.
password 34819d7beeabb9260a5c854bc85b3e44 Пароль в виде криптографического хэша (MD5).
API-ответ:
<?xml version='1.0' encoding='UTF-8'?>
<notifications>
 <notification>
  <id>...</id>
  <created>...</created>
  <receiver_name>...</receiver_name>
  <receiver_contact>...</receiver_contact>
  <successful_flag>...</successful_flag>
  <type>...</type>
  <message>...</message>
 </notification>
</notifications>
Параметр Пример Описание
id 12345 Идентификатор уведомления.
created 09.09.2011 18:35 Дата и время, когда было создано уведомлениe.
receiver_name Вася Пупкин Имя адресата.
receiver_contact contact@example.com Адрес эл. почты, псевдоним в Twitter, Pushover-ID, номер мобильного телефона, URL скрипта или Telegram Chat-ID.
successful_flag TRUE Статус (TRUE или FALSE) сообщения. Статус FALSE означает,
что произошла ошибка при отправке сообщения.
type EMAIL Тип сообщения (EMAIL, SMS, TWITTER, PUSHOVER, SCRIPT CALL или TELEGRAM).
message DOWN-Message: ... Содержание уведомления. У SCRIPT CALL уведомлений содержание отсутствует.

Доступ к получателям уведомлений

API-запрос:
https://serverstate.ru/api/1/contacts/?nickname=...&password=...
Параметр Пример Описание
nickname mynickname Псевдоним пользователя serverstate.ru.
password 34819d7beeabb9260a5c854bc85b3e44 Пароль в виде криптографического хэша (MD5).
API-ответ:
<?xml version='1.0' encoding='UTF-8'?>
<contacts>
 <contact>
  <id>...</id>
  <name>...</name>
  <notify_by_email_flag>...</notify_by_email_flag>
  <email>...</email>
  <notify_by_sms_flag>...</notify_by_sms_flag>
  <phone_number>...</phone_number>
  <notify_by_twitter_flag>...</notify_by_twitter_flag>
  <twitter_username>...</twitter_username>
  <notify_by_pushover_flag>...</notify_by_pushover_flag>
  <pushover_id>...</pushover_id>
  <notify_by_script_call_flag>...</notify_by_script_call_flag>
  <script_url>...</script_url>
  <script_secret_key>...</script_secret_key>
  <notify_by_telegram_flag>...</notify_by_telegram_flag>
  <telegram_chat_id>...</telegram_chat_id>
 </contact>
</contacts>
Параметр Пример Описание
id 12345 Идентификатор получателя уведомлений.
name Вася Пупкин Имя адресата.
notify_by_email_flag TRUE Уведомление (TRUE или FALSE) по электронной почте.
TRUE означает, что уведомление по эл. почте активировано.
email contact@example.com Адрес эл. почты.
notify_by_sms_flag TRUE Уведомление (TRUE или FALSE) по SMS. TRUE означает,
что уведомление по SMS активировано.
phone_number 004916312345 Номер мобильного телефона для уведомления по SMS.
notify_by_twitter_flag TRUE Уведомление (TRUE или FALSE) в Twitter. TRUE означает
что Twitter уведомление активировано.
twitter_username @my_twitter_account Псевдоним пользователя Twitter.
notify_by_pushover_flag TRUE Уведомление (TRUE или FALSE) через Pushover сервис. TRUE означает
что Pushover уведомление активировано.
pushover_id xBEsu9SvCAy6fTbQwRF5ngx4oDydAK Pushover-ID пользователя и опциональное имя устройства. Если имя устройства существует, то оба значения разделены точкой.
notify_by_script_call_flag TRUE Уведомление (TRUE или FALSE) через запуск скрипта. TRUE означает
что уведомление активировано.
script_url http://example.com/my_script.php?sensor={SENSOR_ID} URL скрипта.
script_secret_key 0vjpLnNcqq Секретный ключ для валидации запроса.
notify_by_telegram_flag TRUE Уведомление (TRUE или FALSE) через Telegram. TRUE означает
что уведомление активировано.
telegram_chat_id 12345 Telegram Chat-ID.

Доступ к задачам по мониторингу

API-запрос:
https://serverstate.ru/api/1/sensors/?nickname=...&password=...&sensor_id=...
Параметр Пример Описание
nickname mynickname Псевдоним пользователя serverstate.ru.
password 34819d7beeabb9260a5c854bc85b3e44 Пароль в виде криптографического хэша (MD5).
sensor_id 12345 Идентификатор задачи по мониторингу. Данный параметр опциональный.
API-ответ:
<?xml version='1.0' encoding='UTF-8'?>
<sensors>
 <sensor>
  <id>...</id>
  <name>...</name>
  <address>...</address>
  <port>...</port>
  <type>...</type>
  <check_interval>...</check_interval>
  <notify_about_failure_rule>...</notify_about_failure_rule>
  <notify_about_uptime_flag>...</notify_about_uptime_flag>
  <enabled_flag>...</enabled_flag>
  <last_check_date>...</last_check_date>
  <failure_flag>...</failure_flag>
  <timeout>...</timeout>
  <notification>
   <contact>
    <id>...</id>
   </contact>
   <contact>
    <id>...</id>
   </contact>
  <notification>
 </sensor>
</sensors>
Параметр Пример Описание
id 12345 Идентификатор задачи по мониторингу.
name Задача по мониторингу Название задачи по мониторингу.
address example.com IP-адрес, домен или URL, подлежащий мониторингу.
port 80 Номер порта. У PING мониторинга номер порта не указывается.
type HTTP Тип мониторинга (HTTP, HTTPS, POP3, SMTP, IMAP, PING, FTP, CUSTOM PORT или SERVER PARAMETER).
check_interval 1 Интервал мониторинга в минутах.
notify_about_failure_rule IMMEDIATE Определение, когда после отказа будет отправлено уведомление
(IMMEDIATE, 2 FAILURE, 3 FAILURE, 4 FAILURE или 5 FAILURE).
notify_about_uptime_flag TRUE Отправлять уведомление, когда служба после отказа снова становится доступной (TRUE или FALSE).
enabled_flag TRUE Статус задачи по мониторингу (TRUE или FALSE). Статус TRUE
обозначает, что задача по мониторингу активирована.
last_check_date 09.09.2011 18:35 Дата и время последней проверки на доступность.
failure_flag FALSE Актуальное состояние доступности (TRUE или FALSE). Статус
TRUE означает, что служба в настоящий момент недоступна.
timeout 10 Установленный тайм-аут в миллисекундах. Тайм-аут значение
не указывается, если осуществляется мониторинг параметров сервера.
notification Здесь определяются различные получатели уведомлений.

Доступ к статистике мониторинга за месяц

API-запрос:
https://serverstate.ru/api/1/monthly_report/?nickname=...&password=...&sensor_id=...&month=...
Параметр Пример Описание
nickname mynickname Псевдоним пользователя serverstate.ru.
password 34819d7beeabb9260a5c854bc85b3e44 Пароль в виде криптографического хэша (MD5).
sensor_id 12345 Идентификатор задачи по мониторингу.
month 09.2011 Месяц и год, за которые будет отображаться статистика.
API-ответ:
<?xml version='1.0' encoding='UTF-8'?>
<monthly_report>
 <month>...</month>
 <uptime_percent>...</uptime_percent>
 <response_time>...</response_time>
 <total_downtime>...</total_downtime>
 <avg_downtime>...</avg_downtime>
 <number_of_downtimes>...</number_of_downtimes>
</monthly_report>
Параметр Пример Описание
month 09.2011 Месяц и год, за который отображается статистика.
uptime_percent 99.74 Время безотказной работы в процентах.
response_time 298 Среднее время ответа в миллисекундах. Не указывается,
если осуществляется мониторинг параметров сервера.
total_downtime 121 Общее время отказа в минутах.
avg_downtime 11 Среднее время отказа в минутах.
number_of_downtimes 11 Количество отказов.

Доступ к статистике мониторинга за день

API-запрос:
https://serverstate.ru/api/1/daily_report/?nickname=...&password=...&sensor_id=...&day=...
Параметр Пример Описание
nickname mynickname Псевдоним пользователя serverstate.ru.
password 34819d7beeabb9260a5c854bc85b3e44 Пароль в виде криптографического хэша (MD5).
sensor_id 12345 Идентификатор задачи по мониторингу.
day 01.09.2011 День, месяц и год, за который отображается статистика.
API-ответ:
<?xml version='1.0' encoding='UTF-8'?>
<daily_report>
 <day>...</day>
 <uptime_percent>...</uptime_percent>
 <response_time>...</response_time>
 <details>
  <hourly_report>
   <hour>...</hour>
   <uptime_percent>...</uptime_percent>
   <response_time>...</response_time>
  </hourly_report>
 </details>
</daily_report>
Параметр Пример Описание
day 01.09.2011 День, месяц и год, за который отображается статистика.
uptime_percent 99.79 Время безотказной работы в процентах.
response_time 273 Среднее время ответа в миллисекундах. Не указывается,
если осуществляется мониторинг параметров сервера.
details Статистическая информация за час.

Возможные ошибки

При обнаружении ошибки вместо XML ответа могут выводиться нижеприведенные маркеры ошибок.
Маркер ошибки Описание
ERROR_INVALID_REQUEST Неверные параметры запроса.
ERROR_INVALID_AUTH Неверные данные авторизации.