서버 모니터링 서비스/소프트웨어 리뷰 목록

HYEONG HWAN, MUN/ 11월 18, 2019/ 미분류/ 2 comments

모니터링이란 간단하게 말하자면, “내 서비스가 잘 동작하고 있는가?“에 대해서 검증하는 과정이다.

당신이 소프트웨어 서비스를 운영한다면 모니터링 서비스가 필요할 것이다. 이것은 서비스의 상태를 나타내고 또한 SLA(서비스 레벨 수준 보장)를 위해서도 필요하다.

또한 고객이 만족할 만한 속도로 서비스를 제공 받고 있는지 확인하기 위해서도 모니터링이 필요하다.

바람직한 개발자, 서비스 운영자, 관리자라면 반드시 아래와 같은 것들을 구축해 두어야 한다. (업력 1년 이상의 SaaS 운영자라면 반드시 구축하는 것을 권장한다.)


모니터링의 종류

  • 인프라스트럭쳐 모니터링 (Infrastructure Monitoring)
  • 서버 모니터링 (OS Monitoring)
  • 웹사이트 모니터링 (HTTP Monitoring)
  • 어플리케이션 성능 모니터링 (Application Performance Monitoring)
  • 웹사용자 모니터링 (Real User Monitoring)
  • 비용 모니터링 (Cost Monitoring)

1) 인프라스트럭쳐 모니터링

인프라 자원의 생성과 삭제, 변경, 특별한 이벤트 발생의 모니터링을 한다.

인프라 변경을 인지하는데 도움이 된다. 술먹고 인프라 자원을 변경했다거나, 테스트 인프라 자원을 생성했을때 이런 모니터링 서비스를 사용중이라면 쉽게 자원을 관리할 수 있다.

오토 스케일링 그룹에 변경이 일어났거나, 알람이 생성되는등 자동화된 작업의 변경도 확인할 수 있다.

 

2) 서버 모니터링

대략 1개 서버상 $25 ~ $45 정도. (3만원 ~ 5만원 / 월 / 호스트)

CPU, RAM, DISK, NETWORK, PROCESS 등을 모니터링 한다. 서버의 이상 징후 파악에 도움이 된다. 어느 시간에 사람이 몰리는지도 확인할 수 있다.

 

3. 웹사이트 모니터링

웹사이트 접속과 각 로딩 부분 속도, SSL 인증서 검사, DNS 검사, 메일서버 검사, 서버 시간 검사 등을 할 수 있다.

예를 들어 제 블로그 blog.lael.be 를 입력하면, HTTP 응답 뿐만아니라, dns 서버 응답 모니터링, SSL 만료기간 모니터링도 진행한다.

 

4. 어플리케이션 성능 모니터링

어플리케이션에 직접 인젝션(injection) 된 후에 각 부분의 속도를 측정한다. 정확히 어느 코드에서 느린 것인지 확인할 수 있다.

어플리케이션이 2번 DB 서버에 접속하는데 2.8초나 소비했다. 아마 2번 DB서버와 통신 장애이거나, 부하가 있을 것이다.

 

5) 웹 사용자 모니터링

[[ 내용추가 ]]

 

6) 비용 모니터링

Right Sizing, Reserved,

[[ 내용추가 ]]

 


APDEX

< TODO : APDEX 설명 및 계산방법 >


 

서버 모니터링 소프트웨어 서비스 (대부분 SaaS 이지만, 일부 On-premise 도 지원하는 곳이 있습니다.)

Operation System Monitoring 과 Application Performance Monitoring 을 섞어서 나열했습니다. (개념상 차이점은 있지만, 경계가 모호해지는 추세라서.)

  • 가비아 XMS
  • Linode Longview
  • Jennifer PHP
  • AWS CloudWatch
  • Google Stackdriver
  • Nginx Amplify
  • PHP ServerMon
  • Elastic Search
  • Datadog
  • Whatap
  • Sentry
  • New Relic
  • Naver Pinpoint
  • Apache SkyWalking
  • Site24x7

위의 목록에 없는 서비스/소프트웨어라면, 내가 아직 모르거나, 나의 사용 후기가 별로였거나..

 

1. 가비아 XMS

공식 사이트 : https://xms.gabia.com/

이런 좋은 서비스는 나만 알고 공유하지 않으려 했는데, 이번 기회에 공유해 본다.
가비아 라는 회사의 모니터링 서비스인데, 무려 무료이다!

소프트웨어 유지보수나 서비스 품질도 매우 뛰어나다.

오픈소스 가져다가 브랜딩만 해서 판매하는 그런 곳이 아니라 직접 개발한 것으로 보인다.

장애 알람을 설정할 수 있고, 장애 발생시 문자/이메일 채널을 통해 알림 받을 수 있다. (이것도 역시 무료)

 

요약 : 무료임. 소프트웨어 품질 좋음. 서비스 품질도 좋음. 장애 조건 설정 가능. 문자, 이메일로 알림 수신 가능.

모든 버전의 Windows, Linux 사용 가능.

 

2. Linode Longview

공식 사이트 : https://linode.com

개당 과금이 아니라 팩으로 판매한다. 3개 서버 월간 2만원, 10개 서버 월간 4만원 가격의 유료 서비스이다. 서비스 품질이 괜찮고 Linode 에서 직접만든 소프트웨어라서 안정성이 뛰어나다.

무료 체험판을 지원한다. 체험판 10개 서버 모니터링. 무료 제한 조건 : 최근 12시간 데이터만 보존. 5분 단위 측정.

Linux 서버에만 설치 가능하다.

특이 사항이라면, CPU/Memory/프로세스수/IO 를 프로세스별로 카운트하고 그래프로 보여준다.

온프레미스 환경의 MYSQL 을 구동 중일때, 모니터링을 하는 서비스가 거의 없는데 Longview 에서는 해 준다.

< 그림 : 프로세스별 CPU, MEM, IO 사용률을 볼 수 있다. 여러 서비스 구동중일때 어느것이 문제인지 파악하기 좋음 >

 

3. Jennifer PHP

공식 사이트 : https://jennifersoft.com/ko/product/php/

Jennifer Soft 는 JAVA/.NET/PHP 어플리케이션 모니터링 소프트웨어 개발 회사이다.

유료인데 가격은 모르겠다. (체험판으로만 사용해 봤습니다.)

서비스는 아니고, 소스를 구매해서 직접 구축해야 한다. 최소 2대(Data Server + View Server) 가 필요하다.

 

모니터링 알람 기능은 없다. 어플리케이션 프로그램에 inject 되어 동작하면서 각 동작을 측정한다.

나의 서비스가 얼마나 빠른 속도로 제공되고 있는지? 내 서비스가 왜 느린지? 파악하기에 좋다.

 

X-View 라는 [응답시간] / [시간] 그래프 메뉴가 있는데 매우 유용하다.

 

4. AWS CloudWatch

공식 사이트 : https://aws.amazon.com/ko/cloudwatch/

설치 링크는 : https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/download-cloudwatch-agent-commandline.html

AWS 서비스 답게, 설정이 자유롭고, 비싸다.

여러 서버의 NGINX 로그를 실시간으로 수집해서 보여주고, 여러 그래프를 표시해주는 것을 잠깐 구현해 봤는데, 다른 타사의 서비스에 비해서 너무 비싼 요금이 추정되어서 그만 뒀다.

시행 착오 조금 했음. 측정할 항목 수가 작다면 CloudWatch 쓰는 것도 좋을 것 같다. 모니터링 같이 많은 지표(metric) 측정에는 부적합.

비싸기 때문에 권장하지 않음.

 

5. Google StackDriver

공식 사이트 : https://cloud.google.com/stackdriver/

원래 Google 제품은 아니었는데, 2014년에 인수해서 이제 Google 제품이 된 StackDriver 이다.

아주 넓은 한도 내에서 무료이다. (정말 많이 사용해야 유료 과금)

cloud.google.com 과 stackdriver.com 을 왔다갔다 하기 때문에 사용이 조금 번거롭다. (설치도 번거로움)

관리자 페이지 구성 및 보기에는 좋지만, 설치 및 설정은 매우 번거롭다. (기능에 맞는 각 프로그램 설치, 연동, 권한부여 등..)

 

Stackdriver Trace 를 사용하면 어플리케이션 퍼포먼스도 확인할 수 있다.

 

6. Nginx Amplify

공식 사이트 : https://amplify.nginx.com/

계정당 5개 서버까지 제한 없이 무료. (그 이상 쓰고 싶으면 sales 연락하거나 계정을 하나 더 만들어보자.)

 

인기 있는 웹서버인 NGINX 개발사에서 제작한 모니터링 서비스이다.

nginx access_log 및 error_log 로그를 자세하게 남기게 변경하면, 이 Amplify Agent 가 로그를 분석해서 처리해준다.

모든 지표에 대해서 알람(Alert)을 설정할 수 있다. (참고로 AWS CloudWatch 로 이것들을 구현하려면 월간 10만원 이상 나올 것이다.)

서버 다운, nginx 요청수, php 대기큐, mysql 커넥션 수 등 다양한 장애 예측 지표에 대해서 알람을 설정할 수 있다.

 

근데 다른 소프트웨어들과 비교해서 별로 나은게 없는 것 같다.

 

7. PHP ServerMon

공식 사이트 : https://www.phpservermonitor.org/

Uptime 검사 소프트웨어라고 보면 된다.
TCP 또는 HTTP 요청을 하고 결과를 분석(status code, response time, response body)해서 표시해 준다.
알림도 보내준다.

개인적으로 매우 유용하게 사용하고 있다. light weight opensource software 라서 인프라 내에 두고 점검하고 알림 구축하는데 쓰면 좋다.

내가 이 php servermon 에 등록한 사이트들은 진짜 많이 신경쓰고 관리하고 있는 곳이라고 보면 된다.

5가지의 알람채널을 만들 수 있는데, Telegram 알림이 유용하다.

 

8. Elastic Search

공식 사이트 : https://www.elastic.co/

ELK 라고도 부르는데 Elastic Search 라고 말하면 된다.

< ELK 설명. 출처 : https://www.elastic.co/kr/what-is/elk-stack >

즉, Elastic Search 라는게 있었는데, 눈으로 보기 어려워서 Kibana 라는 viewer 툴이 생겼고, 자료 입력하기 어려워서 Logstash 라는 입력 툴이 생긴 것이다.

널리 사용되는 소프트웨어의(Apache 등) 로그를 수집하는 소프트웨어를 제공한다. (직접 구축할 경우에 무료이다.)

 

 

그 이외에 Application Performance Monitoring 을 지원하고 있다.
이것 역시 SaaS 형태로 사용할 경우 유료, 직접 구축할 경우 무료이다.

장점 : 직접 구축할 경우 무료. 많은 참고할 만한 리소스. 쉽게 설치되고 쉽게 다룰 수 있음. 레퍼런스 많음(즉, Google 검색 가능)
단점 : 자유도가 높기 때문에 프로그래머의 손이 조금 가야 한다.

 

9. DATADOG

이번 AWS re:Invent 참여하면서 들어본 모니터링 회사이다.
분석 그래프가 눈에 보기 어렵더라.
왠만하면 써보려고 했는데, 이것으로 의미있는 작업을 하기 어려워서 사용을 중단했음.

 

 

10. New Relic

공식 사이트 : https://newrelic.com/

Trial 에 기능제한이 많이 걸려있어서 확인을 잘 하지는 못하였다. 가격은 비싼편.

 

11. Whatap 와탭

공식 사이트 : https://www.whatap.io/

이번 re:invent 참가할때 CEO님을 뵌적이 있었는데, 이러한 Application Performance Monitoring의 당위성에 대해서 잘 설명해주시더라.

여담으로 whatap CTO 분은 jennifer CTO 이었다. (이직)

그래서 제니퍼와 와탭의 사용법이 비슷했다. 제니퍼는 구축형, 와탭은 SaaS 형으로 더 발전되어 있었다.

 

12. Sentry

커스텀 로그 기반의 모니터링임. 어플리케이션 코드에서 에러를 정의해 줄 수 있으면 사용하기 좋다. (더 쉽게 설명하기 어렵군.)

 

13. Site24x7

 

14. SolarWinds

 

 

완전 많네….  다 써보고 리뷰하는데에 시간좀 걸릴듯.

글은 틈틈히 업뎃됩니다.

 

 

2 Comments

  1. 프로메테우스
    netdata
    elk

    등으로 구축하는건 어떤가요

    1. 안녕하세요. 알려주셔서 감사합니다. 이왕 글 작성한 김에 조금 더 보충하도록 하겠습니다.
      셋중에 하나 고른다면 ELK 에 한표 던집니다.

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*