모니터링 솔루션에서 무엇을 찾고 있습니까?


21

이것은 모니터링 소프트웨어에 대한 정식 질문 입니다.

관련 : 서버를 모니터링하기 위해 어떤 도구를 사용합니까?

서버를 모니터링해야합니다. 모니터링 솔루션을 결정할 때 고려해야 할 사항은 무엇입니까?


답변:


19

거기에는 많은 모니터링 솔루션이 있습니다. 모든 사람은 자신의 취향을 가지고 있으며 각 비즈니스마다 고유 한 요구가 있으므로 정답은 없습니다. 그러나 모니터링 솔루션을 선택할 때 원하는 것을 파악할 수 있도록 도와 드릴 수 있습니다.

모니터링 시스템이란 무엇입니까?

일반적으로 모니터링 시스템은 두 가지 주요 목적을 제공합니다. 첫 번째는 시간이 지남에 따라 데이터를 수집하고 저장하는 것입니다. 예를 들어 CPU 사용률을 수집하고 시간이 지남에 따라 그래프를 표시 할 수 있습니다. 두 번째 목적은 상황이 응답하지 않거나 특정 임계 값 내에 있지 않은 경우 경고하는 것입니다. 예를 들어, 핑으로 특정 서버에 도달 할 수 없거나 CPU 사용률이 특정 백분율을 초과하는 경우 경고를 원할 수 있습니다. Splunk와 같은 로그 모니터링 시스템도 있지만이를 별도로 처리하고 있습니다.

이 두 가지 주요 역할은 때때로 단일 제품에서 제공되며 다른 경우에는 각 목적에 맞는 제품을 보유하는 것이 더 일반적입니다.

모니터링 시스템의 주요 구성 요소 및 기능은 무엇입니까?

폴러 :
모든 모니터링 시스템은 데이터를 수집하기 위해 일종의 폴러가 필요합니다. 모든 데이터가 같은 방식으로 수집되는 것은 아닙니다. 환경을보고 필요한 데이터와 수집 방법을 결정해야합니다. 그런 다음 선택한 모니터링 시스템이 필요한 것을 지원하는지 확인하십시오. 몇 가지 일반적인 방법은 다음과 같습니다.

  • SNMP (단순 네트워크 관리 프로토콜)
  • WMI (Windows 관리 계측)
  • 스크립트 실행 (예 : 모니터링중인 컴퓨터에서 스크립트를 실행하거나 자체 폴링 방법을 사용하는 모니터링 상자 자체에서 스크립트를 실행) 여기에는 Bash 스크립트, Perl 스크립트, 실행 파일 및 Powershell 스크립트가 포함될 수 있습니다.
  • 에이전트 기반 모니터링. 이를 통해 프로세스가 각 클라이언트에서 실행되고 해당 데이터를 수집합니다. 이 데이터는 모니터링 서버로 푸시되거나 모니터링 서버가 에이전트를 폴링합니다. 일부 관리자는 에이전트를 사용하는 것이 좋으며 다른 관리자는 모니터링하는 서버에 더 많은 공간을 차지할 수 있기 때문에 싫어합니다.
  • 집중된 API (예 : VMWare API 또는 SQL 쿼리 실행 기능)

환경에 기본적으로 하나의 OS 또는 기본 OS가있는 경우 특정 시스템에 다른 시스템보다 더 많은 옵션이있을 수 있습니다.

구성 :
모니터링 시스템에서 많은 객체 재사용이 발생하는 경향이 있습니다. 예를 들어 여러 서버에서 Apache 또는 IIS와 같은 특정 응용 프로그램을 모니터링하려고합니다. 또는 서버 그룹에 특정 임계 값을 적용하려고합니다. 특정 그룹의 사람들이 "통화 중"상태 일 수도 있습니다. 따라서 훌륭한 템플릿 시스템은 모니터 시스템에 필수적입니다.

구성은 일반적으로 사용자 인터페이스 또는 텍스트 파일을 통해 수행됩니다. 사용자 인터페이스 옵션은 일반적으로 더 쉽지만 텍스트 파일은 재사용 및 변수에 더 나은 경향이 있습니다. 따라서 IT 직원에 따라 전력보다 단순성을 선호 할 수 있습니다.

사용자 인터페이스 :
요즘 시스템 모니터링을위한 가장 일반적인 인터페이스는 웹 인터페이스입니다. 웹 인터페이스와 관련하여 평가해야 할 사항은 다음과 같습니다.

  • 좋은 개요
  • 좋은 상세 페이지
  • 속도 (위기 모드에서 정보를 찾아야 할 때 느린 인터페이스는 매우 실망 스러울 수 있음
  • 일반적인 느낌. IT 직원이 사용하기에 불편 함을 느끼면 인터페이스에서 많은 시간을 소비하게됩니다.
  • 주 문화. 모든 조직에는 중요한 것이 있고 그렇지 않은 것이 있습니다. 필요에 따라 사용자 정의 할 수 있어야합니다.

경고 엔진 :
경고 엔진은 유연하고 안정적이어야합니다. 알림을받는 방법에는 여러 가지가 있습니다.

  • SMS
  • 이메일
  • 전화
  • IM / Jabber와 같은 다른 것

찾을 다른 기능은 다음과 같습니다.

  • 이관 (다른 사람이 알림을인지하거나 수정하지 않은 경우 다른 사람에게 알림)
  • 회전과 교대
  • 단체 (특정 단체는 특정 사항을 통보 받아야 함)

문제가 발생하면 경고를 받게된다는 것을 신뢰하는 것이 중요합니다. 이것은 두 가지로 귀결됩니다.

  1. 안정적인 시스템
  2. 경고없는 구성. 모니터링 시스템에서 경고를 받아야한다고 생각하는 것은 드문 일이 아니지만 구성의 세부 사항으로 인해 경고가 트리거되지 않았습니다.

데이터 저장 :
시스템이 데이터를 저장하는 것보다 시스템이 데이터 (예 : 그래프를 포함하는 시스템)를 수집하고 저장하는 경우 상점과 그래프 모두에 대한 매우 일반적인 구현은 예를 들어 RRD입니다.

데이터 저장소에서 찾아야 할 일부 기능은 다음과 같습니다.

  • 데이터에 대한 원시 접근. 이는 Excel과 같은 사용자 정의 그래프를 개발하거나 작성하는 데 유용 할 수 있습니다.
  • 확장 성. 수집하는 데이터의 양에 따라 데이터를 빠르게 추가 할 수 있습니다. 수집 할 데이터가 많으면 확장 할 수 있습니다.

그래프 라이브러리 :
그래프는 트렌드를 빠르게 식별하고 히스토리를 기반으로 무언가의 현재 상태에 컨텍스트를 제공하는 데 유용 할 수 있습니다. 발생하기 전에 상황을 예측하는 데 도움이 될 수있는 추세 (예 : 디스크 공간 부족)가 포함됩니다. 그래프를 통해 원하는 방식으로 명확한 정보를 얻을 수 있습니다.

액세스 제어 :
대규모 조직의 경우 특정 관리자 만 특정 항목을 조정할 수 있으므로 액세스 제어가 필요할 수 있습니다. 공개 대시 보드를 원할 수도 있습니다. 이것이 중요한 경우 모니터링 시스템에 필요한 제어 기능이 있는지 확인해야합니다.

다른 기능들

보고 :
좋은 보고서를 제공하는 시스템을 통해 장기간 개선해야 할 사항을 식별 할 수 있습니다. 예를 들어 "어떤 시스템이 가장 많이 다운됩니까?"와 같은 것들에 대한 좋은 대답을 줄 수 있습니다. 이것은 경영진이 특정 사물에 돈을 쓰도록 설득하려고 할 때 중요 할 수 있습니다.

특수 기능 :
일부 모니터링 시스템은 특정 제품을 대상으로하거나 다른 제품보다 더 많은 지원을받습니다. 예를 들어, 모니터링해야 할 주요 사항이 SQL Server이거나 VMWare 제품을 많이 사용하는 경우 이들이 얼마나 잘 지원되는지 확인할 수 있습니다.

사전 정의 된 모니터링 템플릿 :
사전 정의 된 템플릿이 많은 시스템 (또는 많은 템플릿을 만든 사용자 기반이있는 시스템)은 시간을 크게 절약 할 수 있습니다.

발견 :
환경이 크거나 변화하는 경우. 일부 시스템은 API를 통해 새 시스템을 추가하거나 스캔을 실행하여 새 서버 또는 구성 요소를 찾을 수있는 기능을 제공합니다.

분산 모니터링 : 모니터링
할 여러 위치가있는 경우 많은 독립 시스템이 WAN을 통해 모니터링하는 대신 각 위치에 폴러를 모니터링하는 것이 도움이 될 수 있습니다.

인기있는 모니터링 시스템

거기에는 많은 모니터링 시스템이 있습니다. 이 오래된 질문에 대한 요약 목록이 있습니다. 빠른 참조를 위해 가장 많이 듣는 부분은 다음과 같습니다.

  • 나지 오스
  • 선인장
  • OpenNMS
  • 태양풍
  • 자 빅스
  • 다양한 클라우드 기반 모니터링 시스템
  • Microsoft 시스템 센터
  • 이것은 아직 인기가 없지만 Stack Exchange는 모니터링 시스템 http://bosun.org를 오픈 소스로 제공했습니다.

위의 내용에 따라 결정하는 방법

내가 무엇을 사용해야하는지 말할 수없는 이유는 모든 조직마다 고유 한 요구 사항이 있기 때문입니다. 올바른 선택을하려면 위의 모든 구성 요소를 고려하여 조직에 어떤 기능이 중요한지 파악해야합니다. 그런 다음 필요한 것을 제공한다고 주장하는 시스템을 찾아보십시오. 이 중 일부는 비용이 많이 들거나 무료이거나 무료입니다. 이 모든 것을 고려하면 선택을 할 수 있습니다. 내가 사용한 것에서 그들은 완벽하지는 않지만 적어도 당신은 맞는 것을 얻으려고 노력할 수 있습니다.


2
"Alerting Engine"에서는 기능으로 "알림 속도 제한"이 필요합니다. 계단식 실패 또는 플 래핑 실패 (수동, 작동 중지, 작동 중지, 작동 중지)로 인해 수백 또는 수천 개의 경보가 발생하는 알림 "폭풍"의 대상이되는 것은 재미가 없습니다.
Evan Anderson

8

모니터링과 경고를 구분하는 데 도움이됩니다. 모니터링은 데이터를 수집하고 그래프를 만드는 것을 의미합니다. 경고는 한밤중에 서버가 다운되면 SMS를 보내라는 의미입니다.

Nagios는 경고 용입니다. Cacti와 Munin은 모니터링을위한 것입니다. 다른 제품은 두 기능을 결합합니다. Zenoss와 Zabbix가 그 예입니다.

몇 가지 질문에 대답하는 것으로 시작하겠습니다.

서버, 네트워크 장치, 응용 프로그램 또는 세 가지 모두를 모니터링해야합니까?

모니터링하는 데 사용할 수있는 방법에 제한이 있습니까? 서버에 NRPE와 같은 모니터링 클라이언트를 설치할 수 있습니까, 아니면 SNMP를 사용 하시겠습니까?

누가 그래프를 사용하고 누가 경고를 사용합니까? 최종 결과는 어떻습니까? 인터페이스의 모양과 느낌이 중요합니까 (기업인이 이것을 사용합니까, 아니면 기술 직원 만 사용합니까?)

시간, 기술 및 하드웨어 측면에서 귀하의 자원은 무엇입니까? 최소한의 스크립팅 기능이 있습니까? 기본 솔루션이 필요하십니까?

제 생각에는 경고와 모니터링의 첫 번째 규칙은 간단하게 유지해야합니다! 조직은 데이터를 알리고 수집하는 방법에 따라 살거나 죽을 수 있으며 대부분의 경우 자체적으로 복잡해집니다. 기본부터 시작하여 거기서부터 구축하십시오.


4

tl; dr

소프트웨어가 제공 하는 서비스 에 대해 생각하고, 이러한 서비스가 실패 할 때 또는 이러한 서비스의 실패 위험 이 증가 할 때 경고를 보냅니다 .

서비스 수준 계약

모니터링 전략의 이론은 모니터링 및 경고를 일종의 서비스 수준 계약에 연결하는 것 입니다. 결국, nji0019.myserver.com에 대한 TCP 연결 수가 급격히 증가 할 필요는 없지만 돈을 잃고 있다는 사실을 알고 싶습니다. 많은 경고를 제공하고 경고 사이의 종속성을 정의하는 다양한 도구가 있지만 이러한 검사 중 다수는 사용자에게 제공 하는 서비스 와 직접 관련이 없습니다 .

서비스 위반

웹 사이트를 제공하는 기능 및 해당 웹 사이트를 수정하는 기능 (예 : 일종의 CMS)과 같이 제공하는 중요한 서비스를 식별하십시오. 그것들은 (예를 들어 웹 페이지를 얻을 수 있고 모니터링 할 수 있는지 모니터링하여) 확인해야합니다. 이 두 서비스 (자본 S와 함께 사용)가 실패하면 알림 메시지가 표시됩니다.

사이트가 적절한 시간 내에 응답하는 것이 중요하면 경고도 트리거해야합니다. "SLA 위반"에 해당합니다.

위험 증가

일반적으로 서비스가 실패 할 위험이 있으며, 두 번째 서버, 슬레이브 데이터베이스 또는 여분의 네트워크 카드와 같은 중복성을 도입한다는 사실로 인해 위험이 완화 될 수 있습니다.

중복성이 손실 된 경우 서비스는 여전히 문제가되지 않지만 서비스 실패 위험이 커졌습니다.

이것이 경고를 발생시키는 두 번째 주요 이유입니다. 중복성이 사라지거나 (예 : 두 번째 서버가 사망 한 경우) 또는 위험이 증가 할 수있는 임박한 위험이 있습니다 (예 : 디스크에 500Mb 만 남아 있거나 디스크 추세는 디스크가 약 5 시간 내에 가득 찼음을 나타냅니다).

모든 지표는 어떻습니까?

그러나 check_mk는 호스트 당 50-60 개의 검사를 제공합니다.

아니요.이 모든 것이 당신이 예를 들어 check_mk와 같이 과도하게 많은 자동 점검을 버리고 싶지 않다는 것을 의미하지만, 어떤 점검이 실패하면 어떤 점검이 영향을 받는지에 각각의 점검을 분류해야한다는 것을 의미합니다.

/ var / 파티션이 가득 차면 어떤 서비스가 영향을 받습니까? eth0 인터페이스가 다운되면 어떤 서비스가 영향을 받습니까? ... 일부 방화벽에 의해 아웃 바운드 TCP 연결이 차단 된 경우? ... 스레드 수가 800을 초과하면? ... 데이터베이스가 다운되면?

2 대의 웹 서버와 소유하지 않은로드 밸런서 뒤에 사이트를 제공하는 데이터베이스 서버 (예 : ISP)가 있습니다. 제공하는 서비스는 두 서버의 포트 80이며 데이터베이스 다운 타임 (세번째 서버의 데이터베이스)과 같이 살아남을 수있는 거대한 캐시를 가지고 있습니다.

이 시나리오에서 웹 서버가 완전히 실패하면 사이트가 다운되지 않습니다. 일어난 일은 실패위험이 막 올라가 도록 중복성이 사라 졌다는 것입니다 . 경고를 트리거합니다.

잘 조정 된 캐시가 제 위치에 있기 때문에 데이터베이스가 완전히 실패해도 사이트를 제공하는 기능에는 전혀 영향을 미치지 않을 수 있습니다. 그러면 웹 사이트를 제공 하는 서비스에는 영향을 미치지 않지만 웹 사이트를 업데이트하거나 주문을 수락하는 다른 서비스에는 영향을 줄 수 있습니다.

각 서비스에는 서비스를 복원하거나 중단을 피하는 것이 얼마나 중요한지를 지정하는 자체 서비스 수준이 있습니다.

민첩하게

경고를받을 때마다 다음 중 하나를 수행해야합니다.-경고의 원인이되는 문제를 해결하기 위해 모니터링되는 시스템 변경 (예 : 드라이브 교체 또는 로그 회전 재구성 등)-경고가 발생하지 않도록 모니터링 시스템 변경 다음 번에 상황이 발생했을 때 보냈습니다. (예 : 디스크가 80 % 대신 최대 90 %까지 채워질 수 있도록 "디스크 여유 공간"레벨을 변경하십시오.)

내 자신의 경험

나는 주로 Nagios와 그 자세한 구성에 익숙하며 Check-mk의 다중 사이트에 매료되었습니다. 나는 최근 check_mk가이 사고와 잘 어울리는 비즈니스 인텔리전스 (1.11 이후) 개념을 가지고 있다는 것을 배웠다. nagios의 검사가 더 큰 서비스의 일부이며 "서비스"의 상태를 많은 검사 상태의 함수로 정의하여 최악 또는 최상의 상태로 집계하는 규칙을 정의 할 수 있습니다.


와우, 두 개의 공감대와 의견이 없습니다. 좋은 형태.
mogsie

1
너무 멀리 생각하면 사람들이 두려워합니다 :)
Florian Heigl

1

모니터링 솔루션을 선택할 때 기업이 잊고있는 가장 중요한 점 중 하나는 즉각적인 운영 문제를 해결 하는 것이 아니라 내일의 예상치 못한 문제를 해결하는 것입니다. 당연히 즉각적인 문제를 해결하는 것이 중요하지만 많은 경우에이 근시안 전략이 회사의 생존을 보장하지는 않습니다.

시장에는 수십 가지 훌륭한 모니터링 솔루션이 있습니다. 또한 요구 사항을 충족하는 소규모 솔루션을 선정하는 것은 어렵고 긴 작업이며 예산에 맞는 솔루션을 찾는 것이 훨씬 더 어렵습니다. 흥미로운 부분은 현재와 ​​미래에 맞는 것을 찾는 것입니다 . 그리고 경험 + 직관 + 매우 중요한 요소 인 신뢰 의 문제라는 것을 감지하는 평가 프로세스 가 없습니다. 이것은 해킹 하기 쉽지 않습니다 .

경험상, 특히 해당 분야의 회사에 영향을 미치는 경우, 후보 모니터링 솔루션 세트의 성공 사례 를 검색하고 발굴 하십시오. 공급 업체에 성공 사례를 문의하고 고객 중 한 명과 대화 할 수있는 권한을 요청하십시오. 이를 두려워하지 않는 회사는 고객과의 실제 관계가 있으며이를 숨기지 않으며 오늘날에는 매우 드문 일입니다.

Zabbix, Icinga, Pandora FMS, op5, Datadog, New Relic ... 모두 기복이 있지만 실제 문제 는 어느 것이 미래에 더 잘 적응하는지 찾는 것입니다.


0

원격 시스템 모니터링을 고려중인 경우 테스트가 수행되는 실제 위치를 찾는 것이 좋습니다. 연결 문제는 과거의 일이 아니며 하드웨어가 특정 지역의 그룹에 서비스를 제공하는 경우 해당 특정 위치에서 리소스를 사용할 수 있는지 확인하고자 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.