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

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

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

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

или

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аннотация.

 

Данная
программа представляет собой сетевое приложение, состоящее из клиента и  сервера. Программа предназначена для
инвентаризации: сбора системной информации о наборе компьютеров с последующим
ее отображением в удобном для пользователя виде. Обе части программы: и
клиентская, и серверная, реализованы на 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-страницу, на которой представлен набор таблиц с системной информацией о
компьютерах, на которых запущен клиент. Для получения актуальной информации
достаточно просто обновить страницу в браузере.


СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

 

1.     Введение   в  
администрирование  
UNIX   [Электронный   ресурс]:
Командная строка UNIX.  -  2012  -  Режим доступа:
http://ru.wikibooks.org

2.    
Команды  
Linux  
[Электронный   ресурс]:
расширенный cправочник
команд Unix. - 1998 - Режим доступа:     http://putty.org.ru/articles/unix-linux-ref.html

3.     Гифт Н., Джонс Д. Python в системном администрировании UNIX и
Linux – Пер. с англ. – СПб.: Символ Плюс, 2009. – 512 с.

4.     Инструменты   мониторинга   и  
анализа   сети   [Электронный  
ресурс]: Классификация средств мониторинга   и  
анализа.   -   1998  
 - Режим  
доступа:   
http://citforum.ru/nets/optimize/locnop_07.shtml

Купить за 1000 ₽