Веб-сервис мониторинга терминальных серверов. Задачи сервиса:
1) Мониторинг залогиненых пользоватлей и их активность
2) Визаулизация данных
3) Мониторинг серверов
4) Мониториг самого сервера
5) Предоставление API для сторонних сервисов
6) Предоставление API для приложения логина на сервера (рдп-коннект)
7) Предоставление API для клиента мониторинга
Использованные технологии:
Бэк-энд:
- Node.js - http и REST API сервер
- Treeline / sail.js - фрейморвк для бэк-энда
- MySQL - база данных
- Moment.js - конвертация времени
Фронт-энд:
- UIKit - UI библиотека
- Font Awesome - иконки
- jQuery
- C3.js - графики
- Vis.js - тайм-лайн график
- Moment.js - конвертация времени
Особенности сервиса:
- Список всех серверов
- Общая нагрузка на сервера на главной странице
- Мониторинг серверов:
- Достпуность сервера - через проверку коннекта по RDP порту
- Список пользователей
- Максимум пользователей онлайн для выбранного диапазона времени
- Список всех пользователей за указанный промежуток времени
- Мониторинг пользователей:
- Активность пользователя за выбранное время
- Временная линия активности пользователя (активен/не активен)
- Расчет активности пользователя в часах за выбранный промежуток времени
- Мониторинг сервера:
- Память
- Процессоры
- Статус дисков
- Нагрузка на сеть
Дополнительные особенности:
- XML редактор настроек внешнего ПО (клиент мониторинга, рдп-коннект)
- Автоматическая сборка ПО для Windows (сервер - CentOS)
- Список серверов в рдп-коннект
Для мониторинга серверов был разработан клиент мониторинга на C#. Приложение работает сервисом в пользовательской сессии и передает данные на сервер. Второе приложение - это "RDP Connect": после логина позволяет выбрать наименее нагруженный сервер и подключиться к нему в один клик.
*
Данное ПО не является шпионским ПО для слежения за пользователями. Оно просто мониторит нагрузку на сервера, вошедших в систему пользователей и факт активности или не активности пользователей во времени. Используется только внутри организации клиента и согласия всех пользователей.My client wanted to have Windows terminal servers monitor software. It must monitor servers load and users activity.
I build this application using next technologies:
Back-end:
1) Node.js - http and REST API processing server
2) Treeline / sail.js - back-end framework
3) MySQL - data base
4) Moment.js - time converter
Front-end:
1) UIKit - UI library
2) Font Awesome
3) jQuery
4) C3.js - chart
5) Vis.js - timeline chart
6) Moment.js - time converter
Application features.
- Show list of all servers
- Total servers load chart on main page
- Users total activity list
Servers features:
- Server online/ofline monitor via RDP port and mailer
- Users list
- Maximum online users chart for selected time range
- List of all logged users for day/hour (on chart)
- User activity features:
- Total user activity for selected time
- User activity timeline chart (work/not work)
- Calculate users work hours for time range
Host server monitor features:
- Memory load
- CPU load
- Disks status
- Network load
External software features:
- XML editor of application configuration
- Automatic system for windows executable distributive build with new configuration
- RDP connect servers list
Also, for servers and users monitoring was developed C# Application. This application works in background of user session in windows and report user activity to server (work/not work) via Rest API.
One more feature was another small programm for fast connect to server, which can show servers load and allow to select server from list.
* This is not a spy software. This software just monitor users activity and servers load. All is legal and users know. This software used only inside of company of my client.