서버 인스턴스를 관리하면서 자주 사용하게 되는 몇가지 시스템 모니터링을 위한 유틸리티 들을 정리해보았다



- Top : 시스템의 전반적인 운용상황을 확인할 수 있다. CPU / 메모리 / 부하율 등을 한번에 확인할 수 있다. Top –d 2 와 같이 하면 초단위로 refresh 한다. –q로 하면 실시간으로 반영된다. 윈도우의 작업 관리자와 같은 역할을 수행한다.


- Uptime : 서버의 전체적인 부하율을 확인하고자 할 때 사용한다

그냥 uptime 만 치면 한줄로 출력이 되며 현재시간, 부팅 후 꺼지지않고 운용된 시간, 현재 시스템에 로그인한 사용자 수(/var/run/utmp참조), 1분, 5분, 15분 간 서버 시스템 부하율 을 표기한다.


- Vmstat : 현재 리눅스 자원사용률 모니터링 도구로, 이름은 Virtual Memory Statistics 이지만 가상 메모리 이외에 실행 대기 중인 프로세스 수(r), 가상 메모리 사용량(swpd), 입출력 IO, 유휴 메모리(free), 버퍼 메모리(buff), 캐시 메모리(cache), 초당 인터럽트 수(in), 초당 컨텍스트 스위칭 수(cs), 유휴시간(id), 커널모드 소비 시간(sy), 입출력대기시간(wa) 등 다양한 내용 조회 가능하다.


- Iostat : 부팅 이후 Block IO 상태를 나타낸다.


- Free : 메인 메모리 사용량을 보여준다.


- Strace : System call tracer. 리눅스 최강의 디버깅 도구. 리눅스 시스템콜 추적 도구. 프로세스 대상을 선택하면 대상에 대한 시스템콜을 추적할 수 있고 프로세스가 받는 Signal에 대한 정보도 얻을 수 있다. 

간단하게 strace ./helloWorld 와 같이 사용하면 helloWorld 프로그램을 추적하게 되고 –o trace.log 와 같이 매개변수를 넘겨주면 trace.log 파일에 추적 로그가 남게 된다. 또한 –c 옵션을 이용해 통계도 낼 수 있다. –p 옵션을 사용하면 실행중인 프로세스에 대한 추적 또한 가능하다. 


- Tcpdump : 커맨드라인 네트워크 트래픽 모니터링 툴이자 패킷 분석 툴. 

Tcpdump –I eth0 과 같이 사용하면 지정된 eth0이더넷에 대해 패킷을 뜨게 되고 –w test.log 와 같이 test.log 에 로그를 기록할 수 있다. 확인은 –r test.log 와 같은 방식으로 해야 한다. 혹은 당연히 tcpdump –I eth0 > testout.log 와 같이 리다이렉트해줘도 된다.


- Netstat : 시스템의 네트워크 연결 목록(tcp, u에, 소켓)을 보여준다. 

Tcp (t), udp(u), DNS 질의끄기(n), Listen(l), 프로세스 명 표시(p), 라우팅정보(r) 과 같은 파라미터를 –뒤에 붙여 사용한다. 

(ex) netstat -nltp


- lsb_release -a : 리눅스의 버전을 확인하는 명령어. 특히 Dependency 관리를 위해 알아볼 때 종종 사용한다.

cat /etc/issue : 리눅스의 버전을 확인하는 명령어. 몇몇 버전의 경우 /etc/issue 에 버전 정보가 포함되어 있다.

- stat : 파일 또는 파일 시스템 상태를 조회한다. 파일크기, Inode 번호, 링크 갯수, Permission, UID, GID, 접근/수정/변경 일시 확인 가능하다.

(예시)

> stat xxx.log
File: ‘xxx.log’
Size: 11008296 Blocks: 21512 IO Block: 4096 regular file
Device: -----/----- Inode: 269769074 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/ user) Gid: ( 500/ user)
Access: 2018-10-04 00:00:03.158986433 +0900
Modify: 2018-10-04 15:02:18.999757886 +0900
Change: 2018-10-04 15:02:18.999757886 +0900
Birth: -

> stat -f xxx.log

File: ‘xxx.log’
ID: -----------        Namelen: 255 Type: xfs
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 25677313 Free: 23658809 Available: 23658809
Inodes: Total: 102759424 Free: 102490423


- du(disk usage) : directory 용량 확인. 현재 폴더 내 파일들의 용량을 확인할 수 있다.

- df : 리눅스 파일시스템 사용량 확인. 디스크 사용량 / 용량 포함.


- find : 파일 이름으로 시스템을 검색하는 명령어

 (1) find -name "파일이름"     > 파일이름에 해당하는 파일 검색

 (2) find -name "*.txt"     > 파일 확장자가 txt인 모든 파일 검색

 (3) find / -name "*.txt"     > 루트에서부터 txt 확장자를 가진 모든 파일 탐색

 (4) find / -name "code" -type d  > 디렉터리 이름이 code 인 모든 디렉토리 검색





+ Recent posts