需求:

当启动一个docker容器时立即发送报警,当停止一个docker容器时立即发送报警,

说明:

脚本只能检测UP状态,对restarting状态不进行处理,加入定时任务每分钟执行一次(执行频率自定义),该脚本的目的只是为防止异常容器启动,在我们规定名称外的定义为异常容器,在匹配容器名称的时候可以通过"grep -v lyj_ " 来对统一前缀的容器进行过滤

脚本内容:

#!/bin/bash
# */1 * * * * bash /opt/docker_process_monitor/docker_monitor.sh &>/dev/null
#运行脚本之前可以先执行下面的这一行语句
#sudo docker ps|grep -v NAMES |awk '{print $NF}' > /tmp/new.txt
#sudo docker run -it --rm liyongjian5179/centos:7 bash 可通过该命令进行测试是否监控是否成功
#配置接收报警的邮箱
EMAIL="liyongjian5179@163.com"
#判断文件是否存在
if [ ! -f "/tmp/new.txt" ];thentouch /tmp/new.txt
fi
mv   /tmp/new.txt /tmp/old.txt
#取容器列表
sudo docker ps|grep -v NAMES |awk '{print $NF}' > /tmp/new.txt
NEW=`diff /tmp/new.txt /tmp/old.txt |grep '<' |awk '{print $2}' `
OLD=`diff /tmp/new.txt /tmp/old.txt |grep '>' |awk '{print $2}' `
#取机器IP地址
#IP=`/usr/sbin/ip addr | grep eno1 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'`
#取机器主机名
NAME=`/usr/bin/hostname`
#时间
TIME=`/usr/bin/date "+%T_%Y-%m-%d"`
#新增容器发送报警
for i in $NEW ;do
#    I="机器:$IP\n容器:$i\n状态:start"I="机器:$NAME\n容器:$i\n状态:start\n时间:$TIME"
######微信报警#######bash $PWD/docker_process_monitor/weechat.sh "$I"
######邮件报警#######
#    bash $PWD/docker_process_monitor/sendEmail.sh $EMAIL "$i:start" $I
done
#容器宕机发送报警
for j in $OLD ;do
#    J="机器:$IP\n容器:$j\n状态:stop"J="机器:$NAME\n容器:$j\n状态:stop\n时间:$TIME"
######微信报警#######bash $PWD/docker_process_monitor/weechat.sh "$J"
######邮件报警#######
#    bash $PWD/docker_process_monitor/sendEmail.sh $EMAIL "$j:stop" $J
done

邮件报警是使用的sendEmail,百度能搜到很多脚本及使用方法,在此不进行赘述

微信报警需要提前注册好企业号,并进行对应的设置,对应脚本,网上也能搜到很多。

转载于:https://blog.51cto.com/liyongjian5179/1903665

对docker容器的增加或减少进行报警相关推荐

  1. iso镜像添加软件包_超薄Docker容器-减少Docker镜像大小的指南

    Photo by William Warby on Unsplash 您是否曾经想过为什么您的单应用程序Docker容器会增长到400 MB? 或者,也许为什么一个只有几十MB的应用程序二进制文件会生 ...

  2. docker容器增加端口映射最佳实践(修改配置文件方式)

    前言: 在日常的docker运维中,经常遇到这样一个问题:已经配置好且运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤. 一 ...

  3. 技术选型之Docker容器引擎

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | huashiou 来源 | https://s ...

  4. 《Docker——容器与容器云》:第五章 构建自己的容器云

    我们在第1章介绍了一个云计算平台应有的层次结构,其中平台即服务层(PaaS)是本书重点着墨描述的.尽管在一些经典PaaS平台中,容器技术已经扮演了一个至关重要的角色,但很遗憾,大部分经典PaaS平台中 ...

  5. 《Docker——容器与容器云》:第一章 从容器到容器云

    2013年初,一个名字从云计算领域横空出世,并在整个IT行业激起千层浪.这就是Docker--一个孕育着新思想的"容器".Docker选择容器作为核心和基础,依靠容器技术支撑的Do ...

  6. docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...

    编者按:本文分享自CSDN技术博客,作者为 FlyWine,所有权归原著者.若有不妥,联系本头条号以做必要处理. 目录 Microservice 和 Docker 服务发现模式 客户端发现模式 Net ...

  7. 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)

    上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...

  8. Rolling Update - 每天5分钟玩转 Docker 容器技术(140)

    滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜 ...

  9. docker和java容器_使用Docker容器和Java EE进行持续交付

    docker和java容器 组织需要一种使应用程序交付快速,可预测和安全的方法,而诸如docker之类的容器所提供的敏捷性则可以帮助开发人员实现这一目标. 对于Java EE应用程序,这可以在容器中打 ...

最新文章

  1. latex 公式不居中_LaTex小技巧,祝你论文一臂之力!
  2. 高通首次推出AI引擎 打包所有软硬件算力
  3. Linux2.6内核PCI驱动程序开发
  4. matlab reshape函数_numpy中的np.ascontiguousarray()函数
  5. Underscore.js 入门
  6. 阡陌路-车行天下之新手必备手册
  7. 嵌入式开发基础环境搭建
  8. mac 下配置连接Linux服务器方法,上传下载文件操作
  9. 关于deepin系统安装design compiler的问题解答
  10. MySQL 驱动的下载方法
  11. 音乐API(仅测试使用)
  12. mysql实现拼音首字母查询
  13. 【C语言】1-100求和;1-N求和
  14. JS:Falsy Bouncer(过滤数组假值)
  15. CSDN博客运营团队2022年H1总结
  16. 与现代教育技术有关的计算机知识,基于计算机的现代教育技术手段的利用与开发...
  17. 关于软件工程中的银弹
  18. 在win10基础上安装Ubuntu16.04双系统(双硬盘)
  19. JavaFX之Scene Builder的使用(开发一款GUI小工具原来这么简单)
  20. Bottle的插件与view装饰器冲突问题

热门文章

  1. Spark源码阅读02-Spark核心原理之容错及HA(高可用)
  2. RGB格式等比例缩放
  3. 为什么用IP无法访问网站,域名可以访问?
  4. 1036: [ZJOI2008]树的统计Count
  5. C++11中的Lambda表达式
  6. Windows Live Writer推荐SyntaxHighlighter代码着色插件
  7. ASP.NET 2.0 正式版中无刷新页面的开发
  8. 和朋友聊天时好玩的加密小程序(第一版)
  9. javacore分析工具_「赵强老师」如何分析Java的内存溢出问题
  10. mysql 存储过程 异常 回滚吗_MySQL 5.7 存储过程报错不回滚