zabbix--监控MySQL性能
2024-09-01 20:22:48
Zabbix 自带模板监控 MySQL 性能
通过自带的 Template DB MySQL 模板监控 MySQL 性能
具体步骤:
1)创建脚本存放目录并编辑脚本
# mkdir /etc/zabbix/script
# vim /etc/zabbix/script/mysql_status.sh //编辑脚本
#!/bin/bash
#Desc:zabbix 监控 MySQL 状态
#Date:--
#by:Lee-YJ #主机
HOST="localhost"
#用户
USER="root"
#密码
PASSWORD="IjRMv3l6TQIEjvb9nIX5"
#端口
PORT=""
#MySQL连接
CONNECTION="mysqladmin -h ${HOST} -u ${USER} -P ${PORT} -p${PASSWORD}" if [ $# -ne "" ];then
echo "arg error!"
fi case $ in
Uptime)
result=`${CONNECTION} status >/dev/null |awk '{print $2}'`
echo $result
;;
Questions)
result=`${CONNECTION} status >/dev/null |awk '{print $6}'`
echo $result
;;
Com_update)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Com_update" |awk '{print $4}'`
echo $result
;;
Slow_queries)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Slow_queries" |awk '{print $4}'`
echo $result
;;
Com_select)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Com_select" |awk '{print $4}'`
echo $result
;;
Com_rollback)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Com_rollback" |awk '{print $4}'`
echo $result
;;
Com_insert)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Com_insert" |awk '{print $4}'`
echo $result
;;
Com_delete)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Com_delete" |awk '{print $4}'`
echo $result
;;
Com_commit)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Com_commit" |awk '{print $4}'`
echo $result
;;
Bytes_sent)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Bytes_sent" |awk '{print $4}'`
echo $result
;;
Bytes_received)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Bytes_received" |awk '{print $4}'`
echo $result
;;
Com_begin)
result=`${CONNECTION} extended-status >/dev/null |grep -w "Com_begin" |awk '{print $4}'`
echo $result
;;*)
echo "Usage:$0(Uptime|Questions|Com_update|Slow_queries|Com_select|Com_rollback|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
# chmod +x /etc/zabbix/script/mysql_status.sh //给脚本赋予执行权限
2)修改zabbix-agent配置文件,默认有一个MySQL的子配置文件,直接编辑该文件即可
# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
#获取MySQL性能指标,这个是上一步编辑好的脚本
UserParameter=mysql.status[*],/etc/zabbix/script/mysql_status.sh $
#获取MySQL运行状态
UserParameter=mysql.ping,mysqladmin -u root -h localhost -pIjRMv3l6TQIEjvb9nIX5 ping >/dev/null | grep -c alive
#获取MySQL版本
UserParameter=mysql.version,mysql -V
3)重启 zabbix-agent
# service zabbix-agent restart
4)Web界面配置、点击需要配置的主机,进去添加链接模板,自带的Template DB MySQL
5)配置完成后等一会儿就可以查看到监控主机的MySQL监控信息
查看监控主机的 MySQL bandwidth 图形
查看监控主机的 MySQL operations 图形
说明:如果发现监控没有数据,请排查如下问题
1. zabbix客户端是否重启
2. 脚本是否有执行权限
3. 数据库是否有权限
4. 环境变量是否有问题
附 agent 端自动配置脚本
#!/bin/bash
#Desc:自动部署zabbix 监控 MySQL 状态 agent端 说明执行改脚本需要传入主机、用户名、密码、端口信息。
#Date:--
#by:Lee-YJ #MySQL连接信息
function MySQLInfo {
read -p "主机:" HOST
read -p "用户:" USER
read -p "密码:" PASSWORD
read -p "端口:" PORT
} #创建mysql_status脚本
function MySQLScript {
cat >>/etc/zabbix/script/mysql_status.sh<<EOF
#!/bin/bash
#Desc:zabbix 监控 MySQL 状态
#Date:--
#by:Lee-YJ #主机
HOST=$HOST
#用户
USER=$USER
#密码
PASSWORD=$PASSWORD
#端口
PORT=$PORT
#MySQL连接
CONNECTION="mysqladmin -h ${HOST} -u ${USER} -P ${PORT} -p${PASSWORD}" if [ \$# -ne "" ];then
echo "arg error!"
fi case \$ in
Uptime)
result=\`\${CONNECTION} status >/dev/null |awk '{print \$2}'\`
echo \$result
;;
Questions)
result=\`\${CONNECTION} status >/dev/null |awk '{print \$6}'\`
echo \$result
;;
Com_update)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Com_update" |awk '{print \$4}'\`
echo \$result
;;
Slow_queries)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Slow_queries" |awk '{print \$4}'\`
echo \$result
;;
Com_select)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Com_select" |awk '{print \$4}'\`
echo \$result
;;
Com_rollback)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Com_rollback" |awk '{print \$4}'\`
echo \$result
;;
Com_insert)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Com_insert" |awk '{print \$4}'\`
echo \$result
;;
Com_delete)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Com_delete" |awk '{print \$4}'\`
echo \$result
;;
Com_commit)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Com_commit" |awk '{print \$4}'\`
echo \$result
;;
Bytes_sent)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Bytes_sent" |awk '{print \$4}'\`
echo \$result
;;
Bytes_received)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Bytes_received" |awk '{print \$4}'\`
echo \$result
;;
Com_begin)
result=\`\${CONNECTION} extended-status >/dev/null |grep -w "Com_begin" |awk '{print \$4}'\`
echo \$result
;;
*)
echo "Usage:\$0(Uptime|Questions|Com_update|Slow_queries|Com_select|Com_rollback|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
EOF
chmod +x /etc/zabbix/script/mysql_status.sh
} #配置agent mysql配置文件
function Config {
cp /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf{,back}
cat >/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf<<EOF
# 获取MySQL性能指标,这个是上一步编辑好的脚本
UserParameter=mysql.status[*],/etc/zabbix/script/mysql_status.sh \$
# 获取MySQL运行状态
UserParameter=mysql.ping,mysqladmin -u $USER -h $HOST -p$PASSWORD ping >/dev/null | grep -c alive
# 获取MySQL版本
UserParameter=mysql.version,mysql -V
EOF
} function main {
#创建脚本存放路径
mkdir /etc/zabbix/script
MySQLInfo
MySQLScript
Config
#重启zabbix-agent
service zabbix-agent restart
} main
auto_config_agent.sh
最新文章
- CRL2.3(ORM开发框架)源码github发布
- 转载:TypeScript 简介与《TypeScript 中文入门教程》
- css3 FlexBox 弹性布局
- WebForm——IIS服务器、开发方式和简单基础
- Android菜鸟成长记10 -- ListVew
- [UDP] UDP 报文数据(CoAP protocol)
- 谁是最好的Coder
- HDU 1280 前m大的数【哈希入门】
- (转载)关于gcd的8题
- SimpleHttpServer的学习之总体架构
- VC判断当前用户有无Administrator的权限(用EqualSid API函数判断与Admin是否在一个组的Sid)
- java学习之线程
- 10.11 noip模拟试题
- POJ 3180 The Cow Prom(强联通)
- Android远程桌面助手
- vim置于后台,vim 编辑多文件
- vs2017 +CUDA 9.0配置
- Python list和 np.Array 的转换关系
- test png
- shell delete with line number