Monit 인스턴스 시작 / 중지 알림을 비활성화하는 방법은 무엇입니까?


10

Monit은 monit 데몬이 중지되거나 시작될 때마다 경고를 보냅니다. 이것은 독특하고 유용한 정보가 아닙니다.

문서에 따르면 다음과 같이 설정했습니다.

set alert user@mycompany.com but not on { instance }

... 시작 / 중지로 정의 된 "인스턴스"범주에 속하지 않는 한 해당 이메일로 경고를 보내야합니다.

그러나 여전히 경고가 생성됩니다. 이것은 매우 성가시다. 분명히 나는 ​​무언가를 놓치고 있어야합니다.

Monit 5.2.4를 실행 중입니다


이 적용되어 이 문제?
ewwhite

답변:


7

Monit는 문서에 따라 여러 가지 경고를 생성 할 수 있습니다.

Event:     | Failure state:              | Success state:
---------------------------------------------------------------------
action     | "Action done"               | "Action done"
checksum   | "Checksum failed"           | "Checksum succeeded"
bytein     | "Download bytes exceeded"   | "Download bytes ok"
byteout    | "Upload bytes exceeded"     | "Upload bytes ok"
connection | "Connection failed"         | "Connection succeeded"
content    | "Content failed",           | "Content succeeded"
data       | "Data access error"         | "Data access succeeded"
exec       | "Execution failed"          | "Execution succeeded"
fsflags    | "Filesystem flags failed"   | "Filesystem flags succeeded"
gid        | "GID failed"                | "GID succeeded"
icmp       | "Ping failed"               | "Ping succeeded"
instance   | "Monit instance changed"    | "Monit instance changed not"
invalid    | "Invalid type"              | "Type succeeded"
link       | "Link down"                 | "Link up"
nonexist   | "Does not exist"            | "Exists"
packetin   | "Download packets exceeded" | "Download packets ok"
packetout  | "Upload packets exceeded"   | "Upload packets ok"
permission | "Permission failed"         | "Permission succeeded"
pid        | "PID failed"                | "PID succeeded"
ppid       | "PPID failed"               | "PPID succeeded"
resource   | "Resource limit matched"    | "Resource limit succeeded"
saturation | "Saturation exceeded"       | "Saturation ok"
size       | "Size failed"               | "Size succeeded"
speed      | "Speed failed"              | "Speed ok"
status     | "Status failed"             | "Status succeeded"
timeout    | "Timeout"                   | "Timeout recovery"
timestamp  | "Timestamp failed"          | "Timestamp succeeded"
uid        | "UID failed"                | "UID succeeded"
uptime     | "Uptime failed"             | "Uptime succeeded"

우리는 설정 (무고한 사람들을 보호하기 위해 주소가 변경됨) 으로이 문제를 해결할 수있었습니다.

SET ALERT important-messages@projectlocker.com ON { invalid, nonexist, timeout, resource, size, timestamp}
SET ALERT less-important-messages@projectlocker.com ON {action, permission, pid, ppid, instance, status}

이것은 메시지를 우리가 관심있는 주소로 라우팅합니다. 전역 또는 로컬로 설정할 수 있지만 알림은 전 세계에 해당합니다.

SERVICE TESTS ( http://mmonit.com/monit/documentation/monit.html) 의 소제목은 위의 유형과 상당히 일치합니다.

서버의 예약 된 각 프로세스 또는 기능에 대해 평범한 영어로 중요한 사항을 생각해 내고 욕망을 서비스 테스트에 언급 된 테스트 중 하나와 일치시킬 수 있어야합니다. 예를 들어 Apache를 실행하는 경우 다음에 관심이 있다는 것을 알고 있습니다.

  • PID 파일의 PID가 여전히 실행 중입니까? (존재하지 않음)
  • 내 지식없이 PID가 변경 되었습니까? (pid)
  • 서비스가 다시 시작될 때 적시에 응답합니까? (시간 초과)

폴링하는 사용자 정의 데몬의 경우 로그 파일이 정기적으로 상태 메시지 (시간 소인)로 업데이트되는지 여부를 신경 쓸 수 있습니다.


1
당신이 관심있는 것을 어떻게 말합니까? 그 행동이 실제로 무엇을 의미하는지에 대한 좋은 문서를 찾을 수 없었습니다. 예를 들어, "가동 시간"은 꽤 유용 해 보이지만 목록에 없습니다.
dfrankow

댓글로 답을 수정하겠습니다.
brokenbeatnik

6

Monit 버전 5.2.5를 사용하고 있으며 다음을 사용하면 monit 경보가 중지됩니다.

set alert example@gmail.com not {instance}


1

이 예에 따라 N 시간 동안 특정 횟수만큼 재 시도한 후에 중단 하도록 지시하면 됩니다.


이것은 주어진 감시 프로세스 또는 서비스 중지 또는 시작 (뉴스)의 통지가 아니라 monit 데몬 자체 중지 / 시작의 통지입니다. 이는 항상 의도적이며 뉴스는 아닙니다.
Winfield

1
Ooooh, 전역에서 "경고 설정"행을 제거하고 서비스 스탠자에 명시적인 경고를 넣으면 어떻게됩니까?
벤 루트 겐

이것은 더 잘 작동합니다. 검사에서 경고 이메일을 설정하기 만하면됩니다.
Mike

1

monit 내에서이 문제를 해결할 수 없었으며 monit 전자 메일에 처리 계층을 구축하여 배달 전에 이러한 monit 인스턴스 알림을 걸러내어 차단했습니다.

우리는 호출기 의무를 사용하여 monit 및 여러 다른 시스템에서 알림을 누적하고 발송 하므로이 경우 monit 인스턴스 알림 전자 메일을 필터링하기 위해 주제 기반 정규 표현식을 사용하여 Monit 서비스에 필터링 규칙을 추가했습니다.

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