#!/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
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