zoukankan      html  css  js  c++  java
  • zabbix用自带模板监控mysql

    本身zabbix-agent没有提供对mysql监控的key,所以需要自定义key来应用这个模板

    默认的模板有以下三类

    mysql.status[var]

    mysql.ping

    mysql.version

    MySQL的监控就是用show status命令查看相关的参数,取值

    在agent端编写key的监控脚本

    # vim /usr/local/zabbix/scripts/mysql.status.sh

    #!/bin/bash
    mysql=$(which mysql)
    var=$1
    MYSQL_USER=$2
    MYSQL_PASSWORD=$3
    MYSQL_HOST=$4

    [ "${MYSQL_USER}" = '' ] && MYSQL_USER=zabbix
    [ "${MYSQL_PASSWORD}" = '' ] && MYSQL_PASSWORD=123
    [ "${MYSQL_HOST}" = '' ] && MYSQL_HOST=localhost

    [ "${var}" = ' ' ] && echo ""||${mysql} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -e 'show status'|grep -v Variable_name|grep "${var}"|awk '{print $2}'

    修改权限

    # chmod 755 /usr/local/zabbix/scripts/mysql.status.sh

    测试脚本

    # /usr/local/zabbix/scripts/mysql.status.sh Uptime
    173778

    修改zabbix agent的配置文件

    # vim /usr/local/zabbix/etc/zabbix_agentd.conf

    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/      --->配置文件key的路径

    UnsafeUserParameters=1                                            ---》允许特殊字符

    增加mysql key的配置文件

    # vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql.status.conf

    UserParameter=mysql.status[*],/usr/local/zabbix/scripts/mysql.status.sh $1

    UserParameter=mysql.ping,/usr/bin/mysqladmin -uzabbix -p123 ping|grep alive|wc -l

    UserParameter=mysql.version,mysql -V|cut -f6 -d" "|sed 's/,//'

    然后测试

    # /usr/local/zabbix/sbin/zabbix_agentd -t mysql.status[Uptime]
    mysql.status[Uptime] [t|174213]

    重启agent服务

    service zabbix_agentd restart

    服务器端测试

    # /usr/local/zabbix/bin/zabbix_get -s 192.168.1.237 -k mysql.status[Uptime]
    171895

    OK,在zabbix添加mysql模板或者等待约1分钟的更新周期查看即可

    mysql SHOW STATUS 详解 

    SHOW STATUS提供服务器的状态信息(象mysqladmin extended-status一样)。输出类似于下面的显示,尽管格式和数字可以有点不同:
    下列含义:

    Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。
    Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。
    Connections 试图连接MySQL服务器的次数。
    Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。
    Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。
    Delayed_writes 用INSERT DELAYED写入的行数。
    Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。
    Flush_commands 执行FLUSH命令的次数。
    Handler_delete 请求从一张表中删除行的次数。
    Handler_read_first 请求读入表中第一行的次数。
    Handler_read_key 请求数字基于键读行。
    Handler_read_next 请求读入基于一个键的一行的次数。
    Handler_read_rnd 请求读入基于一个固定位置的一行的次数。
    Handler_update 请求更新表中一行的次数。
    Handler_write 请求向表中插入一行的次数。
    Key_blocks_used 用于关键字缓存的块的数量。
    Key_read_requests 请求从缓存读入一个键值的次数。
    Key_reads 从磁盘物理读入一个键值的次数。
    Key_write_requests 请求将一个关键字块写入缓存次数。
    Key_writes 将一个键值块物理写入磁盘的次数。
    Max_used_connections 同时使用的连接的最大数目。
    Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。
    Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。
    Open_tables 打开表的数量。
    Open_files 打开文件的数量。
    Open_streams 打开流的数量(主要用于日志记载)
    Opened_tables 已经打开的表的数量。
    Questions 发往服务器的查询的数量。
    Slow_queries 要花超过long_query_time时间的查询数量。
    Threads_connected 当前打开的连接的数量。
    Threads_running 不在睡眠的线程数量。
    Uptime 服务器工作了多少秒。

    关于上面的一些注释:

    如果Opened_tables太大,那么你的table_cache变量可能太小。
    如果key_reads太大,那么你的key_cache可能太小。缓存命中率可以用key_reads/key_read_requests计算。
    如果Handler_read_rnd太大,那么你很可能有大量的查询需要MySQL扫描整个表或你有没正确使用键值的联结(join)。
    SHOW VARIABLES显示出一些MySQL系统变量的值,你也能使用mysqladmin variables命令得到这个信息。如果缺省值不合适,你能在mysqld启动时使用命令行选项来设置这些变量的大多数。

    SHOW PROCESSLIST显示哪个线程正在运行,你也能使用mysqladmin processlist命令得到这个信息。如果你有process权限,你能看见所有的线程,否则,你仅能看见你自己的线程。见7.20 KILL句法。如果你不使用FULL选项,那么每个查询只有头100字符被显示出来。

    SHOW GRANTS FOR user列出对一个用户必须发出以重复授权的授权命令 

  • 相关阅读:
    Powershell数据处理
    Powershell About Active Directory Group Membership of a domain user
    Powershell About Active Directory Server
    Oracle Schema Objects——Tables——TableStorage
    Oracle Schema Objects——Tables——TableType
    English Grammar
    Oracle Database Documentation
    Oracle Schema Objects——Tables——Oracle Data Types
    Oracle Schema Objects——Tables——Overview of Tables
    What is Grammar?
  • 原文地址:https://www.cnblogs.com/liqing1009/p/4230620.html
Copyright © 2011-2022 走看看