使用docker方式构建prometheus监控的学习
一、背景:近期学习部署prometheus监控系统,经研究发现prometheus提供docker运行模式。根据我的经验,能够使用docker模式构建系统一定多快好省。
二、环境:
1、centos7.5虚拟机一台,分配4G内存,拟作prometheus服务器,ip:192.168.0.208
2、centos8.0虚拟机一台,分配2G内存,拟作node-exporter客户机,ip:192.168.0.202
3、两台机器都在不同的实体机上,已安装docker-ce软件
三、部署过程
1、服务器(考虑安装prometheus服务器和node-exporter客户端):
(1)pull服务器镜像:
docker pull prom/prometheus
(2)pull客户端镜像:
docker pull prom/node-exporter
(3)配置prometheus.yml
mkdir -p /root/prometheus/prometheus-data #prometheus的工作目录和数据目录
mkdir -p /root/prometheus/node-exporter-data #node-exporter的数据目录
cd /root/prometheus
vi promethe.yml
内容如下:
...
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'prometheus-node-exporter'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['192.168.0.208:9100']
- job_name: 'node-dell5460'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['192.168.0.202:9100']
(4)运行prometheus服务
[root@ELK prometheus]# docker run -d -p 9090:9090 -v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml -v $PWD/prometheus-data:/prometheus --hostname ELK.localdomain --name prometheus prom/prometheus
说明:
-p 9090:9090 #服务端口对应到宿主机的相同端口
-v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml #容器内/etc/prometheus/prometheus.yml配置文件挂载到宿主机/root/prometheus目录下。
-v $PWD/prometheus-data:/prometheus #容器内prometheus工作目录挂载到宿主机的/root/prometheus/prometheus-data目录下。
--hostname ELK.localdomain #容器的主机名称(ELK.localdomain是208机的主机名),若不加这个选项,docker会自动把容器的短id号作为容器主机名,在web页面就会发生无法访问的问题。
测试:curl http://localhost:9090/metrics
(5)运行node-exporter
[root@ELK prometheus]# docker run -d --net="host" --pid="host" -v "/root/prometheus/node-exporter-data:/host:ro,rslave" prom/node-exporter --path.rootfs=/host
测试:curl http://192.168.0.208:9100/metrics
2、node-exporter客户机
(1)pull客户端镜像
docker pull prom/node-exporter
(2)运行node-exporter
[root@ELK prometheus]# docker run -d --net="host" --pid="host" -v "/home/node-exporter-data:/host:ro,rslave" prom/node-exporter --path.rootfs=/host
3、访问测试:
在浏览器中输入网址:http://192.168.0.208:9090
四、使用
1、metric的表现形式是键值对{k,v}
2、metrics的页面说明:
#HELP 关于指标的说明
#TYPE 指标的类型,常见gauge,conter等类型
键 值 以空格隔开
3、把metrics页面存在的键拷贝后粘贴到graph页面的搜索栏中即可看到值或图形。
4、在搜索栏中可灵活应用各类函数,如rate、increase、sum、topk、等等
例:
rate(node_cpu_seconds_total{mode="user"}[1m]) #1分钟内用户态cpu时间每秒增加量
rate(node_cpu_seconds_total{mode="system",instance="192.168.0.208:9100",job="prometheus-node-exporter"}[1m])
(1-(sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)) / (sum(increase(node_cpu_seconds_total[1m])) by(instance)))*100 #每台机器1分钟内cpu负荷
topk(3,rate(node_network_receive_bytes_total[5m])) #网络5分钟内平均每秒接收字节数前3位的数据展示
5、关于web页面的时间显示问题,默认页面显示的是UTS时区时间,与本地时间相差8小时。这是因为Prometheus 为避免时区混乱,在所有组件中专门使用 Unix Time 和 Utc 进行显示。不支持在配置文件中设置时区,也不能读取本机 /etc/timezone 时区。prometheus在新版web页面已提供本地时区时间显示功能,可点击web页面右上角“Try experimental React UI”切换到新版页面,在新版页面上部勾选“Use local time”即可。
附:更多的函数参考https://prometheus.io/docs/prometheus/latest/querying/functions/
使用docker方式构建prometheus监控的学习的更多相关文章
- 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库
一.背景 在平时开发过程当中需要针对 MySQL 数据库进行监控,这里我们可以使用 Grafana 和 Prometheus 来实现监控功能.Grafana 是一款功能强大的仪表盘面板,支持多种数据源 ...
- Prometheus监控数据格式学习
本文大纲: • prometheus metrics的概念• k/v的数据形式• prometheus exporter的使⽤(pull形式采集数据)• prometheus pushgateway的 ...
- centos7下安装docker(17.4docker监控----prometheus)
Prometheus是一个非常优秀的监控工具.准确的说,应该是监控方案.Prometheus提供了监控数据搜集,存储,处理,可视化和告警一套完整的解决方案 Prometheus架构如盗图: 官网上的原 ...
- Prometheus监控学习笔记之Prometheus监控简介
0x00 Prometheus容器监控解决方案 Prometheus(普罗米修斯)是一个开源系统监控和警报工具,最初是在SoundCloud建立的.它是一个独立的开放源码项目,并且独立于任何公司.不同 ...
- 【集群监控】Docker上部署Prometheus+Alertmanager+Grafana实现集群监控
Docker部署 下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.re ...
- Prometheus监控Docker Swarm集群(一)
Prometheus监控Docker Swarm集群(一) cAdvisor简介 为了解决容器的监控问题,Google开发了一款容器监控工具cAdvisor(Container Advisor),它为 ...
- 从零开始学习Prometheus监控报警系统
Prometheus简介 Prometheus是一个开源的监控报警系统,它最初由SoundCloud开发. 2016年,Prometheus被纳入了由谷歌发起的Linux基金会旗下的云原生基金会( C ...
- Docker系列——Grafana+Prometheus+Node-exporter服务器监控平台(一)
在最近的博文中,都是介绍监控平台的搭建,其实并不难,主要是需要自己动手操作,实践一番就会了. 有天在想,云上的服务器,是不是也可以搭建一个监控平台,所以就捣鼓了一下,不过遗憾的是,使用阿里云开源的插件 ...
- Docker镜像构建的两种方式
关于Docker里面的几个主要概念 这里用个不太恰当的比方来说明. 大家肯定安装过ghost系统,镜像就像是ghost文件,容器就像是ghost系统.你可以拿别人的ghost文件安装系统(使用镜像运行 ...
随机推荐
- 报错:Maven创建An internal error occurred during: "Retrieving archetypes:". Java heap space
在Eclipse中创建Maven的Web项目时出现错误:An internal error occurred during: "Retrieving archetypes:". J ...
- Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构
Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构 目录 Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构 0x00 摘要 0x01 Alink设计原则 0x02 A ...
- Day_13【IO流】扩展案例2_统计指定项目文件中字符出现的次数
需求分析 统计当前项目下info2.txt文件中, 每个字符出现的个数 文件内容如下: welcome to itheima!!! 最终效果如下: w(1) (2)!(3)t(2)e(3)c(1)a( ...
- IntelliJ Idea14 创建Maven多模块项目,多继承,热部署配置总结(三)
pom.xml中repositories.pluginRepository的作用 pom.xml中repositories标签的作用是: 用来配置maven项目的远程仓库.示例如下: <repo ...
- 深度学习中的序列模型演变及学习笔记(含RNN/LSTM/GRU/Seq2Seq/Attention机制)
[说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![认真看图][认真看图] [补充说明]深度学习中的序列模型已经广泛应用于自然语言处理(例如机器翻 ...
- docker安装之后的配置各种坑
1.docker官网下载安装之后 2.点击 Docker quick start快捷方式 错误提示: windows正在查找bash.exe,也可以手动查找,但是一直找不到. 3.执行 docker- ...
- shiro 实现自定义权限规则校验
<span style="font-family: Arial, Helvetica, sans-serif;">在系统中使用shiro进行权限管理,当用户访问没有权限 ...
- 1026 Table Tennis (30分) 难度不高 + 逻辑复杂 +细节繁琐
题目 A table tennis club has N tables available to the public. The tables are numbered from 1 to N. Fo ...
- video 全屏,播放,隐藏控件。
requestFullscreen全屏具体实现 1.进入全屏 function full(ele) { if (ele.requestFullscreen) { ele.requestFullscre ...
- Docker之commit制作镜像
一.docker是什么? Docker是一个为开发人员和系统管理员提供分布式应用程序的开放平台.它是一个开源的容器引擎,基于Go语言并遵从Apche2.0协议开源. 功能:Docker可以让开发者打包 ...