本篇基于我的上一篇文章环境续写:【zabbix】docker安装zabbix、yum安装zabbix-agent_山水不相逢的博客-CSDN博客
准备工作:
一、服务器向配置,Zabbix监控mysq准备
1、MySQL创建测试用户zabbix并设置密码
create user zabbix identified by 'zabbix';
grant all privileges on *.* to 'zabbix'@'%';
flush privileges;
2、判断链接存活
[root@k8s-node2 zabbix]# mysqladmin -uzabbix -pzabbix -h172.34.111.147 ping
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqld is alive
出现mysqld is alive表示正常
3、在/etc/zabbix/目录手动创建.my.cnf文件并配置如下,
查看ls -a .my.cnf隐藏的文件命令
[mysql]
host=172.34.111.147
user=zabbix
password=zabbix
socket=/usr/local/src/mysql/mysql.sock
[mysqladmin]
host=172.34.111.147
user=zabbix
password=zabbix
socket=/usr/local/src/mysql/mysql.sock
4、接下来判断连接存活的方式会变成以下方式
HOME=/etc/zabbix/ mysqladmin ping
5、创建自定义键mysql.ping
在/etc/zabbix/zabbix_agentd.d目录创建测试文件vim mysqlinfo.conf,加入测试内容
UserParameter=mysql.ping, HOME=/etc/zabbix/ mysqladmin ping | grep -c alive
测试成功如下:
[root@k8s-node2 zabbix_agentd.d]# vim mysqlinfo.conf
[root@k8s-node2 zabbix_agentd.d]# zabbix_agentd -c mysqlinfo.conf -t mysql.ping
mysql.ping [t|1]
重启客户端systemctl restart zabbix_agent,并在服务端获取值
[root@k8s-node2 zabbix_agentd.d]# zabbix_get -s 172.34.111.147 -p 10050 -k mysql.ping
1
[root@k8s-node2 zabbix_agentd.d]#
6、测试完毕,准备上脚本
创建并编辑文件的自定义 zabbix key,userparameter_mysql.conf内的这行配置很重要,关系到后面web页面的监控项
UserParameter=mysql.status[*], HOME=/etc/zabbix/ sh /etc/zabbix/zabbix_agentd.d/check_mysql.sh $1
7、脚本内容,这里面的内容后期看需求再扩展添加:
#!/bin/bash
# 用户名
MYSQL_USER='zabbix'
# 密码
MYSQL_PWD='zabbix'
# 主机地址/IP
MYSQL_HOST='172.34.111.147'
# 端口
MYSQL_PORT='3306'
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
# 参数是否正确
if [ $# -ne "1" ];then
echo "arg error!"
fi
# 获取数据
case $1 in
Uptime)
result=`${MYSQL_CONN} status 2>/dev/null |cut -f2 -d":"|cut -f1 -d"T"`
echo $result
;;
Com_update)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status 2>/dev/null |cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`${MYSQL_CONN} status 2>/dev/null |cut -f4 -d":"|cut -f1 -d"S"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status 2>/dev/null |grep -w "Com_begin"|cut -d"|" -f3`
echo $result
;;
*)
echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
二、WEB向配置,配置模板(监控项、图形)
1、创建模板
2、创建应用集
3、创建监控项
4、创建图形
5、查看图形是否有数据
5、剩下的看自己想配什么,配置上就行了
6、这里说一下,监控项的键值,可以回头看上面的脚本,也就是中括号中的值对应脚本中的选项
补充:
Com_update:mysql执行的更新个数
Com_select:mysql执行的查询个数
Com_insert:mysql执行插入的个数
Com_delete:执行删除的个数
Com_rollback:执行回滚的操作个数
Bytes_received:接受的字节数
Bytes_sent:发送的字节数
Slow_queries:慢查询语句的个数
本篇结束,有需求可以移步我的下一篇文章