note:本人周五开始接触promethuse,周一上班就开始搭环境和配置监控,其实本人对这三个东西根本就是略知一二,但是,我预测感觉过程还是简单的,结果。。。
首先把过程和遇到的问题一一说明。
1.安装promethuse
2.安装go环境
3.安装grafana
前三步直接去官网看如何安装,过程也都很简单,特别低,对于go语言,需要翻墙哦。
4.安装promethuse 采集信息插件 mongodb_exporter
到了这里可以说就是遇到各种坑了。
首先有两个源:
1. https://github.com/dcu/mongodb_exporter
2. https://github.com/percona/mongodb_exporter
接下来就是这两个源的问题了
对于1
,直接下载mongodb_exporter-linux-amd64这个可执行文件,-h可查看帮助
执行 ./mongodb_exporter-linux-amd64 -mongodb.uri "mongodb://xxxx:27017" 后,promethuse里的target state是up,但是某些地方出错,应该是作者有什么地方没写
然后到github issues里一看,大家都是这个问题,于是果断换个源试试
对于2 ,一开始由于对go的代码结构不熟悉,我用git clone把代码下载到本地,安装说明执行make进行编译时,报了个大概是代码包不在$GOPATH/github.com/percona/mongodb_exporter的错,没有留截图,因为这个插件是go写的,所以目录结构稍微有些多级,一开始我是手动创建再mv进去。贼蠢
了解了go install,go get,go build命令及GOPATH以及下面的三个目录bin,pkg,src后发现该用go get方法来获取并编译mongodb_exporter
src
存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。pkg
编译时生成的中间文件(比如:.a) golang编译包时bin
编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin
添加所有的bin目录)
对于2完整详述:
1. go get https://github.com/percona/mongodb_exporter(go get命令默认不显示过程)
2. 如果碰到连接go.google.xxx连接失败等问题,说明你没翻墙,需要翻墙
3.最后如果遇到下面的问题,不用担心,这个gocoverutil已经在GOPATH/bin里面了,只是你还没添加到环境变量中,而且这个测试不运行也罢。
4.执行-h查看帮助,然后执行本文开头的命令,把这个exporter启起来。
5.在promethuse要执行的yml文件中添加
6.执行grafana,在localhost:3000里打开页面,登陆后添加promethuse数据源,在import dashborad,搜索2583,添加。
5.在grafana里导入Mongodb Dashbord,工作结束。
6.问题
1.exporter和mongodb是一对一还是可以一对多呢,这是个问题。