#!/bin/bash
function mysql_mon () {
point=(监控发现名称 mysql用户 mysql密码 mysql链接地址 mysql端口)
server=(Endpoint Root Password Host Port)
symbol=(14 17 18 19 20)
displace=(endpoint= user=root password= host=127.0.0.1 port=3306)
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 "成功"
else
echo "失败"
exit
fi
for ((i=0;i<5;i++))
do
echo -e "${point[$i]}"
read ${server[$i]}
sed -i "${symbol[$i]}s#${displace[$i]}#${displace[$i]}=`${point[$i]}`#" $GOPATH/src/github.com/open-falcon/mymon/etc/mon.cfg
if [ $? -eq 0 ]
then
echo "成功"
else
echo "失败"
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 -F "[, ]" 'NR==2{print $8}' mongomon.conf`
echo "请输入用户"
read User
sed -i "s#$M#\"$User\"#g" mongomon.conf
if [ $? -eq 0 ]
then
echo "用户录入成功"
else
echo "用户录入失败"
exit
fi
O=`awk -F "[, } ]" 'NR==2{print $10}' 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
}
echo "1 mysql监控"
echo "2 redis监控"
echo "3 mongodb监控"
echo "4 一键安装"
read Num
case $Num in
1)
mysql_mon
;;
2)
redis_mon
;;
3)
mongodb_mon
;;
4)
mongodb_mon
mysql_mon
redis_mon
echo "success"
;;
esac
function mysql_mon () {
point=(监控发现名称 mysql用户 mysql密码 mysql链接地址 mysql端口)
server=(Endpoint Root Password Host Port)
symbol=(14 17 18 19 20)
displace=(endpoint= user=root password= host=127.0.0.1 port=3306)
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 "成功"
else
echo "失败"
exit
fi
for ((i=0;i<5;i++))
do
echo -e "${point[$i]}"
read ${server[$i]}
sed -i "${symbol[$i]}s#${displace[$i]}#${displace[$i]}=`${point[$i]}`#" $GOPATH/src/github.com/open-falcon/mymon/etc/mon.cfg
if [ $? -eq 0 ]
then
echo "成功"
else
echo "失败"
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 -F "[, ]" 'NR==2{print $8}' mongomon.conf`
echo "请输入用户"
read User
sed -i "s#$M#\"$User\"#g" mongomon.conf
if [ $? -eq 0 ]
then
echo "用户录入成功"
else
echo "用户录入失败"
exit
fi
O=`awk -F "[, } ]" 'NR==2{print $10}' 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
}
echo "1 mysql监控"
echo "2 redis监控"
echo "3 mongodb监控"
echo "4 一键安装"
read Num
case $Num in
1)
mysql_mon
;;
2)
redis_mon
;;
3)
mongodb_mon
;;
4)
mongodb_mon
mysql_mon
redis_mon
echo "success"
;;
esac