前言:
此时小伙伴们对“mysql集群监控”大约比较看重,我们都想要知道一些“mysql集群监控”的相关文章。那么小编同时在网上网罗了一些对于“mysql集群监控””的相关资讯,希望我们能喜欢,兄弟们快快来学习一下吧!Prometheus联邦集群
通过Remote Storage可以分离监控样本采集和数据存储,解决Prometheus的持久化问题。
接下来,我们讨论如何利用联邦集群对Prometheus进行扩展,以适应不同规模的架构。
对于大部分监控规模而言,我们只需要在每一个数据中心(例如:EC2可用区,Kubernetes集群)安装一个Prometheus Server实例,就可以在各个数据中心处理上千规模的集群。
但是,一台Prometheus Server实例的性能终归有限,这个时候,我们就希望通过功能划分,有专门收集Node_exporter的,有专门收集mysql的,有专门收集jenkins的,最后有一个汇总的Prometheus Server实例,汇总上面各个Prometheus的数据。
如上图所示,在每个数据中心部署单独的Prometheus Server,用于采集当前数据中心的监控数据。它是由一个中心的Prometheus Server负责聚合多个数据中心的监控数据。这一特性在Promthues中称为联邦集群。
联邦集群的核心在于每一个Prometheus Server都包含一个用于获取当前实例中监控样本的接口/federate。对于市中心Prometheus Server而言,无论是从其他的Prometheus实例还是Exporter实例中获取数据实际上并没有任何差异。
Prometheus联邦集群的实验
环境介绍:
在一台虚拟机上面启动3个Prometheus Server实例
P1实例: 端口9081,收集node_exporter数据
P2实例: 端口9082,P2收集mysql/jenkins数据
P3实例: 端口: 9083,收集P1和P2的数据,其中只收集node_exporter和mysql数据
这里Jenkins数据我们选择性的不收集。
1.创建Prometheus数据目录mkdir /data1 /data2 /data3chown prometheus:prometheus /data1chown prometheus:prometheus /data2chown prometheus:prometheus /data32.准备Prometheus配置文件# vi /etc/prometheus/prometheus1.ymlglobal: 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).scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' static_configs: - targets: ['localhost:9081'] - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['localhost:9100'] labels: name: node_exporter-------------------------------------------------------------# vi /etc/prometheus/prometheus2.ymlglobal: 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).scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' static_configs: static_configs: - targets: ['localhost:9082'] - job_name: 'mysql' # 静态添加node static_configs: # 指定监控端 - targets: ['localhost:9104'] labels: name: mysql - job_name: "jenkins-plugin" metrics_path: "/prometheus/" scheme: http bearer_token: bearer_token static_configs: - targets: ['192.168.0.107:8080'] labels: name: jenkins-plugin -------------------------------------------------------------# vi /etc/prometheus/prometheus3.ymlglobal: 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).scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' static_configs: static_configs: - targets: ['localhost:9083'] - job_name: 'federate' scrape_interval: 15s honor_labels: true metrics_path: '/federate' params: 'match[]': - '{job="prometheus"}' - '{__name__=~"node.*"}' - '{__name__=~"mysql.*"}' static_configs: - targets: - '192.168.0.107:9081' - '192.168.0.107:9082'注意: match[]这里 - '{__name__=~"node.*"}' 是指P3收集P1中node开头的监控指标,- '{__name__=~"mysql.*"}' 是指P3收集P1中mysql开头的监控指标。-------------------------------------------------------------3.启动3个Prometheus Server实例# /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus1.yml --web.listen-address="0.0.0.0:9081" --storage.tsdb.path /data1# /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus2.yml --web.listen-address="0.0.0.0:9082" --storage.tsdb.path /data2# /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus3.yml --web.listen-address="0.0.0.0:9083" --storage.tsdb.path /data3说明:--config.file /etc/prometheus/prometheus1.yml 指定配置文件--web.listen-address="0.0.0.0:9081" 指定监控端口 --storage.tsdb.path /data1 指定存储目录
4.检查Prometheus联邦是否搭建成功。
查看P1
我们添加的标签,name=node_exporter
查看P1
我们添加的Label ,name=mysql
查看P1
看到federate这个Targets,说明我们集群联邦搭建成功了。
2个endpoint都是up状态。接下来,验证一下数据有没有过来。
我们在P3上面 查询一下,node_exporter指标
mysql指标
可以看到node_exporter和mysql的数据都已经收集到P3上了。
至此,Prometheus的联邦集群搭建完成。
标签: #mysql集群监控