서버 매니지먼트
프로젝트로 서버를 관리하는 웹사이트를 구성하고자 한다.
구성은
- 서버의 특정폴더에서 이미지를 조회, 다운로드
- 서버 정보 취합 : 메모리, CPU 사용량 등 서버에 필요한 리스트들
그 중, 우선 서버 정보를 취합하는 페이지에서 보여주면 좋을 내용들을 서칭해보았다. 실시간으로 서버 상태를 모니터링하거나 분석할 수 있는 내용들로 정리해보았다.
⭐서버 정보 취합 페이지 구성
1. CPU 정보
- Processor 정보
- CPU 코어 개수
- CPU 모델 이름
- Hyper-Threading 여부
- CPU 사용량
- 프로세스 시간별 요약 (유휴 상태, 사용자 상태, 시스템 상태)
- 프로세스 사용률 순서대로 정렬된 정보
- 멀티코어 사용량 분포
2. 메모리 상태
- 총 메모리 용량
- 사용 중인 메모리, 남은 메모리, 버퍼 메모리
- 캐시 메모리 상태
- 스왑 메모리 상태
3. 디스크 상태
- 디스크 사용량 (전체 디스크, 특정 디렉토리)
4. 네트워크 상태
- 네트워크 트래픽 (입력, 출력)
- 활성 연결 상태
⭐페이지 구성 예시
1. CPU 정보
- 코어 개수 및 모델 이름
- API에서
cat /proc/cpuinfo
데이터를 분석해 출력
- CPU 사용량 그래프
mpstat
명령어 또는 Java의 JMX를 통해 실시간 CPU 사용량을 가져와 시각화
2. 메모리 정보
- 메모리 사용량 (총 용량, 사용량, 남은 용량)을 그래프로 표시
- API에서
cat /proc/meminfo
데이터 읽기
3. 디스크 사용량
- 특정 디렉토리의 용량과 남은 공간을 출력
df -h
명령어를 활용하거나 Java로 디스크 상태 확인
4. 네트워크 정보
- 네트워크 인터페이스별 트래픽 (Rx/Tx 데이터)
ifconfig
또는 /proc/net/dev
파일에서 정보 추출
⭐Spring Boot와 연계한 설계 계획
1. 백엔드 API 설계
/api/v1/server-info/cpu
→ CPU 정보 제공
/api/v1/server-info/memory
→ 메모리 정보 제공
/api/v1/server-info/disk
→ 디스크 사용량 정보 제공
/api/v1/server-info/network
→ 네트워크 상태 정보 제공
2. 프론트엔드 구성
- React를 사용해 각 섹션별로 데이터를 API 호출로 받아와 그래프와 표로 표시
- UI
- CPU 사용량: 실시간 도넛 차트 또는 바 차트
- 메모리 상태: 게이지 그래프
- 디스크 상태: 파이 차트
- 네트워크 트래픽: 실시간 라인 그래프