zoukankan      html  css  js  c++  java
  • mysql小白系列_08 zabbix添加自定义监控项items和触发器

    监控mysql存活

    1.配置agent自定义参数
    vi /usr/local/zabbix/etc/zabbix_agentd.conf
    Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
    cd /usr/local/zabbix/etc/zabbix_agentd.conf.d
    vi userparameter.conf
    UserParameter=mysql.check_mysql_status,sh /usr/local/zabbix/etc/shell/check_mysql_status.sh
    mkdir /usr/local/zabbix/etc/shell
    cd /usr/local/zabbix/etc/shell
    vi check_mysql_status.sh
    

    shell脚本内容:

    #!/bin/bash
    host=localhost
    username=zabbix
    password=zabbix
    port=306
    MYSQL='/data/my3306/bin/mysql'
    SOCKET='/data/my3306/run/mysql.sock'
    CHECK_TIME=3
    #mysql  is working MYSQL_IS_OK is 1 , mysql down MYSQL_IS_OK is 0
    MYSQL_IS_OK=1
    function check_mysql_status (){
        $MYSQL -u$username -p"$password" -P$port --socket="$SOCKET" -e "select user();" > /dev/null 2>&1
        if [ $? = 0 ] ;then
        MYSQL_IS_OK=1
        else
        MYSQL_IS_OK=0
        fi
        return $MYSQL_IS_OK 
    }
    while [ $CHECK_TIME -ne 0 ]
    do
        let "CHECK_TIME -= 1"
        
        check_mysql_status
    if [ $MYSQL_IS_OK = 1 ] ; then
        CHECK_TIME=0
        echo 0
        exit 0
    fi
    if [ $MYSQL_IS_OK -eq 0 ] &&  [ $CHECK_TIME -eq 0 ]
    then
        echo 1
        exit 1
    fi
    sleep 3
    done
    

    另外的配置方法:

    # UnsafeUserParameters=0 改为  UnsafeUserParameters=1  
    # UserParameter=  在下面直接添加用户参数
    UserParameter=<key>,<shell command>
    key:服务器添加监控时需用到的key值
    shell command:监控脚本的绝对路径
    
    2.server端用get命令测试key值
    [root@mysql01 zabbix_agentd.conf.d]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k mysql.check_mysql_status
    0
    
    3.web上添加监控项
    (1)先创建单独模板

    Configuration - Templates -Create template
    Template name: 模板名称
    Groups: 需要加进一个组,或者新建组

    (2)在模板里添加items值

    key值必须是在userparameter.conf里面定义的
    (3)添加trigger触发器

    脚本里正常是0,如果为1则触发动作
    (4)再次测试发现超时

    /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k mysql.check_mysql_status
    ZBX_NOTSUPPORTED: Timeout while executing a shell script
    /usr/local/zabbix/etc/zabbix_server.conf和zabbix_agentd.config
    Timeout=30
    

    修改后正常

    [root@mysql01 etc]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k mysql.check_mysql_status
    1
    

    (5)添加action动作

    (6)用户下添加收件地址

    (7)添加media里面的邮件服务器

    (8)邮件已经收到告警信息

  • 相关阅读:
    谷歌浏览器设置跨域失败
    Validation of viewstate MAC failed 解决办法--zt
    如何查看Oracle客户端版本及位数(Windows系统)(转)
    程序员集锦
    如何最快速地适应新的工作
    Oracle 03113
    Shell中字符串、数值的比较
    K8S客户端安装及使用
    kubectl的使用
    Helm 入门指南
  • 原文地址:https://www.cnblogs.com/jenvid/p/8481416.html
Copyright © 2011-2022 走看看