open-falcon下mongodb redis mysql lvs自动化部署脚本

11 篇文章 1 订阅
#!/bin/bash
function huanjing () {
Epel=(epel-release golang)
echo -e "请问是否已经安装go语言环境\n1.是\n2.否"
read Go
if [ $Go -eq 1 ]
  then
    echo "那,我们安装防错"
    export GOPATH=/home
    export GOROOT=/usr/lib/golang
    break
  else
    for ((i=0;i<2;i++))
      do
      yum install -y ${Epel[$i]}
        if [ $? -eq 0 ]
        then
      echo "${Epel[$i]}下载成功"
  else
    echo "${Epel[$i]}下载失败"
        fi
       done
fi


cd $GOPATH/src
git clone https://github.com/MXi4oyu/golang.org.git
if [ $? -eq 0 ]
  then
    echo "防错打包成功,进行下一步"
  else
    echo "抱歉防错打包失败,请检查"
    exit
fi
}


function mysql_mon () {
point=(请输入endpoint名字 请输入mysql用户 请输入mysql密码 请输入mysql的host 请输入mysql端口)
server=(endpoint user password host port)
symbol=(14 17 18 19 20)


mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/open-falcon/mymon.git
if [ $? -eq 0 ]
  then
    echo "脚本下载成功"
  else
    echo "脚本下载失败"
    exit
fi


cd mymon
go get ./...
if [ $? -eq 0 ]
  then
    echo "打包成功"
  else
    echo "打包失败"
    exit
fi 


go build -o mymon
if [ $? -eq 0 ]
  then
    echo "mymon编译成功"
  else
    echo "mymon编译失败"
    exit
fi
 
for ((i=0;i<5;i++))
  do
    echo -e "${point[$i]}"
    read Name
    displace=`awk  "NR==${symbol[$i]}{print $1}" mon.cfg`
    sed -i "${symbol[$i]}s#$displace#${server[$i]}=$Name#" $GOPATH/src/github.com/open-falcon/mymon/etc/mon.cfg
  if [ $? -eq 0 ]
    then
      echo "${server[$i]}修改成功"
    else
      echo "${server[$i]}修改失败"
      exit
  fi
done


cd $GOPATH/src/github.com/open-falcon/mymon &&  ./mymon -c etc/mon.cfg
if [ $? -eq 0 ]
  then
    echo "安装成功,请添加定时任务"
  else
    echo "安装失败请检查"
    exit
fi
}


function redis_mon () {
mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/ZhuoRoger/redismon.git
if [ $? -eq 0 ]
  then
    echo "源码下载成功"
  else
    echo "源码下载失败"
    exit
fi


cd redismon/conf
A=`awk   'NR==3{print $1}' redismon.conf`
echo "请输入集群名"
read Crowd
sed -i "2#cluster_2#$Crowd#" redismon.conf


echo "请输入密码"
read Word
B=`awk 'NR==2{print $5}' redismon.conf`
sed -i "2s#$B#\'$Word\',#" redismon.conf


echo "请输入端口号"
read Pass
sed -i "2s#6383#$Pass#" redismon.conf
sed -i "3s%$A%\#%" redismon.conf
cd $GOPATH/src/github.com/open-falcon/redismon/bin
sed -i "115s#redis_hostname#redis_clusterName#" redis_monitor.py


python redis_monitor.py
if [ $? -eq 0 ]
  then
    echo "成功"
  else
    echo "失败,请检查"
    exit
fi
}


function mongodb_mon () {
mkdir -p $GOPATH/src/github.com/open-falcon
cd $GOPATH/src/github.com/open-falcon
git clone https://github.com/ZhuoRoger/mongomon.git
if [ $? -eq 0 ]
  then
    echo "下载成功"
  else
    echo "下载失败"
    exit
fi


cd $GOPATH/src/github.com/open-falcon/mongomon/conf
N=`awk 'NR==2{print $3}' mongomon.conf`
echo "请输入端口号"
read Open
sed -i "s#port: $N#port: $Open#g" mongomon.conf


if [ $? -eq 0 ]
  then
    echo "更换端口成功"
  else
    echo "更换端口失败"
    exit
fi


M=`awk  'NR==2{print $5}' mongomon.conf`
echo "请输入用户"
read User
sed -i "s#$M#\"$User\",password:#g" mongomon.conf


if [ $? -eq 0 ]
  then
    echo "用户录入成功"
  else
    echo "用户录入失败"
    exit
fi


O=`awk -F "[} ]" 'NR==2{print $7}' mongomon.conf`
echo "请输入密码"
read Password
sed -i "s#$O#\"$Password\"#g" mongomon.conf


if [ $? -eq 0 ]
 then
   echo "密码录入成功"
 else
   echo "密码录入失败"
   exit
fi


cd $GOPATH/src/github.com/open-falcon/mongomon/bin/  &&  python  mongodb_monitor.py
if [ $? -eq 0 ]
  then
    echo "启动成功,endpoint为hostname,如有需要请更改"
  else
    echo "启动失败,请检查"
    exit
fi
}


function lvs_mon () {
rpm -qa |grep libnl3.x86_64
if [ $? -eq 0 ]
  then
    break
  else 
    yum install -y libnl3.x86_64  #环境需要
    if [ $? -eq 0 ]
      then
        echo "下载成功"
      else
        echo "下载失败"
        exit
    fi
fi


mkdir -p $GOPATH/src/github.com/open-falcon/
cd $GOPATH/src/github.com/open-falcon/
git clone https://github.com/mesos-utility/lvs-metrics.git
if [ $? -eq 0 ]
  then
    echo "下载成功"
  else
    echo "下载失败,请检查"
    exit
fi


cd $GOPATH/src/github.com/open-falcon/lvs-metrics
make bin  
if [ $? -eq 0 ]
  then
    echo "打包成功,正在启动"
  else
    echo "打包失败,请查看配置"
    exit
fi




bash control start
D=`bash control status`
if [ $D = stoped ]
  then
    echo "开启失败,请检查"
    exit
  else
    echo "恭喜,成功开启"
fi
}


echo "1 环境准备"
echo "2 mysql监控"
echo "3 redis监控"
echo "4 mongodb监控"
echo "5 lvs_mon监控"
echo "6 一键安装"
read Num
case $Num in
  1)
  huanjing
  echo "success"
  ;;
  2)
  mysql_mon
  echo "success"
  ;;
  3)
  redis_mon
  echo "success"
  ;;
  4)
  mongodb_mon
  echo "success"
  ;;
  5)
  lvs_mon
  echo "success"
  ;;
  6)
  huanjing
  mongodb_mon
  mysql_mon
  lvs_mon
  redis_mon
  echo "success"
  ;;
esac
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值