34. MySQL 监控
1. 如何选择监控方案⚓
1.1 监控方式⚓
- 自己写程序或脚本进行监控;
适用于机器很少的情况。随着越发细化,基本无法满足业务需求,脚本后期维护成本很大。
- 采用商业解决方案
优点是短时间内搭建一套监控平台,展现方式美观;缺点是成本高,可能无法扩展等
- 开源软件方案
优势:免费、定制能力强、完全可控、集中化管理、可视性好;缺点:可能需要花费大量的时间阅读文档等。
1.2 如何选择监控工具⚓
出于成本考虑,选择使用开源软件。在软件选型时需要选择的监控系统软件具备以下几项功能:
- 必须具有对主机的监控。包括CPU、内存、网络、整体负载、相关进程数的监控等。
- 必须具有对数据库的监控。主要是数据库自身的性能指标进行监控,比如缓冲池命中率、查询的命中率等。
- 要做到监控的实时性,具有触发警报的功能。当在主机或数据库异常时,要第一时间进行短信、邮件报警等。
- 在数据的表现形式上,需要有良好的图形展示功能。数据库异常时,数据库管理员能根据监控系统中异常时刻的趋势图迅速定位到故障的产生原因。
- 协议支持方面,监控系统客户端需要支持现有协议,如IPMI、SNMP等。
- 数据存储方面,要充分了解监控系统监控数据的存取,包括以文件的形式存储、数据库形式存储等,在部署监控系统时提前对数据进行规划。
- 监控系统的部署和配置复杂度、界面友好性以及对中文的支持。
常见的开源监控系统:Nagios、Cacti、Zabbix、Ganglia等。
1.3 开源软件比较⚓
- Cacti:在监控方面有良好的绘图功能,在流量和图形塑造上强于Nagios;但在故障分析上略逊,报警机制有待完善。
- Nagios:适合监控大量服务器上的大批服务是否正常。
- Zabbix:开源;对Server的设备性能要求低,支持设备多,支持分布式集中管理,开放式接口,扩展性强,第三方数据库Fromdual定制了对数据库的监控。缺点是数据量太大时,对于数据库的清理不太方便
主要采用两种方案对数据库主机进行监控:
- Zabbix + Fromdual
- Nagios + Cacti + percona-monitor-plugin
2. zabbix部署⚓
角色 | IP/Host-name | OS |
---|---|---|
zabbix server | 192.168.1.6/sink | kali 2019.2 |
zabbix agent | 192.168.1.11/centos7 | centos7.6 |
关闭防火墙。
2.1 zabbix server⚓
也要安装zabbix agent。
apt-get install -y zabbix-server-mysql zabbix-frontend-php
zabbix server 数据库配置:
# mysql 版本:10.3.15-MariaDB-1 Debian 10
mysql> CREATE SCHEMA zabbix CHARACTER SET utf8;
mysql> CREATE USER zabbix IDENTIFIED BY 'zabbix';
mysql> GRANT ALL ON zabbix.* TO 'zabbix'@'%';
mysql> FLUSH PRIVILEGES;
初始化数据库(与zabbix server部署在同一台服务器):
# 找到zabbix server的sql文件
$ cd /usr/share/zabbix-server-mysql
$ ls
data.sql.gz images.sql.gz schema.sql.gz
$ gzip -d schema.sql.bz
$ mysql -S /run/mysqld/mysqld.sock zabbix < schema.sql
$ gzip -d images.sql.bz
$ mysql -S /run/mysqld/mysqld.sock zabbix < images.sql
$ gzip -d data.sql.bz
$ mysql -S /run/mysqld/mysqld.sock zabbix < data.sql
修改zabbix server配置文件
$ vi /etc/zabbix/zabbix_server.conf
# 修改以下几项
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/run/mysqld/mysqld.sock
Fpinglocation=/usr/bin/fping
开启服务
$ systemctl start zabbix-server
2.2 zabbix web⚓
apt-get install -y zabbix-frontend-php
前端配置文件:
$ cp /etc/apache2/conf-available/zabbix-frontend-php.conf /etc/apache2/conf-enabled/
# 修改端口号,启动apache2
$ vi /etc/apache2/ports.conf
Listen 8081
$ systemctl restart apache2
此时访问http://192.168.1.6:8081/zabbix
页面即可进入web配置界面,接下来按照提示做即可。安装完成之后登录的默认的 用户名/密码 为 Admin/zabbix
。
2.3 zabbix agent⚓
yum install -y zabbix40-agent.x86_64
修改配置文件:
$ vi /etc/zabbix_agentd.conf
Server=192.168.1.6
ServerActive=192.168.1.6
Hostname=sink
启动
$ systemctl start zabbix-agent