监控MySQL
- 监控指标
实例状态
连接数
流量
增删改查
缓冲池大小与利用率 - 步骤
- 编写监控数据采集脚本
mysql服务器
vi /etc/my.cnf ---在最前面添加以下内容,设置免密码登录
[mysql]
host=192.168.1.235
user=wp ---需要设置免密码登录的账号
password=MyNewPass4!
[mysqladmin] ---获取实例状态时用到
host=192.168.1.235
user=wp
password=MyNewPass4!
:wq
[root@zabbix ~]# echo "show variables where Variable_name='max_connections';" | mysql
Variable_name Value
max_connections 4190
[root@zabbix ~]# echo "show variables where Variable_name='max_connections';" | mysql -N
max_connections 4190
[root@zabbix ~]# echo "show variables where Variable_name='max_connections';" | mysql -N | awk '{print $2}'
4190
vi userparameter_mysql.conf
# 连接数
UserParameter=mysql.max_connections,echo "show variables where Variable_name='max_connections';" | mysql -N | awk '{print $2}'
UserParameter=mysql.current_connections,echo "show global status where Variable_name='Threads_connected';" | mysql -N | awk '{print $2}'
# 缓冲池
UserParameter=mysql.buffer_pool_size,echo "show variables where Variable_name='innodb_buffer_pool_size';" | mysql -N | awk '{printf "%.2f",$2/1024/1024/1024}'
UserParameter=mysql.buffer_pool_usage_percent,echo "show global status where Variable_name='Innodb_buffer_pool_pages_free' or Variable_name='Innodb_buffer_pool_pages_total';" | mysql -N | awk '{a[NR]=$2}END{printf "%.1f",100-((a[1]/a[2])*100)}'
# 增删改查
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | mysql -N | awk '{print $$2}' ---用在UserParameter上的话$需要在前面再加一个$表示转义
# 实例状态
UserParameter=mysql.ping,mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
:wq
mv userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
systemctl restart zabbix-agent
zabbix服务器
[root@localhost ~]# zabbix_get -s 192.168.1.235 -p 10050 -k 'mysql.status[Com_select]' ---测试连接
17
- 创建模板
剩下的3项也是用同样的方法添加进原来的模板中,剩下的触发器可以自行根据需求设置
- 将运行MySQL的主机关联模板