2010-05-23 6 views
5

우리는 많은 응용 프로그램을 실행할 웹 서버를 가지고 있습니다. 그들은 모두 데이터베이스와 memcached 서버를 공유하지만 각각의 응용 프로그램에는 응용 프로그램마다 고유 한 mySQL 데이터베이스와 모든 memcached 키가 있으며 접두사가 붙습니다.웹 서버의 오류 모니터링/처리

가능한 시나리오 : 우리 클러스터의 memcached와 서버가 붐을가는 경우

, 우리는 사람 (수술 시스템 관리자가) 자동으로 이메일/아이폰 푸시 알림 또는 다른 적절한 방법으로 연락을합니다.

서버에 고객을 위해 150 개의 동일한 응용 프로그램을 설치하려고하고 memcached 서버가 죽으면 150 개의 응용 프로그램이 모두이를 찾아서 시스템 관리자에게 문의하십시오. 아침에 4:15을 150 통의 메시지를 보내어 깨우려고하지 않을 새 직장을 얻습니다.

가능한 해결 방법 :

하나의 아이디어가 보낸 $ _POST 또는 컬 요청을 받으면 오류 처리에 대한 외부 서버를 설정하는 것입니다, 실제 오류 메시지의 심각성에 따라 오류 메시지의 저장을 처리합니다.

: 그것은 물론

질문 ... 같은 memcached와 서버가 이미 오프라인으로보고 된 경우, 추가 알리미와 시스템 관리자를 스팸 할 필요가 없을 것, 에러 전화를받을 때 체크 것이다

  • 오류를 처리하는 방법에 대한 좋은 접근 방법은 무엇입니까?
  • 업계의 큰 사람들은 어떻게 이것을 어떻게 처리합니까?

감사합니다.

+0

현상금이 켜져 있습니다! – Industrial

답변

3

휠을 다시 만들 필요가 없으므로 Hyperic과 같은 오픈 소스 모니터링 프레임 워크를 사용하는 것이 좋습니다.

Hyperic은 시스템의 여러 측면을 즉시 모니터링 할 수 있으며 새로운 모니터링 포인트를 연결하는 것이 매우 쉽습니다. 규칙 기반 경고를 제공하고 재설정 할 때까지 한 번만 경고 유형을 구성 할 수 있습니다.

PHP 응용 프로그램을 모니터링하는 데 사용하지는 않았지만 (자바 스크립트를 모니터링하는 데 사용하지는 않았지만) Java 응용 프로그램 및 관련 MySQL DB를 모니터링하는 데 매우 성공적이었습니다.

+0

Hyperic 슈퍼 달콤한 보인다. 확실히 그것을 확인할 것입니다! – Industrial

+0

팁 주셔서 감사합니다, Eric. 하이퍼 릭이 이제 실행 중입니다. :) 고마워요! – Industrial

+1

@Industrial : 다행스럽게도 당신을 위해 일했습니다. 우리는 약 18 개월 동안 생산에 사용했으며 매우 만족합니다. –

2

글쎄, 귀하의 문제는 응용 프로그램 외부에서 가장 잘 해결된다고 생각합니다.

물리적 서버 및 소프트웨어 서버/서비스를 모니터링하려고합니다. http://www.nagios.org/ 또는 http://www.opennms.org/과 같은 것을 권하고 싶습니다. 각 memcached 서버, mysql 서버, 아파치 등을보고 상태 변경 (다운, 리소스 부족, 복구 등)에 대한 알림을 보내도록 설정하십시오.