mysql exporter compose 部署

官方:GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metrics

话不多说, 直接上代码。

先在mysql中给采集器开个账号:

CREATE USER 'exporter'@'localhost' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
version: '3.2'
services:
  mysqld_exporter:
    image: prom/mysqld-exporter
    container_name: mysqld-exporter
    #networks:
     # - pangu_middleware_pangu_online
    command:
     - "--mysqld.username=exporter:123456"
     - "--mysqld.address=localhost:3306" 
    ports:
      - "9104:9104"

填坑记:

        上面的是我最终可以运行的,在这之前遇到个坑,在网上很多使用config.my=.my.cnf或者-e DATA_SOURCE_NAME="root:Newmysql55..(127.0.0.1:3306)/ 什么的,然后就一直报一个错误:

ts=2023-06-30T13:44:35.523Z caller=config.go:150 level=error msg="failed to validate config" section=client err="no user specified in section or parent"
ts=2023-06-30T13:44:35.523Z caller=mysqld_exporter.go:225 level=info msg="Error parsing host config" file=.my.cnf err="no configuration found"

按照他们配置.my.cnf也不好使。搜了好久,最终搜到了这个https://discuss.prometheus.io/t/docker-compose-mysql-exporter-start-error/1734 这个解决的。

### MySQL Exporter 连接容器内数据库时遇到的错误解决方案 当尝试通过 `mysql-exporter` 连接到运行在容器内的 MySQL 数据库并遇到连接失败的情况,通常可能是由于配置不当或者权限不足引起。以下是几种常见的原因及其对应的解决方法: #### 配置文件设置不正确 如果 `mysqld.username=exporter` 和 `MYSQLD_EXPORTER_PASSWORD` 设置有误,则可能导致认证失败[^1]。 为了验证这一点,可以进入 MySQL 容器内部执行如下命令来确认用户名和密码是否匹配: ```bash docker exec -it <container_name> bash mysql -u exporter -p ``` #### 权限不够充分 确保为 `exporter` 用户授予足够的权限以便于监控工具能够读取必要的性能数据表单。可以通过下面 SQL 命令赋予适当权限给该用户: ```sql GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'exporter'@'%'; FLUSH PRIVILEGES; ``` #### 网络连通性问题 检查 Kubernetes Pod 是否能成功解析到目标服务名称,并且端口映射无误。使用 `kubectl describe pod <pod-name>` 查看事件日志以获取更多线索;另外也可以利用 `telnet` 或者 `nc (netcat)` 测试网络可达性。 对于由模块化过滤引起的特定版本兼容性问题,在安装过程中可能会因为软件包仓库策略而阻止某些依赖项下载或更新,这可能间接影响到了后续组件间的正常通信[^2]。此时建议升级操作系统的基础镜像至最新稳定版或是调整 YUM/APT 源地址指向更稳定的服务器。 #### Docker Compose 中的数据卷挂载路径冲突 有时本地主机上的已有数据文件夹会干扰新启动的服务实例,造成访问被拒的现象。针对 `/Users/user/Documents/.docker/mysql/data:/var/lib/mysql` 的情况,请先清理掉旧有的残留数据再重试部署操作[^3]。 以上措施应该可以帮助排除大部分关于 `mysql-exporter` 无法顺利接入容器环境下的 MySQL 实例的问题。不过具体实施前还需要结合实际场景进一步分析排查。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值