티스토리 뷰

파이썬으로 단순히 프로그램 만드는 걸 넘어서 서버관리도 해보고 시스템 관리도 하는 걸 배워보고 싶어서 이 책을 구입함. 일단 초보용 책이나 파이썬 기본 책은 절대 아님. 파이썬 이름이 있다고 함 파이썬이나 배워볼까 이 책을 샀다간 낭패당함. 이 책은 파이썬 안에서 시스템 관리라는 완전 좁은 분야만을 커버하기 위해 나온 책임. 따라서 이 책을 볼거면 목적이 확실해야 한다. 내가 지금 배우고 싶은게 시스템 관리가 맞는지, 아니면 파이썬을 응용한 다른 걸 배우고 싶은건지 확실히 정하고 책을 보도록하자.시스템 관리를 위한 파이썬 책 자체가 많지 않기 때문에 관심있는 분들에게 추천함

파이썬은 대부분 시스템/네트워크 장비에 기본적으로 설치되어 있어서 어렵지 않게 바로 사용할 수 있다. 또한, 다양한 라이브러리를 기본으로 제공하고 있어, 이를 통해 사용자 환경에 맞게 조합하고 구성해 ‘자동화’와 같은 사용자의 목적에 맞는 코드를 작성할 수 있다. 이 책에서는 시스템/네트워크 장비에서 실제 사용하는 파이썬 코드의 기본적인 문법과 꼭 필요한 배경 지식을 설명하고 있다. 또한 시스템/네트워크 장비가 없는 독자를 위해서도 가능한 한 직접 실습할 수 있는 환경을 구축하여 학습할 수 있도록 구성했다.

▣ 01장: 시스템/네트워크 업무 개론
1.1 데이터센터란?
___데이터센터의 환경
___데이터센터의 데이터 흐름
___데이터센터의 장점
1.2 시스템 엔지니어의 업무
___1.2.1서버 소개
___1.2.2서버의 하드웨어 구성 요소
______CPU
______메모리
______시스템 보드
______네트워크 카드
______레이드 카드
___1.2.3운영체제의 역할
______운영체제가 해야 하는 가장 중요한 일
______운영체제가 해야 하는 기본적인 일
______모니터링 지표 생성
___1.2.4 시스템 엔지니어에게 추가로 요구되는 사항
___가상화되어 가는 환경
___서버와 연결되는 되는 스위치
1.3 네트워크 엔지니어의 업무
___1.3.1네트워크 장비의 기본 기능
______라우팅
______스위칭
___1.3.2네트워크 프로토콜
______네트워크 계층별 프로토콜의 이해
______다양한 프로토콜의 이해
___1.3.3장비별 특성
______네트워크 피처의 용법
______여러 가지 분석 도구
___1.3.4네트워크 엔지니어에게 추가로 요구되는 사항
______셸(Shell)
______샌(SAN)
______가상 네트워크와 용도별 서버의 데이터 흐름에 대한 이해
1.4 서버 엔지니어와 네트워크 엔지니어의 차이점
______네트워크 장치와 서버의 CPU에 대한 접근
______콘솔 포트와 매니지먼트 포트
______OID(Object Identifier)
______구성품
1.5 데이터센터 엔지니어의 미래

▣ 02장: 실습 환경 구성
2.1 실습 장비 소개
___2.1.1네트워크 제품군
______시스코 넥서스 9000 시리즈(N9000)
______시스코 넥서스 5000 시리즈(N5000)
___2.1.2시스템 제품군
______시스코 UCS 랙 서버
______시스코 UCS 블레이드 서버
______하이퍼바이저와 가상 머신
______시스템 제품군 요약
2.2 실습 장비가 없는 경우를 위한 환경 구성
___버추얼박스 설치
___버추얼박스의 실행과 구성
___버추얼박스에 하드웨어 가상 시스템 만들기
___가상 머신에 센트OS 설치하기
___가상 머신에 하드웨어 네트워크 장치 구성
___가상 머신의 네트워크 주소 구성하기
___터미널 접속 프로그램 설치
2.3 윈도우용 파이썬 설치하기
___파이썬 내려받기
___파이썬 설치하기

▣ 03장: 파이썬으로 실습하는 시스템 관리 - 도입부
3.1 가벼운 마음으로 시작하는 예제
___3.1.1 [클라이언트] 윈도우 실행 예제
______platform 모듈을 통한 시스템 정보 확인
______파이썬으로 도메인 이름에 대한 IP정보 확인하기
___3.1.2 [운영체제] 리눅스 실행 예제
______VI로 파일을 생성하고 생성한 파이썬 파일 실행하기
______파일 내용을 읽고 화면에 출력하기
___3.1.3 [운영체제] 관리 서버에서 파이썬 서버로 쉽게 접속하기
3.2 조금 응용하기
___3.2.1 [운영체제] 가상 메모리 통계(vmstat)를 엑셀로 보내기
______시스템에 외부 모듈 적용하기
______간단한 데이터를 엑셀로 내보내기
______vmstat 출력 정보를 엑셀로 내보내기
______엑셀 파일의 헤더 조정하기
___3.2.2 [운영체제] 리눅스의 로그 모니터링
______리눅스의 로그
______메시지 로그에서 찾고 싶은 로그 출력하기
______리눅스 로그에서 찾고 싶은 로그 출력하기(1차 수정)
______리눅스 로그에서 찾고 싶은 로그 출력하기(2차 수정)
______리눅스 로그에서 찾고 싶은 로그 출력하기(3차 수정)
______리눅스 로그에서 찾고 싶은 로그 출력하기(4차 수정)
______리눅스 로그에서 찾고 싶은 로그 출력하기(5차 수정)
______메시지 로그에 특정 문자열이 나타나면 알람 표시하기
______메시지 로그에 특정 문자열이 나타나면 알람 표시하기(1차 수정)
______메시지 로그에 특정 문자열이 나타나면 알람 표시하기(2차 수정)
___예외 사항 처리
______잘못된 값을 입력했을 때 다시 정확한 값을 입력하도록 유도하기
___자주 쓰이는 VI 명령어

▣ 04장: 파이썬으로 실습하는 시스템 관리 - 응용편
4.1 [서버] 간편한 RAID 로그 수집기
___RAID Tool 설치 및 실행 예제
___RAID에 시각 정보 출력
___RAID 버전 정보 출력
___다양한 RAID 정보를 선택해서 출력하기
___RAID 로그를 압축해서 출력하기
___장애가 발생한 디스크를 레이드 구성에서 안전하게 제거하기
4.2 [서버] IPMI를 이용한 상태 모니터링
___IPMI Tool 설치 및 실행 예제
___IPMI 명령어를 통해 시스템 정보 확인하기
___IPMI 명령 실행 결과에서 중복된 내용 제거하기
___다양한 IPMI 명령어를 선택해서 실행하기
___팬 속도와 온도 센서에 관한 트렌드 데이터를 출력하기
___팬 속도와 온도 센서에 관한 트렌드 데이터를 파일로 작성하기
4.3 [공통] 쉽고 빠른 OID 테스트 환경 구축
___snmpwalk 설치 및 실행 시 사용자 입력을 최소화 하기
4.4 [운영체제] 사용자별 조건에 따른 작업 데이터 출력
___일반 사용자 권한을 가진 계정 리스트 가져오기
___일반 사용자의 이력 출력하기
___사용자별 최근 이력 출력하기
___사용자별로 가장 많이 사용한 명령어 이력 출력하기
___특정 시간대에 사용한 이력 출력하기
4.5 [네트워크] 연결된 장비에 관한 정보를 자동으로 기록하기
___CDP로 얻은 정보를 인터페이스의 설명에 작성하기
___MAC을 통해 얻은 정보를 인터페이스 설명에 작성하기
4.6 [네트워크] 인터페이스별 사용량 모니터링
___인터페이스의 포트 정보 추출하기
___인터페이스의 레이트 값을 추가 추출하기
___일정 시간이 지난 후 변화된 Input/Output 레이트 값을 조회하기
___인터페이스별 변화된 레이트 값을 그래프로 그리기
예외 사항 처리
___좀 더 세밀하게 정확한 값을 입력하도록 유도하기

▣ 05장: 파이썬과 다른 언어를 함께 사용하기
5.1 [운영체제&네트워크] 배시와 파이썬
___diff를 이용해 인터페이스 변화를 감지하고 파일에 기록하기
5.2 [네트워크] 스케줄러와 파이썬
___스케줄러를 통해 인터페이스 설명을 자동으로 갱신하기
5.3 [운영체제] 크론과 파이썬
___크론을 통해 시스템 상태를 주기적으로 기록하기
5.4 [네트워크] CoPP 모니터링
___현재 패킷 드랍량과 CoPP 정보 출력하기
___드랍되는 패킷의 증가량과 CoPP 정보를 로그에 기록하기
5.5 [네트워크] EEM과 파이썬
___조건은 EEM이 실행은 파이썬으로
5.6 [네트워크] EEM과 파이썬 응용
___FTP로 이미지 내려받기
___내려받은 이미지 파일로 부트 환경을 자동으로 재 구성하기
___EEM을 통해서 이미지 업그레이드 자동화 구현하기
예외 사항 처리
___다양한 환경에서도 스스로 이해하고 동작하기

▣ 06장: 시스코 SDK를 이용한 시스템 관리
6.1 사전 구성
___환경 변수 설정
___ucsmsdk 설치
___UCS 매니저 에뮬레이터 설치
6.2 시스코 SDK를 활용한 실습
___6.2.1 UCS 매니저 에뮬레이터를 이용한 파이썬 실습
______UCS 매니저 에뮬레이터 접속
______UCS 매니저 에뮬레이터의 그래픽 모드에 접속하기
______설정 파일 백업 및 복원
______UCS 이미지 파일을 확인하고 내려받기
______블레이드 서버의 이름 변경하기
______UCS 매니저 에뮬레이터의 설정 추가/변경/삭제하기
___6.2.2 실제 UCS 매니저를 이용한 실습
______UCS 매니저가 관리하는 블레이드 서버에 vKVM으로 접속
______UCS 블레이드 시스템의 로그 파일 수집
___6.2.3 실제 UCS 랙 서버를 이용한 실습
______설정 파일 백업 및 복구
______UCS 랙 서버에 vKVM으로 접속하기
______UCS 랙 서버의 로그 파일 수집
예외 사항 처리
___틀린 부분만 다시 입력받기

▣ 07장: 파이썬으로 실습하는 시스템 관리 - 종합
7.1 원격지 시스템에 대한 대량 작업
___7.1.1 [공통] 시스템 종류 자동인식
______Paramiko의 환경 구성
______paramiko를 이용한 SSH 접속 테스트
______SSH로 접속해서 간단한 명령어 수행하기
______SSH로 접속해서 시스템 종류 체크하기
___7.1.2원격지 시스템에 명령어 실행
______SSH로 접속해서 시스템별 상태 조회 - CPU/메모리/디스크
______SSH로 접속해서 시스템별 정보 파악 - 관리 네트워크/IP 경로
______SSH로 접속해서 수집한 내용을 파일로 만들기
___7.1.3[공통] 여러 개의 원격지에 명령어 실행
______여러 개의 원격지 시스템에 접속해서 한 번에 정보 수집하기
7.2 스마트 로그 수집기
___7.2.1[운영체제&네트워크] CPU 이상 상태 감지기
______SAP HANA의 CPU 사용률 모니터링하기
______네트워크 장비의 CPU 사용률 모니터링하기
___7.2.2[네트워크] 인터페이스 상태 자동 감지 및 문제점 추적기
______감지 조건 및 받아야 할 로그를 선택할 UI만들기
______인터페이스 에러코드의 상태 값을 UI에 적용하기
______특정 시간단위로 변화되는 문제점을 추적하고 로그 남기기
___7.2.3 [운영체제&네트워크] 똑똑한 패킷 캡처 툴 만들기
______tcpdump의 다양한 옵션을 이용한 간단한 패킷 캡처 툴 만들기
______특정 조건에 도달하면 패킷 수집을 중지하고 로그 작성하기
______ethanalyzer의 다양한 옵션을 이용한 간단한 패킷 캡처 툴 만들기
______특정 로그가 발생했을 때 ethanalyzer의 전후 패킷 캡처하기
7.3 유용한 기능 추가
___7.3.1 설정 파일 백업을 메일로 전송하기
______특정 파일을 메일로 전송하기
______UCS 매니저 에뮬레이터 설정 백업 파일을 메일로 바로 전송하기
___7.3.2 수집된 정보를 엑셀의 그래프 차트로 출력하기
______차트를 만드는 샘플 작성하기
______UCS 랙 서버의 FAN 상태를 차트로 그리기
___7.3.3 접속 정보를 기억하고 있는 똑똑한 vKVM 실행 프로그램
___7.3.4 자동으로 구성 파일을 백업하고 변경 사항을 확인하기
______네트워크 구성 파일을 변경 시도 시에만 자동으로 백업하기
______기간별 변경 사항 추적하기
______기간별 변경 사항 추적 및 분석하기
7.4 확장된 예외 사항 처리
___예외적인 프로세스 모니터링
___파이썬 실행 도움말 만들기

▣ 부록: Cisco UCS vKVM 접속 도우미 만들기
1. PyQt를 설치해 GUI 구성하기
___PyQt 설치하기
___PyQt Designer를 실행해 UI 만들기
2. PyQt로 만든 GUI 실행하기
___PyQt에서 작성한 GUI 파일을 파이썬 코드로 만들기
___변환된 PyQt GUI 파이썬 코드 실행하기
___PyQt Designer로 만든 GUI 코드를 실행하는 방법
3. 환경에 따라 다르게 동작하는 GUI 만들기
___환경 설정에 따라 다른 언어로 나타나는 GUI 만들기
___환경에 따라 다른 언어의 리소스를 GUI에 적용하기
___위젯의 문자열 바꾸기
4. vKVM을 실행하는 GUI 만들기
___위젯 이벤트 핸들링
___위젯에 포함된 항목 핸들링하기
___팝업 메시지 박스 만들기
5. EXE 실행 파일 만들기