[프로젝트] raspi-monitor | 개요

dev2820·2021년 10월 9일
0

프로젝트 개요

라즈베리파이의 cpu, memory, io, network를 DB에 저장해보자

목표

cpu정보,memory정보,io정보,network 정보를 읽고 database에 저장하는 프로그램을 만든다.

기본적으론 top 명령어 실행시 나오는 정보와 유사하지만 네트워크 트래픽 정보와 i/o read,write 정보 정도를 더해 데이터 베이스에 저장하길 원합니다. 그래서 출력하고 싶은 정보를 모두 모으면 다음과 같습니다.

cpu 사용 정보

  • 코어별 us,sy,ni,id,wa,hi,si,st 사용률
  • 코어별 사용률(100 - id)
  • 전체 us,sy,ni,id,wa,hi,si,st 사용률
  • 전체 사용률(100 - id)

메모리 사용 정보

  • 총 메모리 양
  • free 메모리 양
  • 사용중인 메모리 양
  • 버퍼,캐쉬 메모리 양
  • 총 swap 메모리 양
  • free swap 메모리 양
  • 사용중인 swap 메모리 양

I/O 정보(마이크로sd에 OS가 올라와있음)

  • 하드디스크 read/s
  • 하드디스크 write/s
  • 마이크로sd read/s
  • 마이크로sd write/s

network 정보

  • 초당 receive bytes
  • 초당 transmit bytes
  • 초당 receive err bytes
  • 초당 transmit err bytes

기타 정보

  • cpu 온도
  • uptime
  • loadavg(1분,5분,15분 평균)

세부 목표

각 정보를 취합해 저장한다.
1. /proc/stat => cpu 정보 생성
2. /proc/meminfo => memory 정보 생성
3. /proc/diskstats => io 정보 생성
4. /proc/net/dev => network 정보 생성

database 연결
1. cpu정보 -> cpu_status 테이블에 저장
2. memory정보 -> memory_status 테이블에 저장
3. io정보 -> io_status 테이블에 저장
4. network정보 -> network_status 테이블에 저장
5. 각 table의 요약정보를 저장하는 summary_status 테이블에 저장

스택

nodejs
mariadb

profile
공부,번역하고 정리하는 곳

0개의 댓글