TiKV集群及监控系统搭建

2019-03-19  本文已影响0人  沉思故事

目标:搭建一个3节点的tikv集群,以及监控系统

根据官方推荐的软件和硬件配置要求,我选择了4台相同的物理机作为server node,还有另外几台作为监控和测试用。

ip role hardware
10.16.148.72 pd v3.0.0-beta-18-g9531e19 48core, 200g mem, ssd 900g
10.16.148.73 tikv 3.0.0-beta-5cb9ac9b0fd 同上
10.16.148.74 同上 同上
10.16.148.75 同上 同上
10.110.27.6 pushgateway 4cores
10.15.130.3 prometheus 2.2, grafana 5.3 24cores
10.110.36.144 go-ycsb client 24cores

由于对ansible不熟,又不可在单机上用docker-compose跑一个环境(容器内的profiling貌似有所限制,不过它是未来云数据库的一个重点),所以当前比较方便的方式是下载binary pacakges,命令行启动。但奇怪的是,binary包里只有bin文件夹,却没有conf,然而tikv-server命令行下是可接-C选项指定配置文件的。如果要反复地调一些参数,显然命令行下给选项是不方便的。所以暂从docker-compose repo config/tikv.toml下取一份配置文件过来。

注意事项

[2019/03/13 10:59:52.985 +08:00] [INFO] [unknown:300] ["Connecting to server 127.0.0.1:2379 via HTTP proxy ipv4:10.10.15.2:3128"]

最后,为了方便在控制机上(control machine)操作多台server,写了个脚本deploy.sh,后续测试会大量用到,实现基本的start,stop,clean,生成火焰图等操作

部署tikv,pd,prometheus,grafana等多系统

经尝试发现pd server 10.16.148.72:2379/metrics端口通过http暴露了metrics,而tikv server的l127.0.0.1:20180/metrics暴露了metrics,可问题是它只是localhost,无法由prometheus来抓取(严格讲,是不能通过外部的prometheus来抓取,但若在相同的tikv节点上安装prometheus,再让prometheus把metrics发给grafana,这可行)。这一点在tikv #6811得到验证。看来只好用docker部署个pushgateway了(不过既然是server,pull是不是要比push好些?

搭建pd-server, tikv-server

利用自定义脚本deploy.sh,先后执行以下命令:

  1. ./deploy.sh mount(格式化远程机的ssd,并mount到/data目录)
  2. ./deploy.sh copy(拷贝binary package包括自添加的conf/到远程机)
  3. ./deploy.sh start(先后启动pd-server和3台tikv-server)

当看到以下server状态时,表明tikv集群成功建立


image.png

搭建pushgateway, prometheus,grafana监控

pushgateway用docker镜像启动,暴露9091端口;按照常见的prometheus,grafana安装说明,在prometheus.yml中加入pushgateway地址,配置项honor_labels=true; grafana中加入prometheus数据源;

为节省时间,就不自己慢慢搭面板了,于是去找有没有现成的,可以导入官方的tikv.json;面板参数解释,太丰富了(随着版本迭代有些metrics也过时了),确认一时半会研究不完[phew..]

安装部署至此。之后就是采用相关客户端如sysbench, go-ycsb测试了。

上一篇 下一篇

猜你喜欢

热点阅读