Студенческий портал

admin@studynote.ru
/ Регистрация
X
Все > Курсовые работы > Курсовые работы по информационным технологиям > Мониторинг системной информации
Мониторинг системной информации

Тема курсовой работы: Мониторинг системной информации

1000 ₽
Купить за 1000 ₽

или

Заказать новую работу

Более 20 способов оплатить! Сразу получаете ссылку на скачивание. Гарантия 3 дня. Исключительно для ознакомления!

Общая информация
Описание работы
Дополнительная информация

(фрагменты работы)

Общая информация
Учебное заведение: Другие города > ДРУГОЕ
Тип работы: Курсовые работы
Категория: Информационные технологии, Программирование
Год сдачи: 2012
Количество страниц: 39
Оценка: 5
Дата публикации: 15.05.2017
Количество просмотров: 533
Рейтинг работы:
Иллюстрация №1: Мониторинг системной информации (Курсовые работы - Информационные технологии, Программирование). Иллюстрация №2: Мониторинг системной информации (Курсовые работы - Информационные технологии, Программирование).
Описание работы

Создано клиент-серверное приложение на языке высокого уровня Python для периодического сбора системной информации об удаленных компьютерах(инвентаризации и учета) в сети. Приложение получает и обрабатывает следующую информацию:

-Тип, частота, загрузка процессора;

-Тип и обьем памяти;

-Данные о винчестерах;

-Данные о графическом процессоре(GPU);

-Системная информация;

-Информация о пользователях;

-Время работы компьютеров;

-Информация о сети (статистика, адреса, таблица маршрутизации, активные соединения и т. д.);

-Списки запущенных процессов;

-Списки установленных программ;

Клиент устанавливает соединение с сервером и передает данные. Сервер принимает данные от клиентов в асинхронных потоках, упорядочивает и сохраняет полученную информацию в базу данных. Генератор отчетов извлекает данные из базы данных и формирует html-отчет.

 

Работа включает в себя полноценный отчет, программу + весь исходный код с подробными комментариями. Система тестировалась Ubuntu.

Дополнительная информация

(фрагменты работы)

Аннотация.

Данная программа представляет собой сетевое приложение, состоящее из клиента и  сервера. Программа предназначена для инвентаризации: сбора системной информации о наборе компьютеров с последующим ее отображением в удобном для пользователя виде. Обе части программы: и клиентская, и серверная, реализованы на Python, высокоуровневом языке программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Использованная в работе версия - 2.7.3.

Сетевой обмен между клиентом и сервером реализован с помощью сокетов. Сокеты используют транспортный уровень согласно семиуровневой модели OSI (Open Systems Interconnection, взаимодействие открытых систем), то есть относятся к более низкому уровню, чем большинство используемых протоколов. Однако, несомненным преимуществом сокетов является простота их использования для несложных задач. 

Сторона клиента.

Клиент предаставляет из себя unix-демон, т.е. программу, работающую в фоновом режиме, не имеющую пользовательского интерфейса и выполняющую рутинную работу. Основная функциональность unix-демона реализована в классе Daemon модуля client/daemon.py. Работу демона можно разделить на три этапа: ответвление от родительского процесса, перенаправление ввода-вывода и контроль pid файла. Ответвление от родительского процесса происходит в два этапа и выполняется с помощью вызова метода fork() из стандартной библиотеки python под названием os. В качестве стандартных устройств ввода, вывода и ошибки (stdin, stdout и stderr) принудительно указывается пустое устройство /dev/null, что сделано для того, чтобы исключить взаимодействие демона с пользователем. Демон должен быть запущен в единственном экземпляре на каждом компьютере; с целью обеспечения данной функциональности происходит запись файла с PID (process identifier) самого демона во временную директорию /tmp. Каждый раз при запуске демон проверяет, существует ли там данный файл, и если он есть, то запуск принудительно отменяется.

В модуле client/main_client.py реализован класс derivedDaemon, наследующий класс Daemon. В этом классе переопределен метод run(), что позволяет сохранить логику работы, описанную выше, и добавить необходимую функциональность. В переопределенном методе run() происходит попытка установки соединения с сервером, и, если последнее оказалось успешным, начинается обмен данными. Обмен данными с сервером происходит в два этапа: сначала однократно происходит сбор и отправка не изменяющейся со временем системной информации о компьютере, затем запускается цикл, в котором с заданным в коде скрипта интервалом происходит отправка динамически меняющихся данных.

Кроме того, методы, собирающие системную информацию, также реализованы в классу derivedDaemon. В общем случае, каждый такой метод вызывает консольную команду, а затем преобразует ее вывод в более удобный для обработки и возвращает либо строку с заданными параметрами, либо словарь строк. Для отправки на сервер, данные формируются в виде словаря, а затем с помощью стандартной библиотеки pickle упаковываются в бинарную строку.

Модуль /client/main_client.py является запускаемым, причем при запуске обязателен один из параметров: start, stop или restart, отвечающие соответственно за запуск, остановку и перезапуск демона.

Сторона сервера.

Основным модулем, отвечающим за работу сервера, является server/main_server.py. Сервер при запуске открывает сокет и начинает ожидание подключений. При входящем подключении для каждого соединения начинает работать отдельный поток, в котором принимаются данные. Данные принимаются в виде бинарной строки, распаковываются в словарь, и записываются в базу данных. Для этих действий, соответственно, используются встроенные библиотеки языка pickle и shelve. Ключевым полем для записи в БД, является идентификатор компьютера, для упрощения являющийся также MAC-адресом. Кроме того, в модуле server/main_server.py происходит вызов генератора отчета в отдельном потоке с определенным в коде скрипта интервалом. 

Генератор отчета, основной код которого представлен в файле server/generate_report.py, открывает файл с базой данных, и на основании записей в БД генерирующий html-страницу, на которой представлен набор таблиц с системной информацией о компьютерах, на которых запущен клиент. Для получения актуальной информации достаточно просто обновить страницу в браузере.

Купить за 1000 ₽