이미 소장하고 있다면 판매해 보세요.
|
데브옵스(DevOps)는 개발자, QA, 시스템 관리자가 IT 성능, 가용성, 효율성을 제고하고자 훨씬 더 빠르게 리눅스 서버 문제의 해결을 위해 협업하는 데 유용하다.
수상 경력이 있는 리눅스 전문가인 카일 랜킨은 이 책에서 여러분의 팀이 다른 사람을 비난하지 않고 효과적으로 협업하고 대부분의 리눅스 문제를 빠르게 해결하는 데 필요한 모든 표준화되고 반복되는 기법들을 집대성했다. 랜킨은 데브옵스 기법을 사용해 부팅 문제와 고장 난 디스크에서 이메일 분실과 동작하지 않는 웹사이트에 이르기까지 모든 문제를 해결하는 과정을 보여준다. 이 책을 통해 운영 환경에서 과부하 시스템과 네트워크 문제를 진단할 때 필수적인 기술들을 습득하게 될 것이다. 이 책에서 다루는 내용 ◎ 문제 해결에 대한 데브옵스 접근법과 검증된 리눅스 서버 문제 해결 원칙을 습득하는 법 ◎ CPU, 램, 디스크 I/O 병목을 확인해 느려진 서버와 애플리케이션을 진단하는 법 ◎ 정상적인 부팅 과정을 이해해 부팅이 실패하는 지점을 파악하고 고치는 법 ◎ 디스크가 꽉 차거나 고장 나서 디스크를 쓰지 문제의 해결책 ◎ 네크워크 문제의 원인을 추적하는 법 ◎ DNS, 이메일 및 다른 네트워크 서비스 문제를 해결하는 법 ◎ 아파치와 엔진엑스 웹서버의 실패 및 성능 저하 원인을 구분하고 진단하는 법 ◎ MySQL과 PostgreSQL 데이터베이스 서버와 질의문에 대한 문제 해결법 ◎ 원인을 확인하기 어렵거나 간헐적으로 발생하는 하드웨어 오류를 확인하는 법 |
|
01장: 문제 해결 우수사례
문제 영역 나누기 협업할 때 원활한 의사소통 연습하기 - 전화 회의 - 직접 대화 - 이메일 - 실시간 대화방 - 대체 가능한 의사소통 수단 확보하기 느리고 복잡한 테스트보다 빠르고 간단한 테스트를 선호하라 과거의 해결책을 선호하라 문제점과 해결책 문서화하기 변경 사항 파악하기 시스템의 동작 방식 이해하기 인터넷을 사용하되, 주의 깊게 사용하기 재부팅 참기 02장: 왜 서버가 이렇게 느리지? CPU, RAM 그리고 디스크 I/O의 자원 고갈 시스템 부하 - 평균 부하가 높다는 것은 무슨 뜻인가? top을 이용한 부하 문제 진단 - top의 출력 정보 이해 - 높은 사용자 시간(High User Time) 진단하기 - 메모리 고갈 문제 진단하기 - 높은 입출력 대기 문제 진단하기 현상 확인 후 과부하 문제 해결하기 - sysstat 설정하기 - CPU 통계 정보 보기 - RAM 통계 정보 보기 - 디스크 통계 정보 보기 - 과거의 통계 정보 보기 03장: 왜 시스템이 부팅되지 않을까? 부팅 문제 해결하기 리눅스 부팅 과정 - 바이오스 - GRUB과 리눅스 부트 로더 - 커널과 Initrd - /sbin/init 바이오스 부팅 순서 GRUB 문제 해결 - GRUB 프롬프트가 없는 경우 - Stage 1.5 GRUB 프롬프트인 경우 - GRUB 프롬프트가 잘못 설정된 경우 - 동작하는 시스템에서 GRUB 고치기 - 복구 디스크로 GRUB 고치기 시작 화면 비활성화 루트 파일 시스템을 마운트할 수 없는 경우 - 루트 커널 인자 - 루트 기기를 변경하는 경우 - 루트 파티션이 손상되거나 고장 난 경우 보조 파일 시스템을 마운트할 수 없는 경우 04장: 왜 디스크에 쓸 수 없는가? 용량이 가득 찼거나 오류가 생긴 디스크 문제 해결하기 디스크가 가득 찼을 때 - 예약 블록 - 가장 큰 디렉터리 추적하기 - 아이노드가 고갈된 경우 - 파일 시스템이 읽기 전용인 경우 - 손상된 파일 시스템 고치기 - 소프트웨어 RAID 고치기 05장: 서버가 다운됐는가? 네트워크 문제 원인 추적하기 서버 A가 서버 B와 통신할 수 없는 경우 - 클라이언트 혹은 또는 서버 문제 - 연결돼 있는가? - 네트워크 인터페이스가 살아있는가? - 로컬 네트워크에 있는가? - DNS가 동작 중인가? - 원격 호스트로 찾아갈 수 있는가? - 원격 포트가 열려 있는가? - 로컬에서 원격 호스트 테스트하기 느린 네트워크 문제 해결하기 - DNS 문제 - traceroute로 네트워크 속도저하 찾아내기 - iftop으로 네트워크 대역폭을 사용하고 있는 것 찾아내기 패킷 수집 - tcpdump 사용하기 - 와이어샤크 사용하기 06장: 왜 호스트 이름이 해석되지 않을까? DNS 서버 문제 해결하기 DNS 클라이언트 문제 해결 - 네임서버 설정이 안 됐거나 네임서버에 접근할 수 없는 경우 - 검색 경로를 누락했거나 네임서버 문제인 경우 DNS 서버 문제 해결하기 - dig 출력 결과 이해하기 - DNS 질의 추적하기 - 재귀적 네임서버 문제 - 갱신 내역이 적용되지 않는 경우 07장: 왜 이메일이 전송되지 않을까? 이메일 문제 추적하기 이메일 요청 추적하기 이메일 헤더 정보 이해하기 이메일 발신 문제 - 이메일 클라이언트가 송신 메일 서버와 통신할 수 없는 경우 - 발신 메일 서버가 중계를 허용하지 않는 경우 - 발신 메일 서버가 목적지 서버와 통신할 수 없는 경우 이메일 수신 문제 - 텔넷으로 하는 테스트가 연결되지 않는 경우 - 텔넷은 연결할 수 있지만 메시지가 거절되는 경우 - 메일 로그 자세히 살펴보기 08장: 웹 사이트가 다운됐는가? 웹 서버 문제 추적하기 서버가 동작 중인가? - 원격 포트가 열려 있는가? - 로컬에서 원격 호스트 테스트하기 명령줄에서 웹 서버 테스트하기 - Curl로 웹 서버 테스트하기 - 텔넷으로 웹 서버 테스트하기 HTTP 상태 코드 - 1xx 정보 전달 코드 - 2xx 성공 코드 - 3xx 리다이렉션 코드 - 4xx 클라이언트 오류 코드 - 5xx 서버 오류 코드 웹 서버 로그 분석하기 웹 서버 통계 얻기 일반적인 웹 서버 문제 해결하기 - 설정 문제 - 권한 문제 - 느려지거나 사용할 수 없는 웹 서버 문제 09장: 왜 데이터베이스가 느린가? 데이터베이스 문제 추적하기 데이터베이스 로그 찾기 - MySQL - PostgreSQL 데이터베이스가 정상적으로 실행되고 있는가? - MySQL - PostgreSQL 데이터베이스 성능 지표 구하기 - MySQL - PostgreSQL 느린 쿼리 확인하기 - MySQL - PostgreSQL 10장: 그건 하드웨어 고장이야! 일반적인 하드웨어 문제 진단하기 하드디스크가 고장 난 경우 RAM 오류 테스트하기 네트워크 카드가 고장 난 경우 서버가 너무 뜨거운 경우 전원 공급 장치가 고장 난 경우 |