设为首页 收藏本站
查看: 1484|回复: 0

[经验分享] Zabbix 的 MySQL 监控客户端配置

[复制链接]

尚未签到

发表于 2019-1-20 10:24:32 | 显示全部楼层 |阅读模式
  Zabbix监控的方式有四个大方向:

  1,Zabbix Agent类型
  2,SNMP类型
  3,JMX类型
  4,IMPI类型
  

  用的多的基本上就两种,Agent类型 和 SNMP类型。
  

  Agent类型的item是使用部署在服务端的Agent来获取数据,可以分为主动和被动模式。
  SNMP是监控服务器以外设备的非常好的方式,比如可以监控网络设备,打印机等,只要是有SNMP功能的,zabbix都可以监控。
  

  今天我们要说的MySQL监控是基于Agent类型的监控。
  我们来看看服务端的默认模板:

  item 有14个,根据这14个item生成有2个图形类型。
  


  

第一个item的信息如图,监控类型为zabbix agent,key为mysql.version ,输出类型为字符串,更新周期默认为 3600秒。值的保存日期为7天。。。。

  

  被监控端安装好zabbix agent后,添加好MySQL监控模板,然后在Zabbix_server端查看日志的后你会发现
提示监控可以值在被监控端不受支持。

  所以我们还需要修改被监控端的 zabbix_agentd.conf 手动添加对应key所执行的数据采集语句(多用SHELL语句编写)。
  

  客户端添加自定义监控项的方法为:在配置文件后面添加语句为 UserParameter=app.key,/some/shell/output
  比如:监控mysql.version的话 语句为
  mysql.version,mysqladmin -u -p version | grep 'Server version' | awk '{printf "MySQL Server Version: "$3}'
  输出的值为 MySQL Server Version: 5.1.73
  所以添加到配置文件最后就添加好一条监控项了。
  

  根据上图所示,mysql的值有许多,这些值一般都在 mysqladmin status | mysqladmin extended-status 里面。所以只需要写一个shell脚本就可以吧剩下的全部监控起来。
  我这里提供一个shell脚本示例

#!/bin/bash
PATH=${PATH}:/usr/local/mysql5.6/bin/

case $1 in
Uptime)
mysqladmin  status | awk '{print$2}'
;;
Com_update)
mysqladmin  extended-status | awk '/Com_update\>/ {print $4}'
;;
Slow_queries)
mysqladmin  extended-status | awk '/Slow_queries/ {print $4}'
;;
Com_select)
mysqladmin  extended-status | awk '/Com_select/ {print $4}'
;;
Com_rollback)
mysqladmin  extended-status | awk '/Com_rollback\>/ {print $4}'
;;
Questions)
mysqladmin  extended-status | awk '/Questions/ {print $4}'
;;
Com_insert)
mysqladmin  extended-status | awk '/Com_insert\>/ {print $4}'
;;
Com_delete)
mysqladmin  extended-status | awk '/Com_delete\>/ {print $4}'
;;
Com_commit)
mysqladmin  extended-status | awk '/Com_commit/ {print $4}'
;;
Bytes_sent)
mysqladmin  extended-status | awk '/Bytes_sent/ {print $4}'
;;
Bytes_received)
mysqladmin  extended-status | awk '/Bytes_received/ {print $4}'
;;
Com_begin)
mysqladmin  extended-status | awk '/Com_begin/ {print $4}'
;;
Aborted_clients)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Aborted_connects)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Binlog_cache_disk_use)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Binlog_cache_use)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Binlog_stmt_cache_disk_use)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Binlog_stmt_cache_use)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Connections)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Created_tmp_disk_tables)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Created_tmp_files)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Created_tmp_tables)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;
Flush_commands)
mysqladmin  extended-status | awk '/\/ {print $4}'
;;

Handler_commit)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_delete)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_external_lock)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_prepare)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_read_first)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_read_key)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_read_last)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_read_next)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_read_prev)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_read_rnd)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_read_rnd_next)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_rollback)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_savepoint)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_savepoint_rollback)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_update)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Handler_write)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Key_blocks_not_flushed)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Key_blocks_unused)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Key_blocks_used)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Key_read_requests)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Key_reads)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Key_write_requests)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Key_writes)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Max_used_connections)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Open_files)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Open_table_definitions)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Open_tables)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Opened_table_definitions)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Opened_tables)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Prepared_stmt_count)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Questions)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Select_full_join)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Select_full_range_join)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Select_range)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Select_scan)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Select_scan)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Slave_heartbeat_period)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Slave_open_temp_tables)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Slave_retried_transactions)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Slave_running)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Slow_queries)
mysqladmin  extended-status | awk '/\/{print $4}'
;;

Table_locks_immediate)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Table_locks_waited)
mysqladmin  extended-status | awk '/\/{print $4}'
;; #表锁数
Table_locks_immediate)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Threads_cached)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Threads_connected)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Threads_connected)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Threads_created)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Threads_running)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_available_undo_logs)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_pages_data)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_pages_dirty)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_pages_flushed)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_pages_free)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_pages_latched)
mysqladmin  extended-status | awk '/\/{print $4}'
;; # debug only
Innodb_buffer_pool_pages_misc)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_pages_total)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_read_ahead)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_read_ahead_evicted)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_read_requests)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_reads)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_wait_free)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_buffer_pool_write_requests)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_fsyncs)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_pending_fsyncs)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_pending_reads)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_pending_writes)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_read)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_reads)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_writes)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_data_written)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_dblwr_pages_written)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_dblwr_writes)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_log_waits)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_log_write_requests)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_log_writes)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_num_open_files)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_os_log_fsyncs)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_os_log_pending_fsyncs)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_os_log_pending_writes)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_os_log_written)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_page_size)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_pages_created)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_pages_read)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_pages_written)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_row_lock_current_waits)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_row_lock_waits)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_rows_deleted)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_rows_inserted)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_rows_read)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Innodb_rows_updated)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_free_blocks)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_free_memory)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_hits)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_inserts)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_lowmem_prunes)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_not_cached)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_queries_in_cache)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
Qcache_total_blocks)
mysqladmin  extended-status | awk '/\/{print $4}'
;;
*)
echo "Please choise one optinon ( Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin ....... )"
;;
esac  zabbix_agentd.conf里面的监控项为↓

UserParameter=mysql.version,mysqladmin -u -p version | grep 'Server version' | awk '{printf "MySQL Server Version: "$3}'
UserParameter=mysql.status
  • ,bash /usr/local/zabbix/etc/check_mysql_status_per.sh $1
    UserParameter=mysql.ping,mysqladmin -u -p status > /dev/null 2>&1  && echo 1 || echo 0  添加好后我们可以到zabbix上点开 Monitoring→Latest data 选择主机

    已经陆续获取到响应的值了。

      

      稍等就可以完整监控了。



    附件:http://down.运维网.com/data/2367081


  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665486-1-1.html 上篇帖子: ZABBIX 之python脚本邮件报警配置 下篇帖子: 如何从zabbix数据库中获取每日流量最大值
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表