Prometheus部署监控容器
Prometheus架构描述
Prometheus 是一个非常优秀的监控工具。准确的说,应该是监控方案。Prometheus 提供了监控数据搜集、存储、处理、可视化和告警一套完整的解决方案
Prometheus 最大的亮点和先进性是它的多维数据模型

Prometheus Server
Prometheus Server 负责从 Exporter 拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)供用户使用
Exporter
Exporter 负责收集目标对象(host, container…)的性能数据,并通过 HTTP 接口供 Prometheus Server 获取
可视化组件
监控数据的可视化展现对于监控方案至关重要。以前 Prometheus 自己开发了一套工具,不过后来废弃了,因为开源社区出现了更为优秀的产品 Grafana。Grafana 能够与 Prometheus 无缝集成,提供完美的数据展示能力
Alertmanager
用户可以定义基于监控数据的告警规则,规则会触发告警。一旦 Alermanager 收到告警,会通过预定义的方式发出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.
Prometheus数据存储模型
Prometheus 只需要定义一个全局的指标 container_memory_usage_bytes,然后通过添加不同的维度数据来满足不同的业务需求

1.通过维度对数据进行说明,附加更多的业务信息,进而满足不同业务的需求.同时维度是可以动态添加的,比如再给数据加上一个 user 维度,就可以按用户来统计容器内存使用量了
2.Prometheus 丰富的查询语言能够灵活、充分地挖掘数据的价值.前面示例中的 avg、sum、by 只是查询语言中很小的一部分功能.Prometheus 对多维数据进行分片、聚合的强大能力
Prometheus搭建实例
1. Prometheus Server
Prometheus Server 本身也将以容器的方式运行在 host 192.168.11.133 上
2. Exporter
Prometheus 有很多现成的 Exporter,完整列表请参考 https://prometheus.io/docs/instrumenting/exporters/
使用:
Node Exporter 负责收集 host 硬件和操作系统数据
cAdvisor 负责收集容器数据
3.Grafana
显示多维数据,Grafana 本身也将以容器方式运行在 host 192.168.11.133 上
1.安装node Exporter收集主机数据 需要在每个主机上都安装
docker run -d -p : \
-v "/proc:/host/proc" \
-v "/sys:/host/sys" \
-v "/:/rootfs" \
--net=host \
prom/node-exporter \
--path.procfs /host/proc \
--path.sysfs /host/sys \
--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)" #Node Exporter 启动后,将通过 提供 host 的监控数据
http://192.168.11.133:9100/metrics
node exporter安装
2.安装cAdvisor收集容器数据 每个跑容器的主机上都需要安装
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=: \
--detach=true \
--name=cadvisor \
--net=host \
google/cadvisor:latest [root@node3 ~]# mount -o remount,rw '/sys/fs/cgroup'
[root@node3 ~]# ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu
cAdvisor安装
3.选择一台主机安装Prometheus Server
docker run -d -p : \
-v /root/prometheus.yml:/etc/prometheus/prometheus.yml \
--name prometheus \
--net=host \
prom/prometheus
Prometheus server安装
global:
scrape_interval: 15s # By default, scrape targets every seconds. # Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor' # A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus' # Override the global default and scrape targets from this job every seconds.
scrape_interval: 5s static_configs:
- targets: ['localhost:9090','localhost:8080','localhost:9100','192.168.11.134:8080','192.168.11.134:9100']
prometheus.yml
static_configs: 指定从哪些 exporter 抓取数据.这里指定了两台 host 上的 Node Exporter 和 cAdvisor


所有 Target 的 State 都是 UP,说明 Prometheus Server 能够正常获取监控数据
4.安装Grafana 选择和Prometheus Server同一台主机
docker run -d -i -p : \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
--net=host \
grafana/grafana -e "GF_SECURITY_ADMIN_PASSWORD=secret 指定了 Grafana admin用户密码 secret
grafana安装
5.使用Grafana展示Prometheus Server的数据

1.添加data source

2.下载dashboard
访问 https://grafana.com/dashboards?dataSource=prometheus&search=docker 下载这些现成的 Dashboard 每个Dashboard就是一个json文件
3.添加dashboard



Prometheus部署监控容器的更多相关文章
- kubernetes(k8s) Prometheus+grafana监控告警安装部署
主机数据收集 主机数据的采集是集群监控的基础:外部模块收集各个主机采集到的数据分析就能对整个集群完成监控和告警等功能.一般主机数据采集和对外提供数据使用cAdvisor 和node-exporter等 ...
- 部署Prometheus+Grafana监控
Prometheus 1.不是很友好,各种配置都手写 2.对docker和k8s监控有成熟解决方案 Prometheus(普罗米修斯) 是一个最初在SoudCloud上构建的监控系统,开源项目,拥有非 ...
- 使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql
使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql 一.docker部署prometheus监控系统 1.1 配置安装环境 1.1.1 安装promethe ...
- Prometheus+Grafana监控部署实践
参考文档: Prometheus github:https://github.com/prometheus grafana github:https://github.com/grafana/graf ...
- Prometheus部署各服务的Node监控
1.部署监控主机 部署主机监控,需要安装node_exporter 1.1 下载node exporter wget https://github.com/prometheus/node_export ...
- Doker部署Jmeter(一) 目标服务器部署Jmeter监控容器
用jmeter插件监控服务器性能之前也有提到:https://www.cnblogs.com/betterbb/p/11285022.html 这里主要记录一下docker上的部署,所需的3个插件可以 ...
- 03 . Prometheus监控容器和HTTP探针应用
Eeporter是什么及来源? 是什么? 广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter.而Exporter的一个实例称为target,如下所示,Prom ...
- k8s全方位监控-prometheus部署
1.k8s 监控资源对象 2. prometheus简单介绍. https://github.com/prometheus •多维数据模型:由度量名称和键值对标识的时间序列数据•PromSQL:一种灵 ...
- 基于Docker+Prometheus+Grafana监控SpringBoot健康信息
在微服务体系当中,监控是必不可少的.当系统环境超过指定的阀值以后,需要提醒指定的运维人员或开发人员进行有效的防范,从而降低系统宕机的风险.在CNCF云计算平台中,Prometheus+Grafana是 ...
随机推荐
- 二阶环路滤波器的matlab 设计
clc; Rs=10*10^6; %码速率 es=0.707; %阻尼系数 fs=8*10^6; %采样频率.系统时钟频率 Bit_Loop_out=27;%环路滤波器输入输出位宽 N=31; %NC ...
- java设计模式自我总结---代理模式
代理模式是给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,通俗的来讲代理模式就是我们生活中常见的中介. Spring 的AOP面向切面就是使用动态代理模式来实现的: 打个比方说:我要买房 ...
- python 的bif
函数在类里面就叫做方法from sys import pi 导入sys模块里面的pi方法import sys as system 命名为新的名字dir(sys) 查看sys模块里面都提供了哪些东西he ...
- pta总结2
7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...
- Spring Boot 读取 resource 下文件
支持linux下读取 import org.springframework.core.io.ClassPathResource; public byte[] getCertStream(String ...
- SQL允许脏读WITH(NOLOCK)
使用WIHT(NOLOCK)有利也有弊,所以在决定使用之前,你一定需要了解清楚WITH(NOLOCK)的功能和缺陷,看其是否适合你的业务需求,不要觉得它能提升性能,稀里糊涂的就使用它. --事务未提交 ...
- scrapy相关 通过设置 FEED_EXPORT_ENCODING 解决 unicode 中文写入json文件出现`\uXXXX`
0.问题现象 爬取 item: 2017-10-16 18:17:33 [scrapy.core.scraper] DEBUG: Scraped from <200 https://www.hu ...
- getOrderValue 排序 sql server
GO -- =============================================-- Author: <Author,,rx.tang>-- Creat ...
- Android人脸检测1(静态图片)
搭建Android人脸识别环境花了很长时间(可以查看之前的文章),解决Android开发中的杂七杂八小问题也耗时不少. 今天记录一下,点击选择照片或者拍照上传照片进行人脸检测的小demo. (andr ...
- vue-cli按需加载,懒加载组件
vue来做一个单页面应用,当我们的项目越来越大,组件越来越多的时候,首次启动项目户特别慢,就算做一个加载框,蒙层之类的,体验也不会好,这个时候就需要按需加载 1.什么叫按需加载 所谓按需加载,顾名思义 ...