文章目录
云厂商可以帮助我们解决8-90%的“脏乱臭”的活,方便的不要不要的,当然也是有得有失吧。但个人觉得 RDS监控用起来确实有点不是太方便,自然要想办法改善使用。
Prometheus+Grafana,这套万金流自然首当其冲(有的人喜欢zabbix,都可以,仁者见仁)
1. 工具收集阶段
1.1 Prometheus+Grafana环境部署
此处不做过多赘述,网上文章很多。推荐电子书链接:prometheus-book
1.2 阿里云RDS(mysqld)相关监控
MySQL数据采集工具:mysqld_exporter,此工具也是prometheus官方工具下载地址。
部署也相当简单,创建好采集MySQL数据需要的用户,以及选择需要采集的指标,直接启动即可,如:
export DATA_SOURCE_NAME='user:password@(hostname:3306)/'
./mysqld_exporter <flags>
1.3 资源监控
除了RDS(MySQL)本身的一些监控,还需要关注资源的一些信息。如果是自建IDC,肯定是使用node_exporter。
谁让我们使用的是云产品呢,哎~
幸运的是PingCAP的工程师Aylei写了一套aliyun-exporter,原理是调用阿里云API
收集监控数据(可以监控ECS、SLB、Redis、Mongodb、RDS等),以prometheus格式存储,同时非常nice的做了非常漂亮的Grafana图。
但是,由于“年久失修”,在使用的时候遇到不少问题,再加上个人代码能力青铜三段,重写有点难,那就硬修吧。以下是在使用时遇到的问题。
1.3.1 重新打包Dockerfile
原因是,pip3 install aliyun-exporter
拉的镜像没有SLB
的模块(其实这个根RDS监控没什么关系,另一位同事在搞SLB的监控,顺道都修了),人肉了很久,发现github中最新的代码有这个功能。尴尬~想用也只能自己动手了,替换最新的代码文件info_provider.py
,重新打包。脚本如下:
$ cat docker.file
FROM aylei/aliyun-exporter:0.3.0
RUN pip3 install -U aliyun-exporter==0.3.1 PyYAML==5.1.2
RUN pip3 install aliyun-python-sdk-slb aliyun-python-sdk-dds
COPY info_provider.py /