• 【zabbix】MySQL模板创建与监控


    本篇基于我的上一篇文章环境续写:【zabbix】docker安装zabbix、yum安装zabbix-agent_山水不相逢的博客-CSDN博客

    准备工作:

    一、服务器向配置,Zabbix监控mysq准备

    1、MySQL创建测试用户zabbix并设置密码

    1. create user zabbix identified by 'zabbix';
    2. grant all privileges on *.* to 'zabbix'@'%';
    3. flush privileges;

    2、判断链接存活

    1. [root@k8s-node2 zabbix]# mysqladmin -uzabbix -pzabbix -h172.34.111.147 ping
    2. mysqladmin: [Warning] Using a password on the command line interface can be insecure.
    3. mysqld is alive

    出现mysqld is alive表示正常

    3、在/etc/zabbix/目录手动创建.my.cnf文件并配置如下,

    查看ls -a .my.cnf隐藏的文件命令

    1. [mysql]
    2. host=172.34.111.147
    3. user=zabbix
    4. password=zabbix
    5. socket=/usr/local/src/mysql/mysql.sock
    6. [mysqladmin]
    7. host=172.34.111.147
    8. user=zabbix
    9. password=zabbix
    10. socket=/usr/local/src/mysql/mysql.sock

    4、接下来判断连接存活的方式会变成以下方式

    HOME=/etc/zabbix/ mysqladmin ping

     

    5、创建自定义键mysql.ping

    在/etc/zabbix/zabbix_agentd.d目录创建测试文件vim mysqlinfo.conf,加入测试内容

    UserParameter=mysql.ping, HOME=/etc/zabbix/ mysqladmin ping | grep -c alive

    测试成功如下:

    1. [root@k8s-node2 zabbix_agentd.d]# vim mysqlinfo.conf
    2. [root@k8s-node2 zabbix_agentd.d]# zabbix_agentd -c mysqlinfo.conf -t mysql.ping
    3. mysql.ping [t|1]

     重启客户端systemctl restart zabbix_agent,并在服务端获取值

    1. [root@k8s-node2 zabbix_agentd.d]# zabbix_get -s 172.34.111.147 -p 10050 -k mysql.ping
    2. 1
    3. [root@k8s-node2 zabbix_agentd.d]#

    6、测试完毕,准备上脚本

    创建并编辑文件的自定义 zabbix key,userparameter_mysql.conf内的这行配置很重要,关系到后面web页面的监控项

    UserParameter=mysql.status[*], HOME=/etc/zabbix/ sh /etc/zabbix/zabbix_agentd.d/check_mysql.sh $1

    7、脚本内容,这里面的内容后期看需求再扩展添加:

    1. #!/bin/bash
    2. # 用户名
    3. MYSQL_USER='zabbix'
    4. # 密码
    5. MYSQL_PWD='zabbix'
    6. # 主机地址/IP
    7. MYSQL_HOST='172.34.111.147'
    8. # 端口
    9. MYSQL_PORT='3306'
    10. # 数据连接
    11. MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
    12. # 参数是否正确
    13. if [ $# -ne "1" ];then
    14. echo "arg error!"
    15. fi
    16. # 获取数据
    17. case $1 in
    18. Uptime)
    19. result=`${MYSQL_CONN} status 2>/dev/null |cut -f2 -d":"|cut -f1 -d"T"`
    20. echo $result
    21. ;;
    22. Com_update)
    23. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_update"|cut -d"|" -f3`
    24. echo $result
    25. ;;
    26. Slow_queries)
    27. result=`${MYSQL_CONN} status 2>/dev/null |cut -f5 -d":"|cut -f1 -d"O"`
    28. echo $result
    29. ;;
    30. Com_select)
    31. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_select"|cut -d"|" -f3`
    32. echo $result
    33. ;;
    34. Com_rollback)
    35. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_rollback"|cut -d"|" -f3`
    36. echo $result
    37. ;;
    38. Questions)
    39. result=`${MYSQL_CONN} status 2>/dev/null |cut -f4 -d":"|cut -f1 -d"S"`
    40. echo $result
    41. ;;
    42. Com_insert)
    43. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_insert"|cut -d"|" -f3`
    44. echo $result
    45. ;;
    46. Com_delete)
    47. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_delete"|cut -d"|" -f3`
    48. echo $result
    49. ;;
    50. Com_commit)
    51. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_commit"|cut -d"|" -f3`
    52. echo $result
    53. ;;
    54. Bytes_sent)
    55. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_sent" |cut -d"|" -f3`
    56. echo $result
    57. ;;
    58. Bytes_received)
    59. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_received" |cut -d"|" -f3`
    60. echo $result
    61. ;;
    62. Com_begin)
    63. result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_begin"|cut -d"|" -f3`
    64. echo $result
    65. ;;
    66. *)
    67. echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
    68. ;;
    69. esac

    二、WEB向配置,配置模板(监控项、图形)

    1、创建模板

     2、创建应用集

    3、创建监控项 

    4、创建图形

     5、查看图形是否有数据

    5、剩下的看自己想配什么,配置上就行了 

     6、这里说一下,监控项的键值,可以回头看上面的脚本,也就是中括号中的值对应脚本中的选项

    补充:

    Com_update:mysql执行的更新个数

    Com_select:mysql执行的查询个数

    Com_insert:mysql执行插入的个数

    Com_delete:执行删除的个数

    Com_rollback:执行回滚的操作个数

    Bytes_received:接受的字节数

    Bytes_sent:发送的字节数

    Slow_queries:慢查询语句的个数

    本篇结束,有需求可以移步我的下一篇文章

    【zabbix】企业微信告警_山水不相逢的博客-CSDN博客

  • 相关阅读:
    离线安装mysql
    设计模式详解(十八)——责任链模式
    剖析WPF模板机制的内部实现
    HTML总结
    一篇文章带你学完mysql的DQL查询操作
    JavaScript实现课工场论坛发贴
    算法入门(二):简单排序算法
    SOLIDWORKS Visualize 界面介绍
    office实操技能02:多行公式在指定的字符处对齐
    chrome 插件开发指南
  • 原文地址:https://blog.csdn.net/AnRanGeSi/article/details/126482092