• 【zibbix自定义监控】zabbix服务自定义监控mysql的状态信息


    由于mysql我安装在zabbix_server服务的主机上,所以下面操作在zabbix服务主机上进行,注意服务主机已经安装了监控服务

    实现步骤:

    1、修改 zabbix_agentd.conf,添加zabbix_agent 配置目录。 将以下行的注释去掉

    [root@VM_0_10_centos alertscripts]# vi /usr/local/etc/zabbix_agentd.conf
    #
    加载配置文件目录 Include=/usr/local/etc/zabbix_agentd.conf.d/

    PS:将此行注释去掉后,zabbix_agentd启动后会自动扫描/usr/local/etc/zabbix_agentd.conf.d/目录下所有的文件,并加载。

    2、编写监控脚本/usr/local/share/zabbix/alertscripts/get_mysql_status.sh,脚本如下(脚本存放目录可以自定义):

    # 修改zabbix服务的配置文件
    [root@VM_0_10_centos alertscripts]# vi /usr/local/etc/zabbix_server.conf
    # 告警脚本路径
    AlertScriptsPath=/usr/local/share/zabbix/alertscripts
    # 外部脚本路径
    ExternalScripts=/usr/local/share/zabbix/externalscripts
    # vi /usr/local/share/zabbix/alertscripts/get_mysql_status.sh
    #!/bin/sh
    case $3 in
    uptime)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $2}'
    ;;
    threads)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $4}'
    ;;
    question)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $6}'
    ;;
    sq)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $9}'
    ;;
    open)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $11}'
    ;;
    ftable)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $14}'
    ;;
    opent)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $17}'
    ;;
    qps)
    mysqladmin -u$1 -p$2 status 2>/dev/null | awk -F '[:| ]'+ '{print $22}'
    ;;
    *)
    esac
    # 赋予用户执行权限
    # chmod 755 get_mysql_status.sh
    # chown zabbix.zabbix get_mysql_status.sh

    脚本说明:脚本需要输入三个参数分别是:mysql用户、mysql用户密码、mysql状态各项指标如下: uptime:运行时长单位s、 threads:开启的会话数、 question(questions):服务器启动以来客户的问题(查询)数目 sq(Slow queries): 慢查询数量 open(opens):服务器已经打开的数据库表的数量 ftable(Flush tables):服务器已经执行的flush ...、refresh和reload命令的数量 opent(open tables):通过命令是用的数据库的表的数量,以服务器启动开始 qps(Queries per second avg):select语句平均查询时间

    3、在/usr/local/etc/zabbix_agentd.conf.d目录下添加监控项配置文件get_mysql_status,内容如下:

    [root@VM_0_10_centos alertscripts]# cd /usr/local/etc/zabbix_agentd.conf.d/
    [root@VM_0_10_centos zabbix_agentd.conf.d]# ls
    [root@VM_0_10_centos zabbix_agentd.conf.d]# vi get_mysql_status
    
    UserParameter=get_mysql_status,/usr/local/share/zabbix/alertscripts/get_mysql_status.sh $1 $2 $3

    4、重启zabbix_agent和zabbix_server,使用zabbix_get测试,如下:

    # 先将进程kill
    [root@VM_0_10_centos zabbix_agentd.conf.d]# killall -9 zabbix_server
    [root@VM_0_10_centos zabbix_agentd.conf.d]# killall -9 zabbix_agentd
    # 重启
    [root@VM_0_10_centos zabbix_agentd.conf.d]# zabbix_server 
    [root@VM_0_10_centos zabbix_agentd.conf.d]# zabbix_agentd
    
    # 测试
    [root@VM_0_10_centos zabbix_agentd.conf.d]# zabbix_get -s 监控主机 -k get_mysql_status[用户名,密码,open]
    714

    5、web端添加监控项: 在主机上添加监控项:

    PS:添加item项之后就可以看到监控项

    6、添加图形

     查看图形预览:

  • 相关阅读:
    设计模式-外观模式
    发生死锁怎么办
    设计模式-工厂模式
    设计模式-模板方法
    设计模式-命令模式(Command)
    设计模式-单例模式
    设计模式-装饰器模式
    CQRS之旅——旅程8(后记:经验教训)
    CQRS之旅——旅程7(增加弹性和优化性能)
    CQRS之旅——旅程6(我们系统的版本管理)
  • 原文地址:https://www.cnblogs.com/HeiDi-BoKe/p/11907371.html
Copyright © 2020-2023  润新知