Мониторинг веб-серверов (постановка)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) (→Пример обмена данными) |
||
| Строка 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
Мониторинг реализуется ввиде прикладного решения на платформе Гедымин со следующей функциональностью:
- Ведение базы данных предприятий, где Гедымин используется как веб-сервер.
- Мониторинг и логирование состояния веб-серверов по установленному расписанию.
- Автоматическое оповещение системного администратора о выявленных проблемах.
- Предоставление разработчику или администратору веб-интерфейса для контроля за состоянием серверов.
Как это работает
- Решение устанавливается на компьютер, где имеется исходящий доступ в интернет и постоянно запущен gedemin.exe в режиме веб-сервера.
- В базе данных прописывается список предприятий. Для каждого указывается список веб-серверов с адресами и используемыми решениями.
- По расписанию (с использованием автозадач) запускается скрипт-функция, которая поочередно опрашивает все сервера. Полученные ответы или коды ошибок, если сервер не доступен, записываются в таблицу лога. Для каждого сервера мы храним два url. Один -- это быстрая проверка доступности сервера. Ее можно вызывать часто без угрозы снижения производительности сервера. Второй -- получение статистики. У нему будем обращаться не чаще одного раза в сутки.
- При обнаружении ошибки, системный администратор оповещается через email.
- Через веб-интерфейс можно получить доступ к панели мониторинга, где выводится список серверов их текущее состояние и накопленная статистика. Веб-интерфейс защищен логином и паролем.
Структуры данных
Данные предприятия хранятся в стандартном справочнике клиентов. Таблицы 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;
}
Поле с номером версии обязательно и всегда присутствует. По нему мы определяем что находится в нашей структуре.
Как указананная выше информация будет записана в базу данных:
Веб-интерфейс
Пример организации веб-интерфейса. Цветовое выделение сразу позволяет обратить внимание на недоступные и проблемные сервера.