ProxySQL Exporter
ProxySQL 是一个高性能、高可用的 MySQL 协议感知代理,由 sysown 开源,遵循 GPL 协议,官网是 www.proxysql.com ,针对 ProxySQL ,Percona 开发了一个 ProxySQL Exporter 用来导出 Proxy 的监控数据给 Prometheus ,这个 Exporter 组件的官方仓库地址是 https://github.com/percona/proxysql_exporter ,最新版本是 v1.1.2 ,发布于 2021 年的 10 月 6 日。 这个 Exporter 支持导出 ProxySQL v1.2 和 v1.4 的性能数据作为监控使用。
安装运行
ProxySQL 可以通过二进制文件来运行,二进制文件可以通过 https://github.com/percona/proxysql_exporter/releases 来进行下载。
MySQL 服务器的数据源名称必须通过环境变量 DATA_SOURCE_NAME
来设置,这个变量 格式的描述可以查看 https://github.com/go-sql-driver/mysql#dsn-data-source-name 。
如果打开了 HTTP 基本认证方式,可以通过设置环境变量 HTTP_AUTH
来使用用户:口令对,或者你也可以使用带有 server_user
和 server_password
字段的 YAML 文件。
准备好这些信息以后就可以通过下面的方式来进行启动了。
export DATA_SOURCE_NAME='stats:stats@tcp(127.0.0.1:42004)/'
export HTTP_AUTH='user:password'
./proxysql_exporter <flags>
使用 stats 用户需要 ProxySQL 1.2.4 或更高版本。否则,请使用 admin 用户。
启动 ProxySQL Exporter 的时候有以下参数可以用来控制启动的行为
- version 打印当前的版本信息并且推出。
- web.auth-file 使用了 HTTP Basic认证的认证文件,包含
server_user
和server_password
,文件格式是 YAML 格式,这个文件的优先级高于HTTP_AUTH
这个环境变量。 - web.listen-address 启动后监控的 IP地址和端口,缺省是
:42004
- web.ssl-cert-file SSL 的证书路径
- web.ssl-key-file SSL 的私钥文件路径
- web.telemetry-path 启动后暴露监控数据的路径,缺省是
metrics
在启动的过程中也可以使用如下参数来控制监控指标的采集:
- collect.detailed.stats_mysql_processlist 从 stats_mysql_processlist 收集详细的连接列表。
- collect.mysql_connection_list 从 stats_mysql_processlist 收集 MySQL 连接列表,默认是 true
- collect.mysql_connection_pool 从 stats_mysql_connection_pool 收集 MySQL 连接池 ,默认是 true
- collect.mysql_status 从 stats_mysql_global 收集 MySQL 状态,(SHOW MYSQL STATUS) 默认是 true
- collect.runtime_mysql_servers 从 runtime_mysql_servers 收集 ,需要管理员认证,默认是 false。
- collect.stats_memory_metrics 从 stats_memory_metrics 收集内存监控指标
分析和指标
Percona 提供了一个 Grafana 的 ProxySQL 监控的例子页面可以查看,https://pmmdemo.percona.com/graph/d/proxysql-instance-summary/proxysql-instance-summary?orgId=1&refresh=1m ,大家可以作为参考使用。