PROXYSQL 是应用程序连接到MYSQL 并且通过PROXYSQL 进行FAILOVER MYSQL的关键。所以在监控MYSQL的同时,也必须要监控 PROXYSQL,如果PROXYSQL 宕机的情况则MYSQL 集群将被可被访问。
相关监控的参数
1 监控PROXYSQL 和每台服务器之间的连接在PROXYSQL 中有一个表是监控 PROXYSQL 与 MYSQL 之间的连接的,通过这个状态来获得连
接 PROXYSQL 连接 MYSQL 之间的网络连接的时间,时间值是 us
ZABBIX 如何获得参数,(请自行通过GREP,或者其他SED ,AWK 等过滤无用字符) 请 3秒 5秒收集一次,每台SERVER 需要一个这样的语句
mysql -uadmin -padmin h 127.0.0.1 P6032 e “select
hostname,max(time_start_us),connect_success_time_us from mysql_server_connect_log where
hostname = ‘10.50.132.185’;”
2 监控PROXYSQL 到 MYSQL 之间的语句反馈时间,包含MYSQL 的运行时间ZABBIX 如何获得数据 (请自行通过GREP,AWK,SED 等过滤无用字符) 请每 25秒运行一次获得每种语句在 MYSQL 中的执行变化状态
获得 单条语句的DELETE 的时间 ms
mysql -uadmin -padmin h 127.0.0.1 P6032 e “SELECT Command,Total_Time_us/1000 /
total_cnt as Per_delete_ms FROM stats_mysql_commands_counters WHERE Total_cnt and command = ‘DELETE’”
获得 单条语句的 INSERT 时间 ms
mysql -uadmin -padmin h 127.0.0.1 P6032 e “SELECT Command,Total_Time_us/1000 /
total_cnt as Per_delete_ms FROM stats_mysql_commands_counters WHERE Total_cnt and command = ‘INSERT’”
获得 单条语句的 UPDATE 时间 ms
mysql -uadmin -padmin h 127.0.0.1 P6032 e “SELECT Command,Total_Time_us/1000 /
total_cnt as Per_delete_ms FROM stats_mysql_commands_counters WHERE Total_cnt and command = ‘UPDATE’”
获得单条语句的SELETE 时间 ms
mysql u admin padmin h 127.0.0.1 P6032 e “SELECT Command,Total_Time_us/1000 /
total_cnt as Per_delete_ms FROM stats_mysql_commands_counters WHERE Total_cnt and command = ‘SELECT’”
3 当前PROXYSQL 获得的主节点信息,及主节点切换信息(需要报警)
PROXYSQL 会自动判断,MYSQL MGR 的切换,以下语句显示
mysql u admin padmin h 127.0.0.1 P6032 e “select srv_host,status,bytes_data_sent/queries
as Per_queries_5S from stats_mysql_connection_pool where hostgroup = 1;” hostgroup = 1;
如果 SRV_HOST 的名字进行切换,说明MGR 进行了主节点切换,这里面必有蹊跷,所以需要报警,我们需要查看到底为什么切换,并且是不是有节点已经提出了集群。并且 PER_QUERIES_5S 可以5秒监控一次,查看平均每个通过 PROXYSQL 的QUESTIONS BYTES 单位 BYTES
mysql u admin padmin h 127.0.0.1 P6032 e “select srv_host,status,bytes_data_sent/queries
as Per_queries_bytes from stats_mysql_connection_pool where hostgroup = 1;”
4 获得当前PROXYSQL 连接的状态当前有多少ACTIVE的连接到 PROXYSQLmysql u admin padmin h 127.0.0.1 P6032 e “select * from stats.stats_mysql_global where
variable_name = ‘Client_Connections_connected’;”
当前系统启动后,被拒绝的连接
mysql u admin padmin h 127.0.0.1 P6032 e “select * from stats.stats_mysql_global where
variable_name = ‘Client_Connections_aborted’;”
当前系统PROXYSQL 连接 MYSQL的连接数
mysql u admin padmin h 127.0.0.1 P6032 e “select * from stats.stats_mysql_global where
variable_name = ‘Server_Connections_connected’;”
看到最后,如果觉得这是什么东西,怎么进去之类如何的问题,说明你没连续看我的公众号,加个订阅,可以让你不遗漏这些。如果实在不知道,留言给我,我发给你之前的东西,或解答一些问题。
感谢分享的同学, 运维是任何系统的基石,希望我们都有一个良好的运维及相关的环境,应对变化万千的开发。