对docker容器的增加或减少进行报警
需求:
当启动一个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容器的增加或减少进行报警相关推荐
- iso镜像添加软件包_超薄Docker容器-减少Docker镜像大小的指南
Photo by William Warby on Unsplash 您是否曾经想过为什么您的单应用程序Docker容器会增长到400 MB? 或者,也许为什么一个只有几十MB的应用程序二进制文件会生 ...
- docker容器增加端口映射最佳实践(修改配置文件方式)
前言: 在日常的docker运维中,经常遇到这样一个问题:已经配置好且运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤. 一 ...
- 技术选型之Docker容器引擎
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | huashiou 来源 | https://s ...
- 《Docker——容器与容器云》:第五章 构建自己的容器云
我们在第1章介绍了一个云计算平台应有的层次结构,其中平台即服务层(PaaS)是本书重点着墨描述的.尽管在一些经典PaaS平台中,容器技术已经扮演了一个至关重要的角色,但很遗憾,大部分经典PaaS平台中 ...
- 《Docker——容器与容器云》:第一章 从容器到容器云
2013年初,一个名字从云计算领域横空出世,并在整个IT行业激起千层浪.这就是Docker--一个孕育着新思想的"容器".Docker选择容器作为核心和基础,依靠容器技术支撑的Do ...
- docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...
编者按:本文分享自CSDN技术博客,作者为 FlyWine,所有权归原著者.若有不妥,联系本头条号以做必要处理. 目录 Microservice 和 Docker 服务发现模式 客户端发现模式 Net ...
- 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)
上一节讨论了 Health Check 在 Scale Up 中的应用,Health Check 另一个重要的应用场景是 Rolling Update.试想一下下面的情况: 现有一个正常运行的多副本应 ...
- Rolling Update - 每天5分钟玩转 Docker 容器技术(140)
滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜 ...
- docker和java容器_使用Docker容器和Java EE进行持续交付
docker和java容器 组织需要一种使应用程序交付快速,可预测和安全的方法,而诸如docker之类的容器所提供的敏捷性则可以帮助开发人员实现这一目标. 对于Java EE应用程序,这可以在容器中打 ...
最新文章
- latex 公式不居中_LaTex小技巧,祝你论文一臂之力!
- 高通首次推出AI引擎 打包所有软硬件算力
- Linux2.6内核PCI驱动程序开发
- matlab reshape函数_numpy中的np.ascontiguousarray()函数
- Underscore.js 入门
- 阡陌路-车行天下之新手必备手册
- 嵌入式开发基础环境搭建
- mac 下配置连接Linux服务器方法,上传下载文件操作
- 关于deepin系统安装design compiler的问题解答
- MySQL 驱动的下载方法
- 音乐API(仅测试使用)
- mysql实现拼音首字母查询
- 【C语言】1-100求和;1-N求和
- JS:Falsy Bouncer(过滤数组假值)
- CSDN博客运营团队2022年H1总结
- 与现代教育技术有关的计算机知识,基于计算机的现代教育技术手段的利用与开发...
- 关于软件工程中的银弹
- 在win10基础上安装Ubuntu16.04双系统(双硬盘)
- JavaFX之Scene Builder的使用(开发一款GUI小工具原来这么简单)
- Bottle的插件与view装饰器冲突问题
热门文章
- Spark源码阅读02-Spark核心原理之容错及HA(高可用)
- RGB格式等比例缩放
- 为什么用IP无法访问网站,域名可以访问?
- 1036: [ZJOI2008]树的统计Count
- C++11中的Lambda表达式
- Windows Live Writer推荐SyntaxHighlighter代码着色插件
- ASP.NET 2.0 正式版中无刷新页面的开发
- 和朋友聊天时好玩的加密小程序(第一版)
- javacore分析工具_「赵强老师」如何分析Java的内存溢出问题
- mysql 存储过程 异常 回滚吗_MySQL 5.7 存储过程报错不回滚