2009-08-19 3 views
1

나는 이메일을 서버로 보내서 데이터베이스에 기록하는 루비 애플리케이션을 만들고있다. 지금은 (전자 메일 -> 루비 -> 데이터베이스) 스택을 완전히 중단시키는 방법을 테스트 할 방법이 없습니다. 나는 루비가 가동 중지 시간 동안 실행중인 서버를 테스트하는 서비스를 사용하고 있으며, 나는 루비 데몬이 너무 오랫동안 내려 가지 않도록하기 위해 monit을 사용하고있다.우분투에서 Postfix 서버와 Ruby 응답을 모니터하기

1) 데이터베이스

내 데몬에서 그것을 만드는 여전히)

이 메일로 메시지를 있습니까 전송/여전히 수신 내 접미사가 수동으로 주기적으로 확인하는 것 외에도, 내가 확인하는 데 사용할 수있는 서비스가있다

그렇지 않은 경우 두 시나리오 중 하나 또는 안정적으로 작동 할 수있는 가정용 양조 방법 중 하나에 대한 경고를 모니터링하고 보내는 모범 사례가 있습니까?

답변

1

cron 작업을 통해 "canary"메시지를 보낸 다음 다른 cron 작업 테스트를 통해 예상되는 canary 메시지가 데이터베이스에 기록되었는지 확인할 수 있습니다. (선택적으로 삭제 등)

+0

나는 그것을 고려하고 있었지만이 방법이 얼마나 해킹되었는지를 알지 못했다. 더 많이 생각할수록 더 좋아한다. 추가 생각하면 감사합니다 – Schneems

+1

원하는 경우 원격 시스템에서 카나리아를 보낼 수 있습니다 ... 시스템을 통해 대기 시간을 추적 할 수있는 적절한 타임 스탬프가있는 경우 ... 메시지에 통계가있는 경우 카나리아를 무시하십시오. 그런 다음 카나리아를 찾아보고 나타나지 않으면 이메일로 알려줄 시스템이 필요합니다. – DGM

0

상업용 도구를 찾고 있다면 www.logicmonitor.com에서이를 수행 할 수 있습니다. Postfix 모니터링 (모니터링 상태 및 그래픽 메시지가 대기열에 넣어지고 전달, 반송, 거부 등). 또한 데이터베이스 모니터링 (MySQL, oracle, postgres, sql 서버) - 데이터베이스에 경고하고 추세를 표시하고 필요한 경우 조정에 대한 조언을 제공합니다. 또한 전자 메일을 데이터베이스에 마지막으로 삽입 한 시간과 같은 것을 쉽게 추적 할 수 있으며 예상보다 많은 시간이 있으면 경고합니다. 플러스 응용 프로그램 응답 시간을 추적하는 로그 파일을 모니터링하십시오.

이 시스템의 중요도에 따라 시간과 비용이 균형을 이룹니다.

0

나는 Monit으로 경험이 없지만 이러한 테스트를 수행 할 수 있습니다. 그렇지 않은 경우 Nagios을 살펴 보시기 바랍니다. 직접 테스트를 작성하는 API는 매우 간단합니다.

테스트는 것을 :

  • SMTP 서버는 네트워크에 대응하고 있습니다.
  • 후위 프로세스가 실행 중입니다.
  • 후위 대기열이 비어 있습니다.

DGM "카나리아"제안을 사용하여 왕복 테스트를 수행 할 수 있습니다. 이와 같은 루틴을 설정할 수 있다면 아마도 최상의 정밀도를 가지며 오류에 대한 가장 신속한 대응을 제공 할 수 있습니다.

트래픽이 상대적으로 자주 발생하는 경우 유용 할 수있는 대안은 후위 로그 및 데이터베이스 서버의 로그를 모니터링하는 것입니다. 마지막 성공 메시지가 예를 들어 30 분보다 오래되었는지 확인합니다 (적절한 값인 "30 "... 그리고"분 "...). 이 접근법은 더 느리게 반응하지만 더 많은 가능한 오류 조건을 다룰 것입니다.

관련 문제