对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="[email protected]"
#判断文件是否存在
if [ ! -f "/tmp/new.txt" ];then
   touch /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,百度能搜到很多脚本及使用方法,在此不进行赘述

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

时间: 2024-08-07 08:59:26

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

Docker Security docker 容器安全

Docker Security Adapted from Containers & Docker: How Secure are They? There are three major areas to consider when reviewing Docker security: 评估docker的安全性时,主要考虑3个方面 the intrinsic security of containers, as implemented by kernel namespaces and cgroup

如何 Scale Up/Down 应用?- 每天5分钟玩转 Docker 容器技术(126)

伸缩(Scale Up/Down)是指在线增加或减少 Pod 的副本数.Deployment nginx-deployment 初始是两个副本. k8s-node1 和 k8s-node2 上各跑了一个副本.现在修改 nginx.yml,将副本改成 5 个. 再次执行 kubectl apply: 三个新副本被创建并调度到 k8s-node1 和 k8s-node2 上. 出于安全考虑,默认配置下 Kubernetes 不会将 Pod 调度到 Master 节点.如果希望将 k8s-master

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

滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜像为 httpd:2.2.31,然后将其更新到 httpd:2.2.32. httpd:2.2.31 的配置文件如下: 通过 kubectl apply 部署. 部署过程如下: 创建 Deployment httpd 创建 ReplicaSet httpd-551879778 创建三个 Pod 当前

HyperLedger/Fabric SDK使用Docker容器镜像快速部署上线

HyperLedger/Fabric SDK Docker Image 该项目在github上的地址是:https://github.com/aberic/fabric-sdk-container (感谢Star). 这是一个基于fabric-sdk-java的项目,该项目的主要目的是简化HyperLedger/Fabric开发人员在SDK应用层上的工作流程,使得开发和部署更加简单. 该项目使用方便,只需要你的服务器上部署有Docker及docker compose环境即可,通过docker-c

docker容器网络通信原理分析

概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求.而容器的网络通信又可以分为两大方面:单主机容器上的相互通信和跨主机的容器相互通信.而本文将分别针对这两方面,对容器的通信原理进行简单的分析,帮助大家更好地使用docker. docker单主机容器通信 基于对net namespace的控制,docker可以为在容器创建隔离的网络环境,在隔离的网络环境下,容器具有完全独立的网络栈,与宿主机隔离,也可以使容器共享主机或者其他容器的网络命名空间,基本可以

【原创】Docker容器及Spring Boot微服务应用

Docker容器及Spring Boot微服务应用 1 什么是Docker 1.1 Docker的出现 问题一:项目实施环境复杂问题 传统项目实施过程中经常会出现“程序在我这跑得好好的,在你那怎么就不行呢?! ” 这是一个典型的应用场景,Docker image中包含了程序需要的所有的运行时依赖,比如java的程序,肯定要在image中包含jdk:比如Python的程序,肯定要在image中包含对应版本的Python解释器.Docker把整个运行时环境打包放到image中,所以搞定了环境依赖问题

Docker容器学习梳理--小知识点补充

之前已经梳理了Docker的相关使用事项,这里再补充一些,以便加深掌握程度.1)docker run指令 [[email protected] ~]# docker run --help : docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container -a, --attach=[] Attach to STDIN, STDOUT or STDERR --add-host=[] Add a custo

Docker容器跑OpenVPN

为节约服务器资源方便服务器迁移,可以将OpenVPN跑在Docker容器中,OpenVPN在容器中有相比其他有些特殊,主要有以下几点: 1.ip包转发问题 2.iptables在容器中的权限问题 3.容器对网卡设备的权限问题 环境: CentOS 7.2 x86_64 Docker-1.13.1 selinux已关闭 1.ip包转发 修改/usr/lib/systemd/system/docker.service文件 ExecStart=/usr/bin/dockerd --ip-forward

nagios——docker容器监控

1. 环境: # cat /etc/redhat-release CentOS release 6.8 (Final) # uname -r 3.10.5-3.el6.x86_64 Nagios服务端主机:192.168.70.67        密码:[email protected]! Nagios客户端主机:192.168.70.52        密码:[email protected]! 2. 版本 Nagios版本:     nagios-3.5.1 Plugin插件版本: nagi