IDC两台机器上部署了Nginx+Keepalived主从模式的LB代理负载层,现在需要对LB进行每日巡检和服务监控,利用SendEmail邮件监控。

0)SendEmail部署

参考:http://www.cnblogs.com/kevingrace/p/5961861.html

1)SendEmail脚本配置

[root@NG-LB01 ~]# vim /opt/sendemail.sh
#!/bin/bash
# Filename: SendEmail.sh
# Notes: 使用sendEmail
#
# 脚本的日志文件
LOGFILE="/tmp/Email.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1
SMTP_server='smtp.test.com'
username='monit@test.com'
password='monit@123'
from_email_address='monit@test.com'
to_email_address="$1"
message_subject_utf8="$2"
message_body_utf8="$3"
# 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
# 转换邮件内容为GB2312,解决收到邮件内容乱码
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
# 发送邮件
sendEmail='/usr/local/bin/sendEmail'
set -x
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312 发送邮件测试(发送邮件到kevin@test.com邮箱里):
[root@NG-LB01 ~]# chmod 755 /opt/sendemail.sh
[root@NG-LB01 ~]# /opt/sendemail.sh kevin@test.con "邮件测试" "sendemail发送邮件啦!"

2)LB每日巡检脚本(VIP资源为10.0.11.26)

[root@NG-LB01 ~]# cat /opt/LB_CHECK.sh
#!/bin/bash
HOSTNAME=$(hostname)
IP=$(ifconfig|grep 10.0.11|awk '{print $2}'|cut -d":" -f2)
DATE=$(date +%Y.%m.%d-%H.%M.%S) NUM1=$(ps -ef|grep nginx|grep -v grep|wc -l)
NUM2=$(ps -ef|grep keepalived|grep -v grep|wc -l)
NUM3=$(ip addr|grep 10.0.11.26|grep -v grep|wc -l) if [ $NUM1 -ne 0 -a $NUM2 -ne 0 -a $NUM3 -ne 0 ];then
/bin/bash /opt/sendemail.sh kevin@test.com "IDC外网LB每日巡检" "各位兄弟,注意啦! \nIDC外网LB目前健康快乐地跑在$HOSTNAME-$IP服务器上呢,一切正常! \n大伙儿可以放心地去钓鱼吧"
fi 每天早上8:30进行巡检
[root@NG-LB01 ~]# chmod 755 /opt/LB_CHECK.sh
[root@NG-LB01 ~]# crontab -l
30 8 * * * source /etc/profile;/bin/bash -x /opt/LB_CHECK.sh > /dev/null 2>&1 由于手动执行脚本没问题,而在crontab里定时自动执行可能会出现问题,故加上source /etc/profile

3)LB监控脚本

[root@NG-LB01 ~]# cat /opt/LB_MONIT.sh
#!/bin/bash
HOSTNAME=$(hostname)
IP=$(ifconfig|grep 10.0.11|awk '{print $2}'|cut -d":" -f2)
DATE=$(date +%Y.%m.%d-%H.%M.%S) NUM1=$(ps -ef|grep nginx|grep -v grep|wc -l)
NUM2=$(ps -ef|grep keepalived|grep -v grep|wc -l)
NUM3=$(ip addr|grep 10.0.11.26|grep -v grep|wc -l) if [ $NUM1 -eq 0 -o $NUM2 -eq 0 -o $NUM3 -eq 0 ];then
/bin/bash /opt/sendemail.sh kevin@test.com "IDC外网LB运行情况监控" "告警主机:$HOSTNAME \n主机IP: $IP \n告警时间:$DATE \n告警等级:十分严重啊 \n告警信息:外网LB目前已不在$HOSTNAME服务器上正常运行,快点查看VIP是否转移到另一个LB节点,并确认LB服务是否正常提供! \n问题详情:LB failed on $HOSTNAME \n当前状态: PROBLEM"
else
echo "IDC外网LB目前运行良好"
fi 每1分钟监控一次
[root@NG-LB01 ~]# chmod 755 /opt/LB_MONIT.sh
[root@NG-LB01 ~]# crontab -l
* * * * * source /etc/profile;/bin/bash -x /opt/LB_MONIT.sh > /dev/null 2>&1

温馨提示

if [ $NUM1 -ne 0 -a $NUM2 -ne 0 -a $NUM3 -ne 0 ]  等同于  if [ $NUM1 -ne 0 ] && [ $NUM2 -ne 0 ] && [$NUM3 -ne 0 ]
if [ $NUM1 -eq 0 -o $NUM2 -eq 0 -o $NUM3 -eq 0 ] 等同于 if [ $NUM1 -eq 0 ] || [ $NUM2 -eq 0 ] || [$NUM3 -eq 0 ]

邮件报警效果如下:

基于Nginx+Keepalived的LB服务监控(邮件报警)的更多相关文章

  1. zabbix的nginx监控+邮件报警

    nginx监控    下载nginx的监控模板

  2. Centos7.2下基于Nginx+Keepalived搭建高可用负载均衡(一.基于Keepalived搭建HA体系)

    说明 本文只为方便日后查阅,不对一些概念再做赘述,网上都有很多明确的解释,也请大家先了解相关概念. 两台搭建HA的服务器是华为云上的ECS(不要忘记开通VPC,保证我们的服务器都处在一个内网环境),由 ...

  3. .net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡

    1.概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...

  4. Docker+Nginx+Keepalived实现架构高可用

    一.背景 通过keepalived实现nginx高可用,由于在家不想弄多台主机来搞,所以将运行环境用docker封装来模拟跨主机 docker基础镜像:centos 说之前,简单介绍一下: Keepa ...

  5. zabbix实现邮件报警

    说明: Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常. 实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报 ...

  6. centos7安装ZABBIX 3.0+ 邮件报警【OK】

    设置主机名: vi /etc/hosts 10.0.0.252 zabbix-server hostnamectl set-hostname   关闭防火墙: systemctl stop firew ...

  7. Zabbix邮件报警设置方法

    实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 具体操作: 以下操作在Zabbix监控服务端进行 备注:Zabbix监控服务端 操 ...

  8. linux中Zabbix邮件报警设置配置步骤

    使用外部邮箱账号发送报警邮件设置 配置Zabbix服务端外部邮箱 vi /etc/mail.rc #编辑,添加以下信息 set from=xxx@163.com smtp=smtp.163.com s ...

  9. Zabbix邮件报警配置

    一.安装sendmail或者postfix yum install sendmail #安装 service sendmail start #启动 chkconfig sendmail on #设置开 ...

随机推荐

  1. Excel函数进阶

    #笔记:为了方便自己以后查找,以便随时随地能查看.形成系统化学习! 查找引用函数 ------------------包含----------Vlookup函数(if数组).Hlookup函数.loo ...

  2. Unity Chan 2D Asset

    Unity Chan 2D Asset 4月份時,UNITY CHAN 官方網站推出了3D大島こはく,之後也有更新1.11版,而在六月12日時,則釋出了2D版本素材,一樣可以在UNITY CHAN 官 ...

  3. Stanford机器学习---第十一讲.异常检测

    之前一直在看Standford公开课machine learning中Andrew老师的视频讲解https://class.coursera.org/ml/class/index 同时配合csdn知名 ...

  4. ccf--20151203--画图

    本题思路如下: 题目和代码如下: 问题描述 试题编号: 201512-3 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 用 ASCII 字符来画图是一件有趣 ...

  5. [SDOI2010]捉迷藏

    嘟嘟嘟 k-d tree板儿题. 建完树后对每一个点求一遍最小和最大曼哈顿距离,是曼哈顿,不是欧几里得. #include<cstdio> #include<iostream> ...

  6. Linux操作系统中打开文件数量的查看方法

    Linux操作系统中打开文件数量的查看方法ulimit -n 4096也就是限制用户的最大文件打开数为4096个 在网上查了关于怎么查看文件打开数的文章大致有两种说法/proc/sys/fs/file ...

  7. 安装LIBXML2

    具体安装步骤: 1.解压:$tar zxvf libxml2-2.6.20.tar.gz 2.进入解压后的安装目录:$cd libxml2-2.6.20 3.安装三部曲:1)$./configure ...

  8. (四) 天猫精灵接入Home Assistant-ESP-WIFI模块通过mqtt协议接入HASS

    总过程 1 ESP8266上电后,初始化 连接MQTT服务器 发布自身配置信息----hass自动发现该设备 订阅hass的命令话题---接收命令 发布hass的状态话题---返回自身状态 2 ESP ...

  9. 第一行代码 -3-2 软件也要拼脸蛋-UI界面-更强大的滚动条-RecyclerView

    简述教程:https://www.jianshu.com/p/4fc6164e4709 一 基础准备 1 添加RecyclerView控件引用库文件 2 总布局添加RecyclerView控件 3 R ...

  10. 在 Server 2008 企业版下, 安装 IIS 7 后,勾选好 请求筛选模块了。安装完毕后,"请求筛选"却不显示!

    下载并安装 Administration Pack 到你的Windows Server 2008 上.可以通过下面的链接来下载Administration Pack. https://www.iis. ...