在kubernetes添加对于mysql的Prometheus监控

        在IBM Cloud Private的kubernetes环境中是默认安装了Prometheus+grafana服务的,但是只是针对主机监控,包括node和kubernetes上面的pod资源等,如果想要监控mysql或者redis等数据库的内部信息,还需要自己添加配置。

环境准备:

kubernetes环境:IBM Cloud Private 3.10

Prometheus和grafana目前组件:


一、在任意namespace下创建mysql服务。


mysql我设置的root用户密码为初始的mysql,service使用了nodeport的暴露方式10.10.10.10:3306

二、创建prometheus-mysql-exporter服务

在这里我直接使用的helm方式安装的mysql-exporter,下载mysql-exporterchart,修改下chart中的value.yaml


其中,datasource为自己的数据库地址格式为: 用户名:密码@(数据库地址)/,创建服务后mysqld-exporter服务IP:10.10.10.10:9104

三、修改prometheus.yml加入MySql节点

使用helm方式安装的Prometheus默认的prome.yml是通过挂载configmap的方式来配置的,所以需要先查找到指定的configmap,然后添加mysql节点

- job_name: 'mysql'

        static_configs:

          - targets:

            - 10.10.10.10:9104

更新下configmap,然后更新下Prometheus的pod。

四、查看mysql-exporter和mysql连接状态

访问mysql-exporter的metrics服务,查看mysql状态

10.10.10.10:9104/metrics


mysql_up 1 代表目前连接的mysql数量,代表当前连接状态成功。

五、grafana中配置mysql的dashboard配置

mysql可视化模板:https://pan.baidu.com/s/1t0x9W7UrlPcusdoVLF8P1w 




碰到的问题和解决方法:

mysql-exporter和mysql连接不成功,mysql_up提示为0


查看mysql-exporter容器日志


从日志中可以看到错误信息为:Error pinging mysqld: this authentication plugin is not supported。

搜索发现是mysql新版本(8.0以上)将root用户使用的plugin更新成caching_sha2_password,查看mysql


将root的plugin改成mysql_native_password,输入更改命令

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

修改完之后,再次查看连接状态,还是报错。查找得知需要在连接mysql服务的url后面添加?allowNativePasswords=true,在这里我们就需要在mysql-exporter连接mysql是添加这个语句。注意这里的添加位置,需要修改mysql-exporter的chart.value.yaml文件


注意添加的位置,这样mysql-exporter连接mysql的时候就可以使用nativepassword。

你可能感兴趣的:(在kubernetes添加对于mysql的Prometheus监控)