docker: 定时检查docker container的运行状态并发邮件报警

首先创建一个发送邮件的bash脚本 - send_mail.sh:

#!/bin/bash

curl -s --user 'api:key-xxxxxxxxxxxxx' 
    https://api.mailgun.net/v3/xxxxxxx/messages 
    -F from='Support <support@xxx.com>' 
    -F to='xxx <xxx@xxx.com>' 
    -F subject="$mail_subject" 
    -F text="$mail_text"

这里的发送邮件用的是mailgun的服务,可以自行替换成其它邮件提供商。

然后创建一个检查docker状态的脚本 - check_docker_status.sh:

!/bin/bash

export mail_subject="docker运行状态异常!!"
now=`date +%Y-%m-%d#%H:%M:%S`
export mail_text="docker被发现于$now停止运行"

docker ps -a | grep 你的docker container id | awk '{ if (!(/Up/)) { system("/home/xxx/send_mail.sh") }}'

然后记得将send_mail.sh和check_docker_status.sh的脚本添加可执行属性。

最后添加到crontab中:

crontab -e

00 * * * * /home/xxx/check_docker_status.sh

这样每个小时0分的时候系统都会检查docker状态,一旦不处于Up的状态,就会发送一份邮件到指定邮箱。

Done

原文地址:https://www.cnblogs.com/ilovewindy/p/5192858.html