open-falcon 监控MySQL及自定义监控指标
2018-06-07 本文已影响0人
偏执的工匠
1. open-falcon安装
参考官方帮助文档,【二进制快速安装】一节,文档讲的很详细,这里不再赘述。
http://book.open-falcon.org/zh/quick_install/prepare.html
注意在CentOS7上可能出现dashboard主页无法出图的情况,可参考如下链接解决:
https://www.jianshu.com/p/facee956085f
2. 监控MySQL
MySQL的监控完全可以自己写程序采集,然后调用open-falcon agent提供的上报接口进行上报。然而网上已经有开源的MySQL监控脚本,直接拿来使用即可。如果想增加一些自定义监控项,可以考虑在开源代码的基础上进行修改,或者干脆自己写个上报程序。
基于open-falcon的开源MySQL监控程序源码地址:
# 安装go语言开发环境,此处略去
git clone https://github.com/open-falcon/mymon.git
cd mymon
go get ./...
go build -o mymon
# 后台运行
./mymon -c ./etc/mon.cfg &
在上面执行 go get ./...时,由于网络问题,部分依赖包无法自动下载,只能手动去github下载到$GOPATH目录:
git clone https://github.com/golang/crypto.git
git clone https://github.com/akrennmair/goconf.git
git clone https://github.com/sirupsen/logrus.git
git clone https://github.com/ziutek/mymysql.git
git clone https://github.com/golang/net.git
git clone https://github.com/golang/sys.git
git clone https://github.com/golang/tools.git
mymon每调用一次就向agent上报一次mysql采集到的数据,可以写个定时任务,每隔30秒运行一次,采集一次数据。效果图如下:
image.png image.png
3. 添加自定义监控指标
编写Python脚本,上报自定义监控指标。以下示例代码每隔60秒,上报一次 my-count 指标数据。
#!/usr/bin/env python
#!-*- coding:utf8 -*-
import requests
import time
import json
import random
import os
while True:
time.sleep(60)
info_list = []
ts = int(time.time())
print ts
endpoint = os.popen('echo $HOSTNAME').read().strip()
value = random.randint(1,100)
dict_info= {
"endpoint": endpoint,
"metric": "my-count",
"timestamp": ts,
"step": 60,
"value":value ,
"counterType": "GAUGE",
"tags": "my-tag",
}
info_list .append(dict_info)
requests.post("http://127.0.0.1:1988/v1/push", data=json.dumps(info_list ))
在dashboard页面上查看自定义监控指标上报成功,如图:
image.png
image.png