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 <[email protected]>‘     -F to=‘xxx <[email protected]>‘     -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 | 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

时间: 2024-09-29 21:45:54

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

shell脚本监控分区使用率,并发邮件报警

最近线上一个分区使用过快,nagios并没有开启对分区使用率的监控,抽了几分钟临时写了个脚本先用着.用法比较简单,直接上代码: 注:代码中用到的sendEmail脚本是perl开发的一个发邮件程序,可以网上找到该脚本或者使用其他发邮件脚本 #!/bin/bash #--dir:Monitoring of the mount point #--critical:critical value #--warning:warning value  #--ip [ $# -eq 0 ] && {  

Ubuntu-Docker[1]安装Docker,通过Docker部署net core代码,需要结合[.NET Core 18]发布、ASP.NET Core Docker部署

1)通过系统自带包安装 通过自带包安装,可能Docker版本较旧 $ sudo apt-get update Reading package lists... Done $ sudo apt-get install -y docker.io {{{-y表示同意.没有-y也可执行,系统会问是否安装,输入y回车即可 apt-get -y install这个指令则是跳过系统提示,直接安装.}}} Adding group `docker' (GID 121) ... Done. docker star

Docker镜像下载&amp;Docker镜像操作常用命令

Docker系统简介 Docker系统有两个程序:docker服务端和docker客户端.其中docker服务端是一个服务进程,管理着所有的容器.docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程.大部分情况下,docker服务端和客户端运行在一台机器上. 检查docker版本 检查docker的版本,这样可以用来确认docker服务在运行并可通过客户端链接. 命令如下: [[email protected] ~]# docker version Cl

Docker - Linux 安装 Docker 和 Docker-Conpose

目录 说明 Docker Docker-Conpose 安装 Docker CE 系统要求 使用 YUM 安装 配置加速器 安装 Docker-Compose 说明 Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. Docker-Conpose Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 Com

说一说windows原生docker及windows Server Container , Hyper Container 之间的关系(学习总结)

前一段时间学习netcore的时候解除到了docker,感觉真是不错的技术.百度了不少教程.因为我用windows就下载安装了一下试试.但是没有安装成功,才发现 需要安装virtualbox虚拟机,与我的hyper-v冲突.后来看新闻出了windows版的docker,把virtualbox换成了hyper-v.也算小惊喜吧,心想如果能出原生的windows 版docker就好了.试着 注册了个docker账号 ,并申请内测(打肿脸充胖子),一个月过去了,也没见给发邮件. 于是又百度了些资料,发

docker进程检查疑问

#!/bin/bash ###检查docker启动启动 c=`date +%F' '%T` a=`netstat -a |grep docker| awk '{print $7}'` while :; do if [ "$a" == "LISTENING" ] then echo "$c the docker  is startup" >> /tmp/dockerstatus.log else echo "$c the do

centos6.9 上docker 的安装 及启动 和运行状态查看

安装dockeryum install docker-io yum install device-mapper-event-libsyum upgrade device-mapper-libs 启动docker/etc/init.d/docker restart 查看docker的运行状态/etc/init.d/docker status 原文地址:http://blog.51cto.com/quietnight/2107901

定时清理docker私服镜像

定时清理docker私服镜像 使用CI构建docker镜像进行发布极大促进了大家的版本发布效率,于是镜像仓库也就急速膨胀.为了缓解磁盘压力,我们需要设置一些清理策略. 对于不同docker镜像的清理策略应该是不同的.比如,默认保留最近5个版本的镜像,对于工具类的image保留全部,对于业务类的image保留一个月之类的. 简单保留5个image的方式如下: 下载https://github.com/mlabouardy/nexus-cli, 使用cli来执行删除. 下载 wget https:/

Docker宿主机登陆Container方法

一.登陆方法 1.使用ssh登陆进容器 2.使用nsenter.nsinit等第三方工具 3.使用docker本身提供的工具 方法1 需要在容器中启动sshd,存在开销和攻击面增大的问题.同时也违反了Docker所倡导的一个容器一个进程的原则 方法2 需要额外学习使用第三方工具 方法3 Docker目前主要提供了Docker exec和Docker attach两个命令