当前位置: 首页 > wzjs >正文

翻墙国外网站做兼职设计排版网站

翻墙国外网站做兼职,设计排版网站,wordpress域名搬家,标准化班组建设网站# 自定义 Prometheus Exporter 实现多 RDS 数据采集## 背景1. Prometheus 官网提供的 MySQL Exporter 对于 MySQL 实例只能一个进程监控一个实例,数据库实例很多的情况下,不方便管理。 2. 内部有定制化监控需求,RDS 默认无法实现,…
# 自定义 Prometheus Exporter 实现多 RDS 数据采集## 背景1. Prometheus 官网提供的 MySQL Exporter 对于 MySQL 实例只能一个进程监控一个实例,数据库实例很多的情况下,不方便管理。
2. 内部有定制化监控需求,RDS 默认无法实现,比如对数据库增长的监控。
3. 默认 Prometheus 官网提供的 MySQL Exporter 采集 MySQL 几乎所有的指标,但实际用到的却不多,浪费存储空间。## 思路> 先了解对于数据库的监控需求:- 一个 Exporter 可以采集所有 RDS 实例数据。
- RDS 实例采集指标不用全部采集,按需即可。
- 定制化需求:- 数据库磁盘使用率,默认 MySQL 的 status/variables 中没有该指标。- 统计数据库、表的总大小(数据大小+索引大小)。### 针对第一个需求之前在使用 Prometheus 监控 Redis 的时候,有个 Exporter 实现了可以同时监控多个实例的情况,大概的思路是:把实例名称或者地址作为 target 参数传递给一个 URL,这个 URL 就是一个 Exporter,然后根据传递的不同 `target` 采集相同指标。### 针对第二个需求做过监控的人都知道 MySQL 的监控指标其实都是采集的 `show global status` 和 `show global variables` 的结果然后做相关汇总或者计算。所以我们很容易就可以通过这两个 SQL 的结果帅选出需要的选项保存在一个配置文件,采集的时候读取该配置文件选项,按需采集即可。### 针对第三个需求数据库磁盘使用率 / 统计数据库、表的总大小都不是从 status/variables 能获取到的。所以了解 Prometheus 架构的就知道,可以使用 Pushgateway 来实现。## 自定义 Exporter 介绍```bash
cws-mysql-exporter
├── aliyunapi.py
├── config.py
├── generate-instance-yml.py
├── instance.yml
├── metrics.yml
├── utils.py
├── pushgateway.py
├── push_cron_dbsize.py
├── push_cron_rds_cpumemiops.py
└── rds-exporter.py
  • aliyunapi.py 是封装的阿里云相关的 API 接口,因为磁盘和 CPU 只能从阿里云获取,它和主机有关系。
  • config.py 里面定义阿里云 API 的 ak/sk,以及 Exporter 连接数据库用到的账号和密码,这个账号密码是所有实例共用的。
  • generate-instance-yml.py 这个是首次需要执行的脚本,生成 instance.yml 配置文件,主要是获取所有 RDS 的实例名称和连接地址,及 instance_id(因为有些接口入参必须是 instance_id)。
rds-xxxx:host: rm-xxxxxx.mysql.rds.aliyuncs.comid: rm-xxxxxxrds-yyyyy:host: rm-yyyyy.mysql.rds.aliyuncs.comid: rm-yyyyy
  • metrics.yml 是需要采集的监控指标,分 variablesstatus,格式如下:
variables:max_connections: ""max_user_connections: ""... ...
status:Aborted_connects: ""Aborted_clients: ""... ...
  • utils.py 是封装的公共函数。
  • pushgateway.py 是封装的需要推送的 Pushgateway 的监控指标。
  • push_cron_dbsize.pypush_cron_rds_cpumemiops.py 是包装的不同维度需要推送到 Pushgateway 的脚本,最终需要在 crontab 中定时去执行。
  • rds-exporter.py 是 Exporter 的入口,这里借助了 Flask 来运行 server。

Exporter 开源地址详见: 自定义 Exporter 实现多 RDS 数据采集

启动 rds-exporter,默认端口在 5005。

Prometheus 及组件安装

这里介绍简单的安装和配置,具体的 Prometheus 及其架构介绍网上有很多资料,大家自行查阅即可。

1. 安装 Prometheus

#!/usr/bin/env bash
# encoding: utf-8
# Author: Eagle
# Desc: 自动化安装 Prometheus
# version="2.36.1"
if [ $# -eq 1 ]
thenversion="$1"
fiecho "Will install prometheus ${version} version"# download
wget "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-${version}.linux-amd64.tar.gz"# untar and set link
tar -zxf prometheus-${version}.linux-amd64.tar.gz -C /opt/app
ln -s /opt/app/prometheus-${version}.linux-amd64 /opt/app/prometheus

2. 安装 Pushgateway

#!/usr/bin/env bash
# encoding: utf-8
# Author: Eagle
# Desc: 自动化安装 Prometheus Pushgateway 
# version="1.4.3"
if [ $# -eq 1 ]
thenversion="$1"
fiecho "Will install prometheus pushgatewa ${version} version"
wget "https://github.com/prometheus/pushgateway/releases/download/v${version}/pushgateway-${version}.linux-amd64.tar.gz"# untar and set link
tar -zxf pushgateway-${version}.linux-amd64.tar.gz -C /opt/app
ln -s /opt/app/pushgateway-${version}.linux-amd64 /opt/app/pushgateway

3. 启动 Pushgateway

配置 systemd service,文件位置 /usr/lib/systemd/system/pushgateway.service

Description=Prometheus Pushgateway Service
Requires=network-online.target
After=network-online.target[Service]
Restart=on-failure
ExecStart=/opt/app/pushgateway/bin/pushgateway[Install]
WantedBy=multi-user.target
  • 配置开启自启动 systemctl enable pushgateway
  • 启动/停止/重启 systemctl start/stop/restart pushgateway

Pushgateway 不需要额外的配置,默认是在 9091 端口。

4. 配置 Prometheus 并启动

配置 systemd service,文件位置 /usr/lib/systemd/system/prometheus.service

Description=Prometheus Server
Requires=network-online.target
After=network-online.target[Service]
Restart=on-failure
ExecStart=/opt/app/prometheus/bin/prometheus --config.file=/opt/app/prometheus/prometheus.yml --storage.tsdb.retention=60d --web.enable-lifecycle --web.enable-admin-api --storage.tsdb.path=/data/prometheus-data[Install]
WantedBy=multi-user.target

注意提前创建 Prometheus 数据目录。

  • 配置开启自启动 systemctl enable prometheus
  • 启动/停止/重启 systemctl start/stop/restart prometheus

配置 Prometheus

# 这里是全局变量的配置
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# 这里是配置 alertmanager, Prometheus会根据 rules 规则把告警信息发送给 alertmanager 组件,alertmanager 负责实际告警信息的发送
alerting:alertmanagers:- static_configs:- targets: ['192.168.xx.yyy:9093']# 这里是配置告警规则,本次不是讲解重点先忽略
# rule_files:
#   - "rules/rds_rules.yml"# 配置Prometheus从那些 endpoint 或者叫 exporter 采集监控数据
scrape_configs:# 默认监控 Prometheus服务本身- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]labels:instance: prometheus# 自定义的mysql targets ,这里的targets是通过直接配置的方式# 另外还有通过文件的方式、通过consul等自动发现的方式,# 这两种方式这里不展开介绍,感兴趣的关注后续文章- job_name: 'mysql_targets'scrape_interval: 60sscrape_timeout: 12smetrics_path: /scrapestatic_configs:- targets:- rds-xxx- rds-yyy# relabel_configs 是通过label重写实现我们最终需要的标签# 另外这里是通过重写target,重新定义了 endpoint 地址relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.3.108:5005# pushgateway - job_name: 'pushgateway'scrape_interval: 60sstatic_configs:- targets:- 192.168.3.108:9091# 这里是对自定义的 mysql-exporter 做监控- job_name: 'rds-exporter'scrape_interval: 60sstatic_configs:- targets:- 192.168.3.108:5005

重启 Prometheus 或者执行 reload 操作 curl -XPUT http://192.168.3.108:9090/-/reload 使配置生效。

最终在 Prometheus 的 WebUI 界面的 Status -> Targets 里面看到如下:

Prometheus MySQL Targets


Grafana 配置 MySQL 监控大盘

具体的 Grafana 安装和配置请参考教程 或者网上自动查阅。

打开 Grafana 界面进行 Dashboard 的导入,如下图所示:

Grafana Import Dashboard

点击左侧 + 选择 import,然后通过三种不同的方式导入 Dashboard 模板:

  1. 在 Grafana 官网找到合适的模板之后,记住 ID,输入该 ID 然后点击 Load。
  2. 通过右上角的 Upload .json file 上传本地的模板 JSON 文件。
  3. 直接把本地的模板 JSON 文件内容 copy 到 Or paste JSON 下方的框中即可。

这里提供自定义的模板 JSON 文件 下载地址

最终的效果如下:

Aliyun RDS Grafana Dashboard


文章转载自:

http://9m8jPcQe.drfcj.cn
http://w1RGHZK4.drfcj.cn
http://wSzWZmCX.drfcj.cn
http://yszZrCzP.drfcj.cn
http://9HVjN04l.drfcj.cn
http://LzHZ4Vy8.drfcj.cn
http://ogMnkUHN.drfcj.cn
http://aFM5D3WH.drfcj.cn
http://fouDvE9C.drfcj.cn
http://HhnFHHFv.drfcj.cn
http://Mkz1qQuW.drfcj.cn
http://SQWtGs6Y.drfcj.cn
http://zK1ynRK0.drfcj.cn
http://WEz5SLCd.drfcj.cn
http://TjcYb45A.drfcj.cn
http://xCUXB4in.drfcj.cn
http://WvnIVxZb.drfcj.cn
http://vh4TthMZ.drfcj.cn
http://CMd7WiZ9.drfcj.cn
http://ngachJ9y.drfcj.cn
http://xKuDsxRM.drfcj.cn
http://ZTaOTiG2.drfcj.cn
http://LyY5BVNz.drfcj.cn
http://52HO6cGO.drfcj.cn
http://fapflXNE.drfcj.cn
http://KzNjuLUt.drfcj.cn
http://cEGCd97h.drfcj.cn
http://bw3j6LfT.drfcj.cn
http://L5nJYXkK.drfcj.cn
http://ITtsQzHR.drfcj.cn
http://www.dtcms.com/wzjs/732635.html

相关文章:

  • 个人网站有哪些类型网站建设验收报告范本
  • 怎么建立一个自己的网站重庆哪里可以做公司网站
  • 招聘网站是做什麼的蜂鸟影院高清免费观看
  • 南磨房做网站公司wordpress 搬家出错
  • 网站开发调研报告做企业官网哪家公司好
  • 山东省建设厅网站中国最新军事新闻最新消息2023
  • 遵义网站建设有限公司网站建设的风险识别
  • 大庆金思维科技网站开发有没有好的做海报的网站
  • 厦门湖里区建设局网站外贸网站模板设计
  • 水贝做网站公司苏州网站建设设计制作公司怎么样
  • 旅游网站建设的目标是什么wordpress美化主题下载
  • 肇庆市住房和城乡建设部网站网站建设专业用语
  • 网站建设客户说没用中国建设会计网站
  • 兰州做网站企业金色网站模板
  • 营销型网站建设公司提供网站建设网站导航设计欣赏
  • vr成品网站源码在线观看中国建设银行人才招聘官方网站
  • 网站建设语言都有什么软件国网电子商务平台官网
  • 软件设计工作室网站wordpress建站费用
  • 莞城微信网站建设网站举报在哪举报
  • 大学生网站作品c网站开发
  • c语言 做网站网站开发工程师就业形势
  • 南通市规划建设局网站wordpress评论删除
  • 某网站开发项目成本估计拼多多app官方下载
  • seo网站怎么做网站建站网站设计公司
  • 网站建设做微营销网页设计代码大全
  • 网站建设教学后记免费建社交网站
  • 网站建设公司推荐乐云seo竞价网站和优化网站的区别
  • 照片分享网站模板下载门户网站建设投入
  • 天津做宠物饲料的网站嵌入式开发难学吗
  • 云vps怎么搭建网站让wordpress自检