- GreatSQL社区原创内容未经受权不得随便应用,转载请分割小编并注明起源。
简介
- Prometheus 一套开源的监控&报警&工夫序列数据库的组合,通常 Kubernetes 中都会配合 Prometheus 进行监控, 因为Prometheus 自带的图像不够弱小,Grafana 作为 Dashboard 配合Prometheus 作为展现。
- Grafana 也是能够间接拜访 MySQL 的Performance Schema 作为展现。
架构
通过Prometheus 采集 mysql exporter 与 node exporter ,通过 Grafana 作为展现
部署
基于docker 形式部署,本文仅作为本地测试展现
1. node_exporter 部署
- node_exporter 会采集零碎cpu ,内存, 磁盘, 网卡等应用状况,因为mysql 自身并没有采集零碎的相干配置,因而咱们能够通过node_exporter 进行关联
cd /opt/node_exporterwget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.14.0.linux-amd64.tar.gz -O node_exporter.tar.gz tar -zxf node_exporter.tar.gz
- 配置成零碎服务
cat > /etc/systemd/system/node_exporter.service << EOF[Unit]Description=node_exporterDocumentation=https://prometheus.io/After=network.target[Service]Type=simpleUser=prometheus # 零碎用户名称ExecStart=/opt/node_exporter/node_exporterRestart=on-failure[Install]WantedBy=multi-user.targetEOF
- 启动服务
systemctl enable node_exportersystemctl start node_exporter
- 查看
curl 127.0.0.1:9100/metrics
进行验证是否失效
2. mysql_exporter 部署
- mysql_exporter 通过查问 mysql 的 performance_schema 生成对应的 metric
- 数据库调配一个用户给 exporter
CREATE USER 'exporter'@'%' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 3; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%'; flush privileges;
- docker-compose.yml
version: '2.1'services: mysqld-exporter: image: prom/mysqld-exporter container_name: mysqld-exporter environment: - DATA_SOURCE_NAME=exporter:123456@(192.168.5.242:3306)/ ports: - "9104:9104" restart: "always"
启动
docker-compose up -d
- 查看是否正确启动
curl 127.0.0.1:9104/metrics
3.prometheus 部署
- prometheus 配置文件
global: scrape_interval: 15s # 默认状况下抓取指标的频率 evaluation_interval: 15s # 执行 rules 的工夫距离scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090'] - job_name: 'mysql' static_configs: - targets: ['192.168.5.242:9104'] - targets: ['192.168.5.242:9100']
- scrape_configs 次要用于配置拉取数据节点,每一个拉取配置次要蕴含以下参数:
- job_name:工作名称- honor_labels: 用于解决拉取数据标签有抵触,当设置为 true, 以拉取数据为准,否则以服务配置为准- params:数据拉取拜访时带的申请参数- scrape_interval: 拉取工夫距离- scrape_timeout: 拉取超时工夫- metrics_path: 拉取节点的 metric 门路- scheme: 拉取数据拜访协定- sample_limit: 存储的数据标签个数限度,如果超过限度,该数据将被疏忽,不入存储;默认值为0,示意没有限度- relabel_configs: 拉取数据重置标签配置- metric_relabel_configs:metric 重置标签配置
- prometheus 容器启动 docker-compose up -d
version: '3'services: prometheus: user: "root" container_name: prometheus image: prom/prometheus:v2.2.1 command: - --log.level=error - --storage.tsdb.path=/data/prometheus - --config.file=/etc/prometheus/prometheus.yml ports: - "9090:9090" volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml:ro - ./data:/data restart: on-failure
- 通过查看 127.0.0.1:9090/targets 查看是否在
4. Grafana 部署
- rafana 的 docker-compose.yml
version: '3'services: grafana: user: "0" container_name: grafana image: grafana/grafana:6.0.1 environment: GF_LOG_LEVEL: info GF_PATHS_PROVISIONING: /etc/grafana/provisioning GF_PATHS_CONFIG: /etc/grafana/grafana.ini volumes: - ./data/grafana:/var/lib/grafana ports: - "3000:3000" restart: on-failure
- 通过页面进入并且配置 prometheus 作为数据源
- 抉择导入模板
- 能够导入 https://grafana.com/grafana/d... percona 提供的模板, 也能够间接抉择id ,grafana 将会依据id 下载模板
- 模板中系统配置 是依据hosts 来聚合数据,因为是间接应用的 node_exporter 作为采集零碎的配置, 则没有这个System Charts,
- 最简略的形式就是 Queries 批改 instance 的hosts 间接替换成 '192.168.5.242:9100' node_exporter 的名称
这样一个根底的监控平台就搭建实现了。
参考:
- https://prometheus.io/docs/in...
- https://github.com/percona/gr...
Enjoy GreatSQL :)
文章举荐:
GreatSQL MGR FAQ
https://mp.weixin.qq.com/s/J6...
万答#12,MGR整个集群挂掉后,如何能力主动选主,不必手动干涉
https://mp.weixin.qq.com/s/07...
『2021数据技术嘉年华·ON LINE』:《MySQL高可用架构演进及实际》
https://mp.weixin.qq.com/s/u7...
一条sql语句慢在哪之抓包剖析
https://mp.weixin.qq.com/s/AY...
万答#15,都有哪些状况可能导致MGR服务无奈启动
https://mp.weixin.qq.com/s/in...
技术分享 | 为什么MGR一致性模式不举荐AFTER
https://mp.weixin.qq.com/s/rN...
对于 GreatSQL
GreatSQL是由万里数据库保护的MySQL分支,专一于晋升MGR可靠性及性能,反对InnoDB并行查问个性,是实用于金融级利用的MySQL分支版本。
Gitee:
https://gitee.com/GreatSQL/Gr...
GitHub:
https://github.com/GreatSQL/G...
Bilibili:
https://space.bilibili.com/13...
微信&QQ群:
可搜寻增加GreatSQL社区助手微信好友,发送验证信息“加群”退出GreatSQL/MGR交换微信群
QQ群:533341697
微信小助手:wanlidbc
本文由博客一文多发平台 OpenWrite 公布!