Отчет УПД. Системный администратор
Скачать 41.28 Kb.
|
Министерство науки и высшего образования Российской Федерации ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Факультет Систем управления Кафедра автоматизированных систем управления ОТЧЕТ На тему «Системный администратор» по дисциплине «Учебно-проектная деятельность» Выполнила: студент группы з-91Э-1 Полков В.Л. Проверил: Доцент кафедры АСУ Григорьева М.В. Томск-2023 Содержание Введение…………………………………………………….…………3 Постановка задачи на автоматизацию…………………………9 Оценка работы системного администратора…………………19 Заключение……………………………………………………...21 Список использованных источников………….…………………….22 Введение Профессия системного администратора появилась почти одновременно с компьютерами — еще в начале 1980-х годов. Первые сисадмины защищали и поддерживали работу локальной сети в Пентагоне. Впрочем, довольно-таки скоро они оказались востребованы не только в оборонке. Мы привыкли к ним как к людям, которые устанавливают на компьютер операционную систему и приходят на помощь, когда «что-то нажал и все исчезло». Сегодня системный администратор выполняет гораздо больше задач, профессия эволюционирует вместе с ИТ-системами, остается востребованной и дает возможности для роста. Кто такой системный администраторСистемный администратор — это специалист, который нужен в любой компании, где сотрудники работают на компьютерах. Он устанавливает, настраивает и поддерживает бесперебойную работу и безопасность ИТ-систем: приложений, сайтов, локальной сети и всего софта в компании. От сисадмина зависит, насколько комфортно будет работать команде, будет ли стабильной внутренняя технологическая инфраструктура, как быстро будут устранять неполадки и насколько оперативно восстанавливается инфраструктура после аварий. Чем занимается сисадминСистемный администратор занимается всем, что связано с настройкой и поддержанием работы внутренней инфраструктуры компании. Его задачи: Устанавливать, настраивать и обновлять все ПО, необходимое для работы компании, в том числе операционные системы Windows и Linux. Отслеживать и устранять ошибки в работе инфраструктуры: ПО для работы сотрудников, сайта или приложения компании. Поддерживать информационную безопасность, защищать локальные сети и инфраструктуру разработки от взломов. Проводить профилактику перегрузок инфраструктуры: писать скрипты для автоматизации, которые помогут системе бесперебойно работать и не «падать». Также сисадмин должен регулярно сохранять резервные копии баз данных, чтобы система продолжала работать, если возникнут проблемы. Поддерживать и настраивать системы мониторинга. Это помогает в будущем защитить инфраструктуру от таких же или схожих проблем. Алексей Мосягин: «Сейчас я работаю в компании, которая занимается разработкой софта, поэтому много приходится взаимодействовать с разработчиками. Задачи бывают разные, в моем случае часто приходится заниматься кластеризацией и тестами отказоустойчивости СУБД (систем управления базами данных. — РБК Тренды). Основные задачи — улучшать инфраструктуру, автоматизировать процессы, вести документацию. Так как я работаю с разработчиками, иногда занимаюсь настройкой софта нашей компании на серверах. Рабочий день стандартно начинается с мониторинга, чтобы понимать состояние инфраструктуры. За ночь могло что-то произойти. Например, хранилище данных заполнено на 80%, и чтобы предотвратить аварию в инфраструктуре и простой критически важных сервисов, эту проблему нужно решить. Также с утра я проверяю состояние бэкапов всех систем, потому что они выполняются по ночам, когда нагрузка на сеть меньше. После этого я отчитываюсь о работе и получаю новые задачи на ежедневном митинге». Тренды профессии С компьютерами сегодня работают везде: от очевидных финтеха и образования до ретейла и общепита. Соответственно, всем сферам понадобится системный администратор, который следит, чтобы все работало слаженно и без ошибок. В ежегодном рейтинге лучших профессий в ИТ издание U.S. News поставило системного администратора в первую десятку. Ценность сисадминов подтверждает рост их зарплат: согласно опросу Habr, во втором полугодии 2021 года доходы системных администраторов выросли на 25%. Навыки системного администратора Вопреки стереотипам, системный администратор не сидит без дела в ожидании, когда что-то сломается. Его работа — проактивная, он должен не только оперативно устранять неполадки, но и предупреждать их. Для этого нужно уметь работать с базами данных, программировать и разбираться в автоматизации, а также быть стрессоустойчивым и очень внимательным. Понимать принципы работы операционных систем Linux, Windows. Уметь работать с веб-серверами: Apache, Nginx, IIS (это HTTP-серверы, которые принимают запросы от пользователей и выдают данные, хранят файлы сайтов и приложений). Уметь отслеживать и находить ошибки и проблемы в работе инфраструктуры (при помощи ПО для мониторинга типа Zabbix). Администрировать базы данных, поддерживать их правильное функционирование и безопасность (MySQL, PostgreSQL, MSSQL). Разбираться в процессах контейнеризации и соответствующем ПО (Kubernetes). Анализировать сетевой трафик и защищенность инфраструктуры, тестировать безопасность систем при помощи специального ПО (Burp Suite, Nmap). Вести документацию происшествий и отчетность по их устранению. Автоматизировать рутинные задачи, мониторинг и исправление типовых ошибок (Ansible). Soft skills. Расставлять приоритеты. Для системного администратора надежность всегда должна быть в приоритете по отношению к внедрению новых технологий и оптимизации. Первоочередная задача — поддерживать бесперебойную работу систем, потом — все остальное. Уметь «продавать» решения руководству. Чтобы внедрить новые решения в инфраструктуру, важно предоставить руководству цифры, обосновать их ценность с точки зрения бизнес-задач, рассчитать риски. Стрессоустойчивость. Работа системного администратора связана с устранением ошибок, спасением «падающих» серверов и реакцией на происшествия. Чтобы делать ее хорошо и не сходить с ума, важно уметь сохранять спокойствие и действовать в любой сложной и неопределенной ситуации. Тайм-менеджмент. Важен, чтобы при высокой нагрузке правильно распределять время на задачи, а также определять, какие задачи являются наиболее приоритетными. Коммуникация. Системные администраторы работают в команде, взаимодействуют с разработчиками и бизнес-отделами. Чтобы успешно работать, важно уметь говорить со всеми на одном языке, разбираться в терминах слушать и ясно выражать свои мысли. Алексей Мосягин: «Раньше был распространен стереотип, что системный администратор — это затворник, который ни с кем не разговаривает. Одна из причин такого имиджа профессии в том, что сисадмину выделялся кабинет рядом с серверной или в самой серверной. Из-за этого он вынужден был находиться отдельно от основного коллектива. В системные администраторы по большей части идут специалисты со специфическим техническим складом ума: это люди идейные, которым нравится их работа. В сложную задачу они погружаются с головой, а сторонние вопросы, которые не относятся к делу, очень их отвлекают. Когда все компании начали переходить в облачные системы, сисадмины из кабинетов рядом с серверными переехали в опенспейсы. Наблюдая за своими коллегами в такой открытой среде, я вижу, что они отзывчивы и всегда готовы ответить на вопросы. Но только при условии, что сейчас нет критично важных сложных задач, которые требуют максимальной концентрации. Лично я в такие моменты ставлю себе на стол табличку «Don't disturb», и все понимают, что с вопросами лучше прийти позже». Куда расти системному администраторуПомимо роста по грейдам очевидный карьерный трек для системного администратора — DevOps-инженер. Это специалист, который внедряет в компании DevOps-методологию. Концепция DevOps предполагает оптимизацию инфраструктуры и процессов разработки, чтобы они шли эффективно, новый функционал выкатывался быстро, работа над проектом была прозрачной для всех участников: от проектирования до тестирования и эксплуатации. DevOps-инженер может работать только в компаниях, где есть команда разработки. Но зарплата его при этом выше, чем у системного администратора. По данным сайта «Работа.ру», DevOps инженер может зарабатывать до ₽357 тыс. DevOps-инженер совмещает в себе системного администратора, разработчика и тестировщика. Он постоянно ищет места в инфраструктуре разработки и развертывания ИТ-продукта, где можно улучшить или автоматизировать процессы. Чтобы перейти в эту профессию, системному администратору нужно добрать навыки программирования (Python или другой популярный язык), изучить методологию DevOps. Чтобы подступиться к профессии и понять, насколько она интересна и подходит вам, можно начать с этого списка: «Site Reliability Engineering. Надежность и безотказность как в Google» — классическая книга для инженеров доступности инфраструктуры. В ней не найти технической информации, но можно узнать о подходах к работе с инфраструктурой и коммуникации с командой. The Linux Channel — YouTube-канал для продвинутых пользователей Linux и архитекторов систем. DeusOps — YouTube-канал для тех, кто хочет погрузиться в тему DevOps. Типичный сисадмин — Telegram-канал и сообщество единомышленников, где обсуждают актуальные новости, делятся мнениями и мемами. Чат системных администраторов в Telegram — сообщество, где делятся ссылками, вакансиями и обсуждают рабочие вопросы. Поток «Системное администрирование» на Habr, Opennet.ru — новости и кейсы от профессионалов. Постановка задачи на автоматизацию В ежедневной работе сетевого администратора можно выделить следующие задачи: управление конфигурацией сети и ее компонентами, мониторинг, обеспечение отказоустойчивости и безопасности. Наличие в инфраструктуре компании большого количества различных устройств не способствует использованию единого интерфейса управления и потенциально может приводить к ошибкам в конфигурации из-за человеческого фактора. Автоматизация работы сетевого администратора осуществляется с применением различных инструментов и решений для более быстрого и эффективного выполнения рутинных задач, а самое главное для получения детерминированных результатов. В настоящее время не существует единого подхода по автоматизации при работе с сетевым оборудованием, это связано с использованием различного проприетарного программно-аппаратного обеспечения. Также отсутствует большое количество литературы на русском языке, описывающей методы и способы внедрения автоматизации в сетевую инфраструктуру. Наша задача - рассказать вам об архитектуре построения программируемых сетей и на практических примерах показать инструменты, которые вы сможете использовать в своей инфраструктуре, но обо всем по порядку. История возникновения и теория Программно-конфигурируемая сеть или Software Defined Networking – сеть передачи данных, в которой уровень управления сетью отделен от уровня передачи данных и реализуется программно. Идея о создании подобных систем возникла еще в 2006 году, инициаторами выступили специалисты университета Стэнфорда и Беркли. Данное предложение активно поддержали крупные IT-компании: Google, Facebook, Microsoft, Oracle, Dell и др. Потребность в разработке новых видов сетей была связана с увеличением общего объема трафика, что было вызвано ростом числа активных абонентов по всему миру. Начиная с 2007 года ежегодные темпы роста пропускной способности сетей во всем мире составляли около 60%, однако исследования специалистов IEEE показывают, что пропускную способность каналов связи требуется увеличивать вдвое раз в два года. В тоже время с ростом нагрузки на сети усложнялись задачи по администрированию, увеличивался перечень поддерживаемых протоколов, повышались требования к безопасности и отказоустойчивости. Современная топология сетей состоит из устройств (узлов), аппаратно-программное обеспечение которых постоянно усложняется, для того чтобы поддерживать все современные технологии. В качестве основных идей при разработке SDN были выдвинуты следующие: разделение процессов обработки трафика в архитектуре сетевого устройства; централизованный интерфейс, не зависящий от производителя, служащий для управления элементами сети (узлами); виртуализация физических ресурсов сети. В работe сетевого устройства можно выделить три абстрактных уровня: уровень передачи (Data Plane), уровень управления трафиком (Control Plane) и уровень администрирования (Management Plane): Автоматизация работы сетевого администратора Уровень передачи отвечает за физическую отправку трафика через сетевое устройство с использованием набора микросхем. Уровень управления служит для организации логики распределения маршрутов сетевого устройства. Благодаря нему выбираются оптимальные пути, согласно сетевому протоколу, что позволяет обмениваться трафиком между узлами. Уровень администрирования предназначен для управления оборудованием, к нему относится: конфигурирование, передача настроек, сбор данных. Подход SDN изменил концепцию взаимодействия между абстрактными уровнями сетевых устройств. На рисунке показано, что за уровень управления и администрирования стал отвечать отдельный программный контроллер, сетевой узел остался работать на уровне передачи. Автоматизация работы сетевого администратора Данное решение способствовало развитию технологий и инструментов, которые упрощают выполнение задач администрирования сети, среди которых можно выделить : Протокол управления OpenFlow, который обеспечивает передачу служебного трафика (таблицы маршрутизации, информация о топологии сети). Виртуализация, позволяющая перенести сетевые функции в программную среду, тем самым заменяя аппаратные решения. Автоматизация, позволяющая с помощью программных средств реализовать реконфигурацию, запрос данных и мониторинг узлов сети. Сетевые фабрики представлены в виде комплексной системы, которая позиционирует набор сетевого оборудования, как единое целое. Software-Defined Networking in a wide area network (SD-WAN) осуществляющая интеллектуальное управление потоками трафика учитывая его род и назначение. Таким образом, мы с вами кратко познакомились с концепцией и архитектурой построения программируемых сетей. В рамках наших статей мы рассмотрим инструменты по инвентаризации, сбору данных, конфигурировании различного сетевого оборудования без привязки к производителю. Сбор данных и конфигурирование сетевого оборудования За долгие годы развития ИТ-индустрии способ управления сетями оставался не изменчив. В это же время появлялись новые протоколы для взаимодействия, расширялись возможности самих сетевых устройств. Тем не менее Command Line Interface (CLI) остался широко распространенным и популярным среди сетевых администраторов. Данный метод в основном используется по умолчанию при первичной настройке сетевого оборудования, он поддерживает различные типы подключения (Telnet, SSH и другие). Администратор сети взаимодействует с программной оболочкой устройства, которая передает команды в ядро ОС и тем самым вносит изменения в конфигурационный файл. Файл конфигурации – текстовый файл, содержащий настройки системы или ее части (утилиты, демона и т. п.). Обычно инициализируется при запуске ОС и доступен для резервного копирования. Ежедневно администраторы опрашивают сетевые устройства и вносят изменения в их конфигурацию, подключаясь с помощью CLI, отправляя команды из заранее подготовленных файлов-шаблонов. Данный метод несет за собой большие риски и не является эффективным в части трудозатрат, ведь ошибка при настройке одного из устройств может повлиять на работоспособность всей сети. Развитие языков программирования способствовало автоматизации управления и администрирования сетевых устройств. Алгоритм по автоматической отправке команд до оборудования состоит из двух шагов: формирование списка команд или конфигурационного файла, далее его доставка. Автоматизация работы сетевого администратора Command Line Interface (СLI) Прежде чем мы познакомимся с программными инструментами автоматизации, необходимо обсудить классический процесс взаимодействия с сетевым оборудованием. В качестве сервера выступает сетевое оборудование, в качестве клиента – запущенный терминал на самом устройстве или на ПК администратора сети, формат ввода-вывода команд - текстовая строка. Преимуществом использования данного подхода для взаимодействия с сетевым устройством является: малая требуемая вычислительная мощность на стороне клиента; мгновенная реакция на ввод команд со стороны сервера-системы; возможность вводить последовательность заранее подготовленных команд, как вручную, так и с помощью программных средств автоматизации; полная документация команд от различных производителей оборудования. Как правило, при работе через CLI существует несколько режимов доступа, заранее запрограммированных в сетевом ПО: режим без привилегий (первичное подключение к устройству), привилегированный режим (просмотр конфигурации устройства, базовые команды), режим конфигурации (внесение изменений, осуществление настроек). Автоматизация работы сетевого администратора При внедрении средств автоматизации управления сетевыми устройствами - метод CLI рассматривается в первую очередь, потому что его поддержка заявлена каждым производителем. Он обладает полной документацией команд и высокой отказоустойчивостью, не требует больших вычислительных мощностей со стороны подключаемого клиента. Для перехода в интерфейс CLI необходимо установить соединение с узлом, для этого используется один из сетевых протоколов (Telnet, SSH и др). Python для сетевого администратора Автоматизация процесса обслуживания сетевых устройств невозможна без использования одного из языков программирования. Для 2021 года базовое знание Python это уже не преимущество кандидата (системного администратора, сетевого инженера) , а одно из требований при трудоустройстве на работу. В рамках наших статей мы не будем обучать вас основам языка, потому что в Интернете большое количество ресурсов на эту тему и вы сможете подготовиться самостоятельно. Наша задача показать и разобрать практические примеры, где вы можете использовать автоматизацию для упрощения ежедневных рутинных процессов. Итак, одно из весомых преимуществ языка Python - большое количество сторонних библиотек для решения задач из различных областей. Естественно, энтузиасты и разработчики в рамках работы с сетью и сетевым оборудованием написали достаточное количество модулей. Давайте перечислим популярных из них, поддерживающие режим взаимодействия CLI: telnetlib - встроенная библиотека, она используется для обеспечения доступа к сетевому устройству и отправке команд по Telnet протоколу (не является безопасным). pexpect - внешняя библиотека работает для передачи данных по протоколам: ssh, telnet, sftp и др. Считается универсальным инструментом для передачи команд как в ОС, так и на сетевое оборудование. Логика работы основана на ожидании получения соответствующей строки от устройства и дальнейшей отправки команды. paramiko - внешняя библиотека, обеспечивающая организацию SSH-соединения. Работает в режиме клиента и сервера, соответственно в качестве передачи данных может использоваться только протокол SSH. netmiko - внешняя библиотека от сообщества сетевых инженеров и администраторов, была разработана специально для взаимодействия с сетевым оборудованием различных производителей (адаптация под сетевую ОС). Netmiko включает в себя paramiko, описанный раннее. Пример с telnetlib В рамках сегодняшней статьи мы рассмотрим лишь библиотеку telnetlib языка Python3. Мы будем подключаться по Telnet к маршрутизатору Cisco (IOS15), вы же можете использовать оборудование другого производителя. Наша задача: сконфигурировать два сетевых интерфейса (задать ip-адресацию), включить поддержку динамического протокола маршрутизации OSPF. После символа # будет следовать комментарий к строке, файл написан в формате ".py" import getpass # импорт библиотеки getpass import telnetlib # импорт библиотеки getpass HOST = "192.168.122.71" # ip-адрес маршрутизатора Cisco user = input("Enter your telnet username: ") # запрос ввода имени password = getpass.getpass() # запрос ввода пароля в зашифрованном виде tn = telnetlib.Telnet(HOST) # инициализация подключения telnet tn.read_until(b"Username: ") # ожидание строки Username от CLI tn.write(user.encode("ascii") + b"\n")#передача данных пользователя и ENTER "ЕСЛИ требуется пароль, то передать" if password: tn.read_until(b"Password: ") tn.write(password.encode("ascii") + b"\n") tn.write(b"enable\n")# вход в режим enable tn.write(b"cisco\n") # ввод пароля для enable, не всегда требуется tn.write(b"conf t\n")# переход в конфигурационный режим tn.write(b"int loop 0\n") # настройка интерфейса loop 0 tn.write(b"ip address 1.1.1.1 255.255.255.255\n")# задание ip-адреса tn.write(b"int loop 1\n") # настройка интерфейса loop 1 tn.write(b"ip address 2.2.2.2 255.255.255.255\n")# задание ip-адреса tn.write(b"router ospf 1\n") # включение протокола OSPF tn.write(b"network 0.0.0.0 255.255.255.255 area 0\n") # настройка OSPF tn.write(b"end\n")# выход из режима конфигурации tn.write(b"exit\n")# выход из режима enable print(tn.read_all().decode("ascii") # вывести на экран команды и результат Приведенный выше скрипт написан для начала знакомства с автоматизацией, в дальнейшем будут приведены более сложные примеры. Но даже он позволяет вам подключаться к различному сетевому оборудованию и отправлять команды конфигурации или сбора данных, после чего выводить их на экран или в файл. Таким образом, сегодня мы познакомились с понятием "автоматизация при работе с сетевым оборудованием", рассмотрели основные концепции и начали изучать инструменты работы с сетью на языке Python. Мы написали скрипт, позволяющий вам взаимодействовать с оборудованием и получать предсказуемый результат. Далее будет более подробное знакомство с различными инструментами, приведем практические примеры использования, оставайтесь на связи! Оценка работы системного администратора Служебные обязанности сисадмина на любом предприятии достаточно специфичны и для их выполнения требуется человек, обладающий узкими специальными знаниями. Поэтому проверить и оценить качество работы сотрудника IT-подразделения достаточно сложно неспециалисту. Вопрос о том, как оценить системного администратора и какие критерии эффективности при этом использовать, можно решить традиционными методами.1 Обычно от сисадмина требуется только бесперебойная работа локальной сети и обеспечение компьютерной безопасности, часто он также выполняет функции технической поддержки пользователей. Оформите общий журнал учета, в котором фиксируйте все заявки и обращения пользователей. Если администраторов несколько, то руководитель группы должен решать, кто из них будет выполнять данную заявку. Оцените количество задач, которые выполнил каждый системный администратор за месяц с учетом скорости их выполнения, качества решения и отсутствия повторных обращений по этому же вопросу.2 Можно использовать другой метод. Для этого опишите все бизнес-процессы, которые решает IT-подразделение на вашем предприятии. На основе этого описания оптимизируйте структуру и численность системных администраторов с учетом функционала этого подразделения.3 Приказом введите различные разряды и должности. Это может быть помощник сисадмина, сисадмин, старший сисадмин и т.п. Для каждой должности разработайте должностную инструкцию, опишите функционал и зону ответственности. Это исключит прочный принцип «у нас каждый занимается всем», который способствует перекладыванию ответственности друг на друга и ведет к тому, что в результате спросить будет не с кого. 4 Определите вилку окладов для каждой должности или разряда, составьте структуру и штатное расписание отдела. Утвердите все документы у работодателя. 5 Проведите аттестацию сотрудников IT-отдела. Оцените их работу на основании отзыва и характеристики, данной непосредственным руководителем – начальником подразделения. Если его нет, воспользуйтесь более формальным способом – проведите собеседование. 6 По результатам проведенной аттестации скорректируйте должности и оклады сисадминов. Если системный администратор имеет много нареканий и явно не может обеспечить работоспособность техники и локальной сети, то с ним лучше расстаться, а не уменьшать ему оклад. В этом случае для предприятия дешевле обойдется приглашение более грамотного специалиста, пусть даже на более высокую ставку. 7 Разработайте инструкцию для пользователей сети, в ней оговорите порядок обращения к сисадминам, укажите, кто из них за какие вопросы ответственен и в течение какого времени должен выявить и устранить ту или иную неисправность или выполнить ту или иную работу. Это позволит использовать объективные критерии при оценке качества работы каждого системного администратора. Заключение Системные администраторы востребованы во всех организациях, активно использующих компьютеры. В профессии находят себя люди с разным уровнем образования. В принципе, лучше всего подходят для этого программисты с высшим образованием соответствующего профиля, однако в реальности для многих организаций такие специалисты оказываются непозволительной (а чаще всего и ненужной) роскошью. Там, где от работоспособности компьютерных систем зависит жизнь и безопасность людей (например, на атомных электростанциях) или сбои в их функционировании чреваты крупными убытками (скажем, на биржах), к этой работе действительно привлекаются высокопрофессиональные программисты. В обычных же офисах работодатели чаще довольствуются услугами либо толковых студентов-программистов, либо молодых людей с высшим (как правило, техническим) образованием другого профиля, хорошо разбирающихся в компьютерах. В любом случае системному администратору следует понимать принципы устройства и функционирования как отдельных компьютеров, так и их сетей, разбираться в программах, используемых в той организации, которую он обслуживает, уметь решать технические проблемы, возникающие при эксплуатации оргтехники. Список использованных источников: Показатели эффективности системного администратора школы (obrazovanie-gid.ru) Как оценить системного администратора 🚩 вопросы для системного администратора 🚩 Офисная жизнь (kakprosto.ru) Системный администратор — Википедия (wikipedia.org) Профессия: системный администратор / Хабр (habr.com) Профессия системный администратор — описание, обязанности сисадмина (smart-soft.ru) И швец, и жнец: кто такой системный администратор и что он должен уметь / Skillbox Media Системное администрирование – все, что нужно знать о профессии OTUS Системный администратор: кто это, что делает и как им стать | Медиа Нетологии (netology.ru) Кто такой системный администратор и чем занимается админ (skillfactory.ru) Системный администратор - обязанности, задачи, навыки специалиста (linuxtrainingcenter.com) Системный администратор: это кто, его обязанности, чем занимается, зарплата (kokoc.com) Кто такой системный администратор, что делает и какие у него перспективы (iklife.ru) Системный администратор – кто это и сколько зарабатывает, обзор профессии (sravni.ru) |