Monit

在每次檢查的基礎上使用郵件格式覆蓋監視警報

  • January 18, 2017

我目前對執行 HTTPS 的每個主機進行兩次監視檢查:

check host www-example-https with address www.example.org
 if failed
   port 443
   protocol https
 then alert

check host www-example-certificate with address www.example.org
 every "25 10 * * *"
 if failed
   port 443
   protocol https
   and certificate valid > 30 days
 then alert

第一個警告我根本連接失敗,每 2 分鐘執行一次,而第二個提醒我證書的到期時間少於 30 天,並且每天只執行一次。

目前,這兩項檢查都會產生類似的警報消息,這意味著即將到期的證書看起來像是 HTTPS 完全失敗。因此,我想在每個警報的基礎上覆蓋預設郵件選項。

我知道set mail-format如果我想更改所有警報,我可以這樣做,但如果我正在使用一個塊,我無法弄清楚單個警報的語法if failed ... then alert,而且我找不到這個特定案例的任何範例手冊。

mail-format對於我上面定義的警報類型,是否可以基於每個警報覆蓋?

此處的文件中有一個範例https://mmoni.com/monit/documentation/#CONFIGURATION-EXAMPLES

從個人測試中,您無法避免“ alert a@bc ”部分,因此要恢復,以滿足您的需求,它會導致:

check host www-example-https with address www.example.org
 if failed
   port 443
   protocol https
 then alert
 alert me@example.com with mail-format {     # use local format
    subject: https is down on www.example.org
    message: https is down on www.example.org with port 443
 Yours sincerely,
 monit
 }


check host www-example-certificate with address www.example.org
 every "25 10 * * *"
 if failed
   port 443
   protocol https
   and certificate valid > 30 days
 then alert
 alert metwo@exmaple.com with mail-format  {     # use local format
    subject: https certificate expiration for www.example.org
    message: https is certificate is less than 30 days  on www.example.org with port 443
 $SERVICE $EVENT at $DATE
 Monit $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.
 Yours Pal,
 MoMoMonit
 }

此外,如果主機“失敗”,似乎將不會執行證書檢查。

在任何地方使用“設置郵件格式”,為所有通知更改它

引用自:https://serverfault.com/questions/823170