R50 e9c927ed4316abc7e2bb61356ecd08b8
Системное программирование

Сервис мониторинга терминалов / Terminal servers monitoring

Добавлено 12 окт 2016 в 13:59
Веб-сервис мониторинга терминальных серверов. Задачи сервиса:
1) Мониторинг залогиненых пользоватлей и их активность
2) Визаулизация данных
3) Мониторинг серверов
4) Мониториг самого сервера
5) Предоставление API для сторонних сервисов
6) Предоставление API для приложения логина на сервера (рдп-коннект)
7) Предоставление API для клиента мониторинга

Использованные технологии:

Бэк-энд:
  1. Node.js - http и REST API сервер
  2. Treeline / sail.js - фрейморвк для бэк-энда
  3. MySQL - база данных
  4. Moment.js - конвертация времени

Фронт-энд:
  1. UIKit - UI библиотека
  2. Font Awesome - иконки
  3. jQuery
  4. C3.js - графики
  5. Vis.js - тайм-лайн график
  6. 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.

6b4108dd90 596f57975d 912d72413e C3bcd57d0e 95e95e32bc B127f885b2 Ce7c0773b2 C6a53ae403 3f467b5965 58b004bebf 54934ecc1c 993d65c302 Df0276c2bd B901635c06 Edd74da3ca 1dc6da4b83 Cff96339ff 8a3333c3fe 96cf59f571 7f83f2d1cb