Skip to content

Latest commit

 

History

History
131 lines (101 loc) · 5.03 KB

웹엔지니어가알아야할인프라의기본_chap05.md

File metadata and controls

131 lines (101 loc) · 5.03 KB

Chapter 5 웹 서비스 운용 1 : 시스템 감시의 기본

5.1 시스템 감시의 개론

시스템 감시란?

1. '정상 상태'를 감시 항목 + 정상적인 결과의 형태로 정의
2. '정상 상태'가 아닐 때의 대응 방법을 감시 항목마다 정의
3. '정상 상태'인 것을 지속적으로 확인
4. '정상 상태'가 아닌 경우 '정상 상태'로 복구 시킴 / 필요에 따라 재발 방지 대책을 강구

'정상 상태'를 감시 항목 + 정상적인 결과의 형태로 정의

  • 시스템의 정상 상태 정의
  • 감시 항목과 한계값 설정

'정상 상태'가 아닐 때의 대응 방법을 감시 항목마다 정의

  • 복구 우선 VS 재발 방지 우선
    • 복구 우선 : 웹 시스템, 미디어 사이트 등
    • 재발 방지 우선 : 보안 관련 등 근본적인 대응이 될 때 까지는 복구를 하지 않는 경우 존재
  • 에스컬레이션 방법과 연락할 순서
  • 연락을 받은 후의 대응 방법
  • Example
* 정상 상태 : HTTP 응답의 상태 코드가 200이다.
 -> 대응 방침 : 상태 코드가 500이 된 경우는 Apache를 재부팅 한다. 
 
* 정상 상태 : 디스크 사용량이 80% 이하이다.
 -> 대응 방침 : 80%를 넘은 경우는 로그 저장 기간을 짧게 한다.

'정상 상태'인 것을 지속적으로 확인

  • Zabix, Nagios, Monit

'정상 상태'가 아닌 경우 '정상 상태'로 복구

  • 1차 대응(잠정 대응)
  • 2차 대응(근본 대응)

5.2 시스템 감시의 구현

감시 툴과 모니터링 툴

  • 시스템 리소스에 대한 감시는 리소스 모니터링과 별도
  • 감시 툴과 모니터링 툴의 특징
  • 감시툴
    • Nagios : 감시 기능에 특화
    • Zabbix : 감시 기능 외에 그래프화 기능도 있음
  • 모니터링 툴
    • Cacti : 사용자 관리 기능이 있음. 풀형 데이터 수집
    • Mackerel : SaaS형 서비스, 감시도 가능
    • Monit : 간단함. 사용자 관리 기능은 없음. 풀형 데이터 수집
    • GrowthForecast : 간단함. 사용자 관리 기능은 없음. 푸시형 데이터 수집

감시 항목 판악하기

감시 종류
  • 외형 감시 : 시스템 외부 접속 상황을 감시
  • 내부 감시 : 시스템 내부 상황 감시
    • 서비스 가동 상황 감시
    • 시스템 리소스 감시
  • 감시 항목을 파악하는 방법
  1. 시스템 요건이나 구축 요건으로 부터 기능적 요건과 비 기능적 요건을 파악
  2. 구축한 서버 자체에서 테스트 작성

감시의 구현 방법

액티브 체크
  • 감시 서버 쪽에서 능동적으로 체크하는 방법
  • 장점 : 이상을 빠짐없이 감지할 수 있음
  • 단점 : 체크 간격이 돌아올 때까지는 이상을 감지할 수 없기 때문에 실시간성이 낮을 수도 있음
패시브 체크
  • 감시의 대상 쪽에서 이상을 감지하여 감시 서버로 보고하는 방식
  • SNMP Trap 유명
  • 장점 : 감시 대상이 보고를 할 수 있는 상황에서 실시간 성이 높음
  • 단점 : 감시 대상이 이상을 보고하지 못하고 다운된 경우 이상을 감지할 수 없음

감시 항목 만들기

  • 실행 프로세스 수 확인
  • I/O가 있다면 확인
    • 서비스 계통의 네트워크 입출력이 있는가
    • 관리 계통의 네트워크 입출력이 있는가
    • 서비스 계통의 파일 입출력이 있는가
    • 관리 계통의 파일 입출력이 있는가
  • 외형 감시의 주요 항목
    • HTTP 응답 코드, 내용, 응답 시간, 크기
    • HTTPS 응답 코드, 내용, 응답 시간, 크기
    • POP, SMTP, FTP ... 동작 여부, 메일 송수신이나 파일 PUT/GET 등
    • HTTP 시나리오
  • 내부 감시의 주요 항목
    • CPU 사용률
    • 평균 부하
    • 디스크별 사용률
    • 디스크별 I/O 요구량
    • 디스크별 대기 시간
    • 네트워크 인터페이스별 트래픽 IN/OUT
    • 로컬에서의 HTTP 접속
    • 서비스에 사용할 프로세스의 감시(apache, nginx, mysqld 등)
    • 시스템적으로 사용할 프로세스의 감시(ntpd, snmpd 등)

5.3 장애가 발생했을 때의 대응 방법

리눅스 대표 명령어

  • w
    • 시스템의 가동 시간, 로그인 사용자 수, 평균 부하 확인
  • ss -lnp
    • 네트워크 접속 수, 접속 소스, 접속 목적지, 실행 프로세스와 PID 확인
  • ps aufx
    • 동작하고 있는 프로세스 확인
  • df -h
    • 디스크 사용량 확인
  • top -b -d 1 -n 1
    • CPU 사용률, 메모리 사용량, CPU 사용률이 높은 프로세스를 확인
  • top -b -d 1 -n 1 - a
    • 메모리 사용량이 큰 프로세스를 확인
  • dstat -taf 1 10
    • CPU 사용률, 네트워크 사용량, 디스크 I/O의 양, 페이징의 양과 추이를 확인
  • mysqladmin processlist --verbose
    • 접속 소스 IP와 포트, 접속 목적지 DB, 상태, SQL을 확인