1.创建脚本存放目录,写脚本,给执行权限,改脚本存放目录的属主属组为zabbix
[root@qiaobenhuannai ~]# mkdir /script
[root@qiaobenhuannai ~]# cd /script/
[root@qiaobenhuannai script]# vim check_process.sh
#! /bin/bash
process=$(ps -ef |grep -Ev "grep|$0" |grep -c $1)
if [ $process -gt 0 ];then
echo '0'
else
echo '1'
[root@qiaobenhuannai script]# bash check_process.sh mysql
0
[root@qiaobenhuannai ~]# chown zabbix.zabbix script/check_process.sh
fi
2.改客户端配置文件agebtd.conf
[root@qiaobenhuannai ~]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1
3.重启zabbix_agent
[root@qiaobenhuannai ~]# pkill zabbix
[root@qiaobenhuannai ~]# zabbix_agentd
4.在服务端手动测试
[root@zabbix ~]# zabbix_get -s 192.168.199.174 -k check_process[mysqld]
1
显示为1表示mysql服务未启动
这里我们在客户端安装mariadb来启动mysql服务
[root@qiaobenhuannai ~]# yum -y install mariadb*
[root@qiaobenhuannai ~]# systemctl stop mariadb
5.配置网页界面,添加监控项以及触发器
6.验证
在客户端把mariadb关闭
[root@qiaobenhuannai ~]# systemctl stop mariadb
实例
一.自定义监控swap剩余空间告警
1. 创建脚本存放目录,写脚本,给执行权限同上,脚本内容如下
[root@qiaobenhuannai scripts]# ls
check_process.sh log.py swap.sh
[root@qiaobenhuannai scripts]# vim swap.sh
#!/bin/bash
swap_max=$(free -m|awk 'NR==3{print $2}')
swap=$(free -m |awk 'NR==3 {print $NF}')
free_swap=$(echo "$swap_max*0.2"|bc|awk -F. '{print $1}')
if [ $swap -lt $free_swap ];then
echo '1'
else
echo '0'
fi
2. 改客户端配置文件
[root@qiaobenhuannai ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_swap,/bin/bash /scripts/swap.sh
3. 重启服务
[root@qiaobenhuannai ~]# pkill zabbix
[root@qiaobenhuannai ~]# zabbix_agentd
4. 在服务端手动测试
[root@zabbix ~]# zabbix_get -s 192.168.199.174 -k check_swap
0
5. 配置网页界面,添加监控项以及触发器
添加触发器
6.验证
二、自定义监控日志
1. 创建脚本存放目录,写脚本,给执行权限同上
[root@qiaobenhuannai ~]# cd /scripts/
[root@qiaobenhuannai scripts]# ls
check_process.sh log.py swap.sh
2. 改客户端配置文件
[root@qiaobenhuannai ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_log[*],/usr/bin/python /scripts/log.py $1 $2 $3
3. 重启服务
[root@qiaobenhuannai ~]# pkill zabbix
[root@qiaobenhuannai ~]# zabbix_agentd
4. 在服务端手动测试
日志正常
[root@zabbix ~]# zabbix_get -s 192.168.199.174 -k check_log['/var/log/httpd/error_log','/tmp/httpdseek','Error']
0
模拟日志中发生错误
[root@qiaobenhuannai ~]# echo 'Error' >>/var/log/httpd/error_log 客户端
[root@zabbix ~]# zabbix_get -s 192.168.199.174 -k check_log['/var/log/httpd/error_log','/tmp/httpdseek','Error'] 服务端
1
5. 配置网页界面,添加监控项以及触发器
触发器
6.验证
[root@qiaobenhuannai ~]# echo 'Error' >>/var/log/httpd/error_log
三、自定义监控mysql主从
首先要搭建起主从服务,确定从库里的i/o线程和sql线程是Yes的状态
过程参照主从搭建博客
1. 创建脚本存放目录,写脚本,给执行权限同上
[root@qiaobenhuannai ~]# cd /scripts/
[root@qiaobenhuannai scripts]# ls
check_process.sh log.py swap.sh zc.sh
[root@qiaobenhuannai scripts]# vim zc.sh
#!/bin/bash
count=$(mysql -uroot -pqiaoben -e 'show slave status \G' 2>/dev/null |egrep 'Slave_IO_Running|Slave_SQL_Running:'|awk '{print $NF}'|grep 'Yes'|wc -l)
if [ $count -ne 2 ];then
echo '1'
else
echo '0'
fi
2. 改客户端配置文件
[root@qiaobenhuannai ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_zc,/bin/bash /scripts/zc.sh
3. 重启服务
[root@qiaobenhuannai ~]# pkill zabbix
[root@qiaobenhuannai ~]# zabbix_agentd
4. 在服务端手动测试
[root@zabbix ~]# zabbix_get -s 192.168.199.174 -k check_zc
0
5. 配置网页界面,添加监控项以及触发器
创建触发器
6.验证
四、自定义监控mysql主从延迟
1. 创建脚本存放目录,写脚本,给执行权限同上
[root@qiaobenhuannai ~]# cd /scripts/
[root@qiaobenhuannai scripts]# ls
check_process.sh log.py swap.sh yc.sh zc.sh
[root@qiaobenhuannai scripts]# vim yc.sh
#!/bin/bash
count=$(mysql -uroot -pqiaoben -e 'show slave status \G' 2>/dev/null |egrep 'Seconds_Behind_Master:'|awk '{print $NF}')
if [ $count -gt 0 ];then
echo '1'
else
echo '0'
fi
2. 改客户端配置文件
[root@qiaobenhuannai ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_yc,/bin/bash /scripts/yc.sh
3. 重启服务
[root@qiaobenhuannai ~]# pkill zabbix
[root@qiaobenhuannai ~]# zabbix_agentd
4. 在服务端手动测试
[root@zabbix ~]# zabbix_get -s 192.168.199.174 -k check_yc
0
5. 配置网页界面,添加监控项以及触发器
新建触发器