Centos6.10下Open-falcon学习记录(二)——Mysql监控

记录了学习过程,官方文档地址http://book.open-falcon.org/zh_0_2/usage/getting-started.html

另外还看了Open-falcon作者的写的设计理念的文,见open-falcon编写的整个脑洞历程

1 Mysql监控

通过mymon(MySQL-Monitor)监控Mysql,mymon是一个cron,cron呢,根据百度百科的解释是“任务在约定的时间执行已经计划好的工作”,差不多就是定时任务,还记得Linux中的命令crontab嘛

1.1 mymon安装

这里需要使用go get,所以要设置好$GOPATH和$GOROOT两个环境变量,代码有一个地方会导致“NewMySQLConnection Error: Building mysql connection failed!: unexpected EOF”的错误,所以我注释掉了,详见我这篇博文Mysql监控组件mymon报错“NewMySQLConnection Error: Building mysql connection failed!: unexpected EOF”问题

export GOPATH=~/mygo  #设置GOPATH,这里就是mymon代码存放的位置
export GOROOT=/usr/local/go  #设置GOROOT,是go的安装路径

#安装mymon
go get github.com/open-falcon/mymon  #成功后目录应为$GOPATH/src/github.com/open-falcon/mymon
cd $GOPATH/src/github.com/open-falcon/mymon

执行go get会有警告,什么undefined: Version之类的,不用管

修改配置文件etc/myMon.cfg,把数据库配好,如果喜欢的话可以一并配好endpoint那一项,然后make并运行

make 
./mymon etc/Mymon.cfg

如果你成功运行了,恭喜你,可以跳过下面的修改,如果你和我一样碰到了这种错误“NewMySQLConnection Error: Building mysql connection failed!: unexpected EOF”

这个错误我将近研究了一周的时间,终于摸索出了一些,主要是mymon这个版本使用的Mysql驱动和我的Mysql不匹配,摸索过程见我另一篇博文Mysql监控组件mymon报错“NewMySQLConnection Error: Building mysql connection failed!: unexpected EOF”问题

1.2 代码修改

如果你运行了没问题,跳过这一部分

首先把vendor目录下那个mymysql替换为最新的版本

cd ~
sudo rm -r $GOPATH/src/github.com/open-falcon/mymon/vendor/github.com/ziutek/mymysql/native $GOPATH/src/github.com/open-falcon/mymon/vendor/github.com/ziutek/mymysql/mysql
git clone git clone https://github.com/ziutek/mymysql.git
cp -r mymysql/native $GOPATH/src/github.com/open-falcon/mymon/vendor/github.com/ziutek/mymysql/native
cp -r mymysql/mysql $GOPATH/src/github.com/open-falcon/mymon/vendor/github.com/ziutek/mymysql/mysqlcd $GOPATH/src/github.com/open-falcon/mymon

然后把show.go的181行修改一下

#修改前
row, _, err = db.QueryFirst("SELECT /*!50504 @@GLOBAL.innodb_stats_on_metadata */;")
#修改后
row, _, err = db.QueryFirst("SELECT /*!50504 */ @@GLOBAL.innodb_stats_on_metadata;")

编译运行

make && ./mymon etc/myMon.cfg  #编译运行

看一眼myMon.log,如果出现“You are not using binary logging”,说明你的Mysql没有开binlog

 修改一下show.go的82-84行

#修改前
if err != nil {
    return []*MetaData{binlogFileCounts, binlogFileSize}, err
}
#修改后
if err != nil {
    Log.Warning("Binary Log is not used")
} else {
    data = append(data, binaryLogStatus...)
}

再次编译运行

make && ./mymon etc/myMon.cfg  #编译运行

去dashboard看一眼,如果etc/myMon.cfg配置了endpoint就会出现一个新主机,没有的话可能是一个以系统hostname命名的endpoint,Counter里面找一个mysql_alive_local的

拉出数据看看,有一个值为1的小点点

现在把mymon加入到crontab里,目录最好写绝对路径不要带$GOPATH

crontab -e
#写入* * * * * cd /home/tuan/mygo/src/github.com/open-falcon/mymon && ./mymon -c etc/myMon.cfg

等一会,喝喝茶聊聊天,这个数据就出来了

随便再看一个

凑合吧,研究了一周,实在不想继续看这个组件了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值