centos
系统环境: centos 6.3 x64 http://www.linuxidc.com/linux/2012-12/76583.htm
mysql: mysql-5.6.10 http://www.linuxidc.com/linux/2013-02/79162.htm
zabbix: zabbix-2.06
一.修改mysql客户端zabbix_agentd.conf配置:
# vi /usr/local/etc/zabbix_agentd.conf
这里注意mysql账号密码与你的数据库账户需对应
末行添加如下内容:
-----------------
userparameter=mysql.ping,mysqladmin -uroot -p123456 ping|grep alive|wc -l
userparameter=mysql.threads,mysqladmin -uroot -p123456 status|cut -f3 -d:|cut -f1 -dq
userparameter=mysql.questions,mysqladmin -uroot -p123456 status|cut -f4 -d:|cut -f1 -ds
userparameter=mysql.slowqueries,mysqladmin -uroot -p123456 status|cut -f5 -d:|cut -f1 -do
userparameter=mysql.qps,mysqladmin -uroot -p123456 status|cut -f9 -d:
userparameter=mysql.slave_io_state,if [ $(mysql -uroot -p123456 -e show slave status/g| grep slave_io_running|awk '{print $2}') == yes ];then echo 1; else echo 0;fi
userparameter=mysql.slave_sql_state,if [ $(mysql -uroot -p123456 -e show slave status/g| grep slave_sql_running|awk '{print $2}') == yes ];then echo 1; else echo 0;fi
userparameter=mysql.key_buffer_size,mysql -uroot -p123456 -e show variables like 'key_buffer_size';| grep -v value |awk '{print $2/1024^2}'
userparameter=mysql.key_reads,mysql -uroot -p123456 -e show status like 'key_reads';| grep -v value |awk '{print $2}'
userparameter=mysql.key_read_requests,mysql -uroot -p123456 -e show status like 'key_read_requests';| grep -v value |awk '{print $2}'
userparameter=mysql.key_cache_miss_rate,echo $(mysql -uroot -p123456 -e show status like 'key_reads';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'key_read_requests';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/$2*100)}'
userparameter=mysql.key_blocks_used,mysql -uroot -p123456 -e show status like 'key_blocks_used';| grep -v value |awk '{print $2}'
userparameter=mysql.key_blocks_unused,mysql -uroot -p123456 -e show status like 'key_blocks_unused';| grep -v value |awk '{print $2}'
userparameter=mysql.key_blocks_used_rate,echo $(mysql -uroot -p123456 -e show status like 'key_blocks_used';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'key_blocks_unused';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/($1+$2)*100)}'
userparameter=mysql.innodb_buffer_pool_size,mysql -uroot -p123456 -e show variables like 'innodb_buffer_pool_size';| grep -v value |awk '{print $2/1024^2}'
userparameter=mysql.innodb_log_file_size,mysql -uroot -p123456 -e show variables like 'innodb_log_file_size';| grep -v value |awk '{print $2/1024^2}'
userparameter=mysql.innodb_log_buffer_size,mysql -uroot -p123456 -e show variables like 'innodb_log_buffer_size';| grep -v value |awk '{print $2/1024^2}'
userparameter=mysql.table_open_cache,mysql -uroot -p123456 -e show variables like 'table_open_cache';| grep -v value |awk '{print $2}'
userparameter=mysql.open_tables,mysql -uroot -p123456 -e show status like 'open_tables';| grep -v value |awk '{print $2}'
userparameter=mysql.opened_tables,mysql -uroot -p123456 -e show status like 'opened_tables';| grep -v value |awk '{print $2}'
userparameter=mysql.open_tables_rate,echo $(mysql -uroot -p123456 -e show status like 'open_tables';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'opened_tables';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/($1+$2)*100)}'
userparameter=mysql.table_open_cache_used_rate,echo $(mysql -uroot -p123456 -e show status like 'open_tables';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show variables like 'table_open_cache';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/($1+$2)*100)}'
userparameter=mysql.thread_cache_size,mysql -uroot -p123456 -e show variables like 'thread_cache_size';| grep -v value |awk '{print $2}'
userparameter=mysql.threads_cached,mysql -uroot -p123456 -e show status like 'threads_cached';| grep -v value |awk '{print $2}'
userparameter=mysql.threads_connected,mysql -uroot -p123456 -e show status like 'threads_connected';| grep -v value |awk '{print $2}'
userparameter=mysql.threads_created,mysql -uroot -p123456 -e show status like 'threads_created';| grep -v value |awk '{print $2}'
userparameter=mysql.threads_running,mysql -uroot -p123456 -e show status like 'threads_running';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_free_blocks,mysql -uroot -p123456 -e show status like 'qcache_free_blocks';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_free_memory,mysql -uroot -p123456 -e show status like 'qcache_free_memory';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_hits,mysql -uroot -p123456 -e show status like 'qcache_hits';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_inserts,mysql -uroot -p123456 -e show status like 'qcache_inserts';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_lowmem_prunes,mysql -uroot -p123456 -e show status like 'qcache_lowmem_prunes';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_not_cached,mysql -uroot -p123456 -e show status like 'qcache_not_cached';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_queries_in_cache,mysql -uroot -p123456 -e show status like 'qcache_queries_in_cache';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_total_blocks,mysql -uroot -p123456 -e show status like 'qcache_total_blocks';| grep -v value |awk '{print $2}'
userparameter=mysql.qcache_fragment_rate,echo $(mysql -uroot -p123456 -e show status like 'qcache_free_blocks';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'qcache_total_blocks';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/$2*100)}'
userparameter=mysql.qcache_used_rate,echo $(mysql -uroot -p123456 -e show variables like 'query_cache_size';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'qcache_free_memory';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,($1-$2)/$1*100)}'
userparameter=mysql.qcache_hits_rate,echo $(mysql -uroot -p123456 -e show status like 'qcache_hits';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'qcache_inserts';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,($1-$2)/$1*100)}'
userparameter=mysql.query_cache_limit,mysql -uroot -p123456 -e show variables like 'query_cache_limit';| grep -v value |awk '{print $2}'
userparameter=mysql.query_cache_min_res_unit,mysql -uroot -p123456 -e show variables like 'query_cache_min_res_unit';| grep -v value |awk '{print $2}'
userparameter=mysql.query_cache_size,mysql -uroot -p123456 -e show variables like 'query_cache_size';| grep -v value |awk '{print $2}'
userparameter=mysql.sort_merge_passes,mysql -uroot -p123456 -e show status like 'sort_merge_passes';| grep -v value |awk '{print $2}'
userparameter=mysql.sort_range,mysql -uroot -p123456 -e show status like 'sort_range';| grep -v value |awk '{print $2}'
userparameter=mysql.sort_rows,mysql -uroot -p123456 -e show status like 'sort_rows';| grep -v value |awk '{print $2}'
userparameter=mysql.sort_scan,mysql -uroot -p123456 -e show status like 'sort_scan';| grep -v value |awk '{print $2}'
userparameter=mysql.handler_read_first,mysql -uroot -p123456 -e show status like 'handler_read_first';| grep -v value |awk '{print $2}'
userparameter=mysql.handler_read_key,mysql -uroot -p123456 -e show status like 'handler_read_key';| grep -v value |awk '{print $2}'
userparameter=mysql.handler_read_next,mysql -uroot -p123456 -e show status like 'handler_read_next';| grep -v value |awk '{print $2}'
userparameter=mysql.handler_read_prev,mysql -uroot -p123456 -e show status like 'handler_read_prev';| grep -v value |awk '{print $2}'
userparameter=mysql.handler_read_rnd,mysql -uroot -p123456 -e show status like 'handler_read_rnd';| grep -v value |awk '{print $2}'
userparameter=mysql.handler_read_rnd_next,mysql -uroot -p123456 -e show status like 'handler_read_rnd_next';| grep -v value |awk '{print $2}'
userparameter=mysql.com_select,mysql -uroot -p123456 -e show status like 'com_select';| grep -v value |awk '{print $2}'
userparameter=mysql.com_insert,mysql -uroot -p123456 -e show status like 'com_insert';| grep -v value |awk '{print $2}'
userparameter=mysql.com_insert_select,mysql -uroot -p123456 -e show status like 'com_insert_select';| grep -v value |awk '{print $2}'
userparameter=mysql.com_update,mysql -uroot -p123456 -e show status like 'com_update';| grep -v value |awk '{print $2}'
userparameter=mysql.com_replace,mysql -uroot -p123456 -e show status like 'com_replace';| grep -v value |awk '{print $2}'
userparameter=mysql.com_replace_select,mysql -uroot -p123456 -e show status like 'com_replace_select';| grep -v value |awk '{print $2}'
userparameter=mysql.table_scan_rate,echo $(mysql -uroot -p123456 -e show status like 'handler_read_rnd_next';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'com_select';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/$2*100)}'
userparameter=mysql.open_files,mysql -uroot -p123456 -e show status like 'open_files';| grep -v value |awk '{print $2}'
userparameter=mysql.open_files_limit,mysql -uroot -p123456 -e show variables like 'open_files_limit';| grep -v value |awk '{print $2}'
userparameter=mysql.open_files_rate,echo $(mysql -uroot -p123456 -e show status like 'open_files';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show variables like 'open_files_limit';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/$2*100)}'
userparameter=mysql.created_tmp_disk_tables,mysql -uroot -p123456 -e show status like 'created_tmp_disk_tables';| grep -v value |awk '{print $2}'
userparameter=mysql.created_tmp_tables,mysql -uroot -p123456 -e show status like 'created_tmp_tables';| grep -v value |awk '{print $2}'
userparameter=mysql.created_tmp_disk_tables_rate,echo $(mysql -uroot -p123456 -e show status like 'created_tmp_disk_tables';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'created_tmp_tables';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/$2*100)}'
userparameter=mysql.max_connections,mysql -uroot -p123456 -e show variables like 'max_connections';| grep -v value |awk '{print $2}'
userparameter=mysql.max_used_connections,mysql -uroot -p123456 -e show status like 'max_used_connections';| grep -v value |awk '{print $2}'
userparameter=mysql.max_connections_used_rate,echo $(mysql -uroot -p123456 -e show status like 'max_used_connections';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show variables like 'max_connections';| grep -v value |awk '{print $2}')| awk '{printf(%1.4f/n,$1/$2*100)}'
userparameter=mysql.table_locks_immediate,mysql -uroot -p123456 -e show status like 'table_locks_immediate';| grep -v value |awk '{print $2}'
userparameter=mysql.table_locks_waited,mysql -uroot -p123456 -e show status like 'table_locks_waited';| grep -v value |awk '{print $2}'
userparameter=mysql.engine_select,echo $(mysql -uroot -p123456 -e show status like 'table_locks_immediate';| grep -v value |awk '{print $2}') $(mysql -uroot -p123456 -e show status like 'table_locks_waited';| grep -v value |awk '{print $2}')| awk '{printf(%5.4f/n,$1/$2)}'
二.访问zabbix web后台导入模板
1.访问zabbix-配置-模板,点击右上角的载入:
2.本地导入文件:
下载本博附件mysql_template.xml文件导入zabbix模板,点击载入保存
3.访问zabbix-配置-模板,查看模板:
4.访问zabbix-配置-主机-zabbix server,找到apache客户端关联mysql_template.xml模版:
重启zabbix_agentd服务
# /etc/init.d/zabbix_agentd restart
添加完毕,查看效果
zabbix agent配置文件 与 mysql模板 下载地址:
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是
具体下载目录在 /2013年资料/5月/24日/ centos 6.3下zabbix监控mysql数据库参数
更多centos相关信息见 centos 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14