서버 모니터링 시스템 개발하기1(개요 및 서버환경 구축)

서론

회사에서 인프라 및 서버운영 관리 업무를 하는데 서버관리측면에서 주기적으로 리소스들을 수기로 작성하여 관리하고 있었는데 어려운 작업은 아니지만 비효율적이고 해당 업무에 사용되는 시간을 절약하기 위해 프로그램화하고자 이 프로젝트를 시작하게 되었습니다.

본 게시글은 프로젝트 완성 후 후기용으로 작성하게 되었으며, 프로젝트를 마무리한 뒤 기억을 더듬어가며 작성하는 글이라서 잘 적어나갈 수 있을지 모르겠습니다. 🙂

프로젝트는 사내용 프로그램이라서 사내 인트라넷 환경으로 진행되었고 혼자서 대략 3개월 정도 걸려 만들게 되었습니다.

시중에 판매하는 리소스 관리 시스템도 존재하지만 개발이 어려운 프로그램이라고 생각되지 않기도 했고 비용도 절감하는 측면에서 자체 개발하게 되었습니다. 검색하며 개발하다보니 해당 프로그램을 SMS(server monitoring software)라고 지칭하던에 일단 저는 RMS라고 이곳 저곳에 적어놔서 이대로 진행하는걸로…;;

자, 이제 아래 글을 천천히 읽어보면서 따라와주시기 바랍니다.

RMS(Resource Monitoring System) 개발 사전준비

RMS 프로세스

프로그램의 프로세스는 간단합니다.
데이터를 수집할 서버들에 RMS프로그램 실행시켜서 리소스들을 DB로 수집하여 대시보드로 뿌려주면 됩니다.
도식화하자면, 아래와 같습니다.

-------------------------
|                       |
|       DASHBOARD       |
|                       |
-------------------------
        ^
        |   Data Printing
        |
-------------------------
|                       |
|           DB          |
|                       |
-------------------------        
        ^
        |   Resource Collecting
        |
-------------------------
|                       |
|         Servers       | <- 'RMS.exe' Execute
|                       |
-------------------------        

준비사항

위 도식화된 프로세스처럼 구축하기 위해서 아래와 같은 준비사항이 필요합니다.

  1. DB 수집 및 그라파나 설치할 서버
  2. RMS프로그램
  3. 데이터 수집할 서버 또는 PC

개발환경

필자는 개발환경과 서버환경을 분리하여 개발하였습니다.

[개발환경]
– OS -> Windows_NT x64 10.0.19044
– DBMS -> mssql
– DB서버 -> 서버환경에 설치된 DB서버
– IDE -> ssms / visual studio code 1.76.0 / python 3.7.0
– ranguage -> python
– env -> 가상환경사용(anaconda)

[서버환경]
– OS -> winsrv2019 std
– DB서버 -> mssql srv 2016
– DBMS -> mssql
– dashboard -> grafana

자, 이제 개발과정에 대해 순차적으로 설명해보도록 하겠습니다.

세부개발과정

세부개발과정을 간략하게 먼저 정리하자면 아래와 같습니다.

  1. 서버환경 구축(서버 OS, MSSQL 서버, 그라파나 프로그램 설치)
  2. 개발환경 구축(개발툴(ssms, vscode, anaconda) 설치)
  3. RMS 프로그램 개발
  4. RMS 프로그램 배포 및 실행
  5. 그라파나 대시보드 구성

1. 서버환경 구축(서버 OS, MSSQL 서버, 그라파나 프로그램 설치)

별도 서버로 사용할만한 데스크탑이나 가상화프로그램을 사용하고 계신게 없다면 사용중인 PC를 서버환경으로 사용해도 무방하며, OS 버전도 윈도우 서버일 필요는 없습니다.

윈도우 서버 설치

저는 사내에서 보유중인 가상화프로그램(vmware)에 윈도우 서버(win srv std 2019)를 설치하였습니다.
인터넷을 검색하시면 관련 블로그들 많이나오는데 그 중 하나를 아래링크 첨부해두었으니 참고하시기 바랍니다.

MS SQL 서버 설치

설치된 서버에 DB데이터 축적을 위한 MS SQL 서버를 설치해줍니다.
MS SQL서버 설치의 경우도 인터넷을 검색하시면 관련 블로그들 많이나오는데 그 중 하나를 아래링크 첨부해두었으니
참고하시기 바랍니다.

RMS개발에 관한 다음 글을 보시려면 아래 링크를 눌러주세요.


Leave a Comment