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)邮件已经收到告警信息

原文地址:https://www.cnblogs.com/jenvid/p/8481416.html