이전
다음

Monitoring



모니터링용 Software 설치

#--- CentOS7
yum  -y  install  sysstat 

#--- NodeJS
npm  install  node-os-utils

#--- OS 버전 확인
cat  /etc/*-release  |  uniq

CPU 모니터링

#--- CPU 갯수
cat  /proc/cpuinfo  |  grep  processor

#--- CPU 평균 사용시간
sar  1  100                             #--- 1초 단위로 100번 검사후 평균 표시

#--- 기타 확인 방법
top
pidstat  1

sar  1  3
sar  -r

#--- CPU별 CPU 사용시간 표시
mpstat  -P  ALL  1

Momory 모니터링

#--- 전체 메모리 용량
cat  /proc/meminfo  |  grep MemTotal

#--- 메모리 상태 확인
vmstat  1                               #--- 1초마다 정보 표시
#--- r : 동작중인 프로세스의 수             #--- 값이 크면 cpu 부족
#--- free : Free memory (KB)
#--- si : swap-In                       #--- 0이 아니면 메모리 부족
#--- so : Swap-Out                      #--- 0이 아니면 메모리 부족
#--- us, sy, id, wa, st : CPU 사용율
#---     us. User time, sy. System time, id. Idle, wa. Wait I/O, st. Stolen time

#--- 메모리 사용 평균 확인
free  -m
#--- Free 메모리 확인
#--- buff/cache : I/O Buffer 캐시 사용량, 0에 가까우면 높은 Disk I/O 발생
#--- available

Storage 모니터링

#--- 디스크 사용량 조회
df  -h  |  egrep  'Avail|mapper'

iostat  -xz  1
#--- r/s : Read 요청
#--- w/s : Write 요청
#--- rkB/s : Read KB/s 
#--- wkB/s : Write KB/s
#--- await : I/O 처리 평균 시간 (밀리세컨드)

Network 모니터링

sar  -n  DEV  1
#--- rxpck/s
#--- txpck/s
#--- rxkB/s : 초당 네트워크 수신량
#--- txkB/s : 초당 네트워크 송신량

#--- TCP 통신량 요약
sar  -n  TCP,ETCP  1
#--- active/s : 로컬에서 요청한 초당 tcp connection 수 (connect())
#--- passive/s : 요청된 초당 tcp 커넥션 수 (accept())
#--- retrans/s : 초당 tcp 재연결 수

Process 모니터링

#--- CPU 사용량 top 10
#---     USER : 사용자 ID
#---     PID : Process ID
#---     PPID : Parent Process ID
#---     RSS : Non swapped Physical memory (KB)
#---     SIZE : SWAP 공간
#---     VSZ : 프로세스의 가상 메모리 (KB)
ps  -eo  user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm  --sort  -pcpu  |  head  -11


#--- Memory 사용량 top 10
#---     USER : 사용자 ID
#---     PID : Process ID
#---     PPID : Parent Process ID
#---     RSS : Non swapped Physical memory (KB)
#---     SIZE : SWAP 공간
#---     VSZ : 프로세스의 가상 메모리 (KB)
ps  -eo  user,pid,ppid,rss,size,vsize,pmem,pcpu,time,comm  --sort  -pcpu  |  head  -11

#--- 프로세스 정보
#---     /proc/${PID}/
cat  /proc/${PID}/status

MariaDB 모니터링

-- obcondb 데이터베이스의 크기(MB)
SELECT table_schema, sum(round(((data_length + index_length) / 1024 / 1024), 2)) "MB"
  FROM information_schema.TABLES
 WHERE table_schema = "obcondb"
 GROUP BY table_schema;

-- obcondb 데이터베이스에 포함된 테이블별 크기
SELECT TABLE_NAME, round(((data_length + index_length) / 1024 / 1024), 2) "MB"
  FROM information_schema.TABLES
 WHERE table_schema = "obcondb"
 ORDER BY (data_length + index_length) DESC;

-- Table별 레코드 수
SELECT TABLE_NAME, TABLE_ROWS
  FROM information_schema.TABLES
 WHERE table_schema = "obcondb"
 ORDER BY TABLE_ROWS DESC;

-- 테이블에 포함된 partition 정보 표시
SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, PARTITION_ORDINAL_POSITION, TABLE_ROWS
  FROM INFORMATION_SCHEMA.PARTITIONS
  WHERE TABLE_NAME = 'devicedata1s';

Device 모니터링

#--- Site 갯수
SELECT count(*)
  FROM sites
 WHERE deleted = 0
   AND status = 'Active';

#--- 장비 종류별 갯수
SELECT type, count(*)
  FROM devices
 WHERE deleted = 0
 GROUP BY type
 ORDER BY type ASC;

SELECT type, count(*)
  FROM devices
 WHERE deleted = 0
   AND statusUse = "Active"
 GROUP BY type
 ORDER BY type ASC;

#--- Site별 장비 종류별 갯수
SELECT site, type, count(*)
  FROM devices
 WHERE deleted = 0
   AND statusUse = "Active"
 GROUP BY site, type
 ORDER BY site ASC, type ASC; 

기타 모니터링

#--- 시스템 메시지 확인
dmesg  |  tail

참고 문헌

이전
다음
공유하기