Мониторинг веб-серверов (постановка)

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(Пример обмена данными)
Строка 52: Строка 52:
 
===Пример обмена данными===
 
===Пример обмена данными===
  
 +
Запрос:
  
 +
  GET http://some.ip/get_stat_url_v1
 +
 +
Со временем может появиться другая процедура статистики или другая версия этой процедуры. Для того, чтобы несколько могли уживаться на одной базе, у каждой будет свой URL. Запрос может быть без параметров. В этом случае процедура сама знает за какой период посчитать и вернуть статистику.
 +
 +
Ответ сервера:
 +
 +
  {
 +
    version: 1;
 +
    date_begin: '01.04.2017';
 +
    date_end: '01.05.2017';
 +
    active_clients: 567;
 +
    request_server: 2418;
 +
  }
 +
 +
Поле с номером версии обязательно и всегда присутствует. По нему мы определяем что находится в нашей структуре.
 +
 +
Как указананная выше информация будет записана в базу данных:
  
 
===Веб-интерфейс===
 
===Веб-интерфейс===

Версия 20:52, 3 июня 2017

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

  1. Ведение базы данных предприятий, где Гедымин используется как веб-сервер.
  2. Мониторинг и логирование состояния веб-серверов по установленному расписанию.
  3. Автоматическое оповещение системного администратора о выявленных проблемах.
  4. Предоставление разработчику или администратору веб-интерфейса для контроля за состоянием серверов.

Как это работает

  1. Решение устанавливается на компьютер, где имеется исходящий доступ в интернет и постоянно запущен gedemin.exe в режиме веб-сервера.
  2. В базе данных прописывается список предприятий. Для каждого указывается список веб-серверов с адресами и используемыми решениями.
  3. По расписанию (с использованием автозадач) запускается скрипт-функция, которая поочередно опрашивает все сервера. Полученные ответы или коды ошибок, если сервер не доступен, записываются в таблицу лога. Для каждого сервера мы храним два url. Один -- это быстрая проверка доступности сервера. Ее можно вызывать часто без угрозы снижения производительности сервера. Второй -- получение статистики. У нему будем обращаться не чаще одного раза в сутки.
  4. При обнаружении ошибки, системный администратор оповещается через email.
  5. Через веб-интерфейс можно получить доступ к панели мониторинга, где выводится список серверов их текущее состояние и накопленная статистика. Веб-интерфейс защищен логином и паролем.

Структуры данных

Данные предприятия хранятся в стандартном справочнике клиентов. Таблицы GD_CONTACT, GD_COMPANY.

Список серверов USR$WEBM_SERVER:

 id                dintkey,
 usr$name          dname,
 usr$ip            
 usr$checkurl
 usr$staturl
 usr$login
 usr$password
 usr$companykey
 usr$email
 disabled

Лог USR$WEBM_LOG:

 id
 usr$timestamp
 usr$serverkey
 usr$address
 usr$code
 usr$response_time

Данные USR$WEBM_LOG_DATA:

 id
 usr$logkey
 usr$field
 usr$intvalue
 usr$dblvalue
 usr$tsvalue
 usr$varcharvalue

Пример обмена данными

Запрос:

 GET http://some.ip/get_stat_url_v1

Со временем может появиться другая процедура статистики или другая версия этой процедуры. Для того, чтобы несколько могли уживаться на одной базе, у каждой будет свой URL. Запрос может быть без параметров. В этом случае процедура сама знает за какой период посчитать и вернуть статистику.

Ответ сервера:

 {
   version: 1;
   date_begin: '01.04.2017';
   date_end: '01.05.2017';
   active_clients: 567;
   request_server: 2418;
 }

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

Как указананная выше информация будет записана в базу данных:

Веб-интерфейс

Пример организации веб-интерфейса. Цветовое выделение сразу позволяет обратить внимание на недоступные и проблемные сервера.

webm_1.png

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты