heartbeat+drbd监控脚本(自动发现问题,并邮件通知)
生产环境有一些服务器是heartbeat+drbd做的高可用(参考:http://blog.运维网.com/net881004/2117869),但是有时候由于各种原因会产生问题(比如脑裂),而且没有及时发现。所以做了脚本是对heartbeat、drbd服务状态进行监控、对drbd分区挂载目录进行监控,现分享如下。脚本的执行原理可能并不好(先判断当前服务器是哪个主机名,然后将另外一台的IP、端口、密码赋值给变量,然后将本机和远程的heartbeat、drbd和挂载目录状态输出到不同的文件,最后进行相应的逻辑与或或运算,如果有问题邮件通知),希望高人指点:
#!/bin/bash
#author:gxm
#date:2018-05-15
#version:1.1
#运行脚本前请先修改相关参数,比如7-13、220-224、227-231、252行信息
HOSTNAME1="drbd1.db.com"
HOSTNAME2="drbd2.db.com"
MOUNTDIR="/store"
MAILFROM="test@163.com"
SMTPSERVER="smtp.163.com"
SMTPUSER="test@163.com"
SMTPPASSWD="123456"
CURRDATE=$(date "+%Y-%m-%d %H:%M:%S")
DRBD_HALOG=/var/log/drbd_ha.log
CURRENTHOST_HEARTBEAT_STATUS=/tmp/currenthost_heartbeat_status.txt
OTHERHOST_HEARTBEAT_STATUS=/tmp/otherhost_heartbeat_status.txt
CURRENTHOST_DRBD_DETAILED=/tmp/currenthost_drbd_detailed.txt
OTHERHOST_DRBD_DETAILED=/tmp/otherhost_drbd_detailed.txt
CURRENTHOST_DISK=/tmp/currenthost_disk.txt
OTHERHOST_DISK=/tmp/otherhost_disk.txt
#退出脚本
function force_exit()
{
echo "$CURRDATE: 脚本意外退出!" | tee -a $DRBD_HALOG
echo
exit 1;
}
# 输出日志提示
function output_notify()
{
echo $CURRDATE:$1 | tee -a $DRBD_HALOG
}
# 输出错误提示
function output_error()
{
echo "$CURRDATE: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" | tee -a $DRBD_HALOG
echo "$CURRDATE: "$1 | tee -a $DRBD_HALOG
echo "$CURRDATE:
页:
[1]