一、prometheus介绍

1、什么是prometheus?
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。
Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。
Prometheus性能也足够支撑上万台规模的集群。
2、Prometheus的特点
多维度数据模型。
灵活的查询语言。
不依赖分布式存储,单个服务器节点是自主的。
通过基于HTTP的pull方式采集时序数据。
可以通过中间网关进行时序列数据推送。
通过服务发现或者静态配置来发现目标服务对象。
支持多种多样的图表和界面展示,比如Grafana等。
官网地址:https://prometheus.io/
3、基本原理
Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。

4、服务过程
Prometheus Daemon负责定时去目标上抓取metrics(指标)数据,每个抓取目标需要暴露一个http服务的接口给它定时抓取。
Prometheus支持通过配置文件、文本文件、Zookeeper、Consul、DNS SRV Lookup等方式指定抓取目标。
Prometheus采用PULL的方式进行监控,即服务器可以直接通过目标PULL数据或者间接地通过中间网关来Push数据。
Prometheus在本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中。
Prometheus通过PromQL和其他API可视化地展示收集的数据。
Prometheus支持很多方式的图表可视化,例如Grafana、自带的Promdash以及自身提供的模版引擎等等。
Prometheus还提供HTTP API的查询方式,自定义所需要的输出。
PushGateway支持Client主动推送metrics到PushGateway,而Prometheus只是定时去Gateway上抓取数据。

二、Grafana

1、Grafana介绍

 grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。参考资料就是官网(http://docs.grafana.org/)

2、基本概念

Grafana支持许多不同的数据源。
每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。
官方支持以下数据源:Graphite,Elasticsearch,InfluxDB,Prometheus,Cloudwatch,MySQL和OpenTSDB等。
每个数据源的查询语言和能力都是不同的。
你可以把来自多个数据源的数据组合到一个仪表板,但每一个面板被绑定到一个特定的数据源,它就属于一个特定的组织。

三、部署流程
1、部署node-exporter服务:

docker run -d  --name=node-exporter  -p 9100:9100  prom/node-exporterdocker update --restart=always node-exporter  #这一步一般不需要

2、部署cadvisor监控容器指标:

docker run -d --publish=9200:8080 --name cadvisor -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro google/cadvisor:latestdocker update --restart=always cadvisor  #这一步一般不需要

3、监控GPU指标

git clone https://github.com/kevin7674/nvidia_smi_exporter.git
cd nvidia_smi_exporter
./nvidia_smi_exporter 9101 &
可以添加自启
修改 vi /etc/rc.local
添加一行: ./nvidia_smi_exporter 9101 &

—这是最简单的启动,容器方面就不介绍了。 可以访问项目地址去看。
4、部署Prometheus工具:

i、新建文件夹,并编辑内容mkdir /opt/prometheus
cd /opt/prometheus/
touch prometheus.yml
chmod 775 prometheus.yml
vim prometheus.yml

ii、编辑文件夹内容,最简单化部署

global:scrape_interval:     30s # 设定抓取数据的周期,默认为1minevaluation_interval: 30s # 设定更新rules文件的周期,默认为1minscrape_timeout: 15s # 设定抓取数据的超时时间,默认为10sscrape_configs:- job_name: prometheusstatic_configs:- targets: ['localhost:9090'] #主机labels:instance: prometheus- job_name: linuxstatic_configs:- targets: ['{$IP}:9100','{$IP}:8080','{$IP}:9101'] #数据源、采集数据。即:启动的node-exporter容器和cadvisor容器端口。 {$IP}请填写实际IPlabels:instance: {$IP}

iii、启动容器

docker run  -d \-p 9090:9090 \-v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \--name prometheusprom/prometheus
PS:新建文件的目录自己决定。启动容器时相对应的链接替换下就好。

5、部署可视化工具 grafana

docker run -d -p 3000:3000 --name grafana grafana/grafana

四、验证是否成功
访问方式: http://{$IP}:port
grafana视图可视化应用,可网上搜索下网络教程。 部署grafana成功后,第一次访问页面,默认账号密码是 admin/admin
客户端提供metrics接口有不少软件可提供,这边只写常用到的 node-exporter和cadvisor 的metrics接口。

五、客户端部署
1、客户端只要部署下面2个服务即可:

部署node-exporter服务
部署cadvisor监控容器指标
PS:部署步骤上面有介绍

2、再到服务端更改 prometheus.yml 文件。 PS:上面第 三.3步骤建立文件


```ruby
#vim prometheus.yml
#文件最下面再加上,下面的代码。  注意:job_name不要与上面的重复- job_name: linuxstatic_configs:- targets: ['{$IP}:9100','{$IP}:8080','{$IP}:9101'] #数据源、采集数据。即:启动的node-exporter容器和cadvisor容器端口。 {$IP}请填写实际IPlabels:instance: {$IP}
注意事项:
部署任务之前,最好查看下要启动的端口是否有占用的情况。若是占用了,启动容器时请换个端口号。```python
查看端口命令:netstat -tunlp | grep $port

基于docker 搭建Prometheus+Grafana监控相关推荐

  1. 搭建prometheus+grafana监控系统

    prometheus简介 Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 .自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发 ...

  2. 基于Prometheus+Grafana监控SQL Server数据库

    墨墨导读:本文整理了基于Prometheus+Grafana监控SQL Server数据库的全过程,分享至此,希望对大家有帮助. 搭建SQL Server环境 使用容器建立SQL Server环境非常 ...

  3. 搭建Prometheus+Grafana的云平台监控系统

    1.1 Prometheus和Grafana概述 1.1.1 Prometheus概述 Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由Soun ...

  4. Grafana监控系统之Prometheus+Grafana监控系统搭建

    Grafana监控系统之Prometheus+Grafana监控系统搭建 本文章内容较长,可通过右上角点击目录快速定位想看的内容 => => 一. 概述 1.1 Grafana介绍 Gra ...

  5. 0基础搭建Prometheus+Grafana监控服务器CPU、磁盘、内存等信息

    这里写自定义目录标题 0基础搭建Prometheus+Grafana监控服务器CPU.磁盘.内存等信息 1.实验环境准备 2.基础环境配置 3.部署prometheus 4.部署Grafana可视化图 ...

  6. 基于Docker搭建分布式消息队列Kafka

    本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示.本例搭建的 ...

  7. Prometheus+Grafana监控PostgreSQL

    Prometheus+Grafana监控PostgreSQL Prometheus:2.32.0 Grafana:8.3.3 PG:13.2 Linux:CentOS7.6 docker:18.06. ...

  8. 基于docker搭建cephfs分布式文件

    目的 在一台机器上, 利用多块硬盘, 搭建一个cephfs文件系统. 具体来说就是1个mon, 1个mds, 1个mgr, 3个osd 注意 a. 使用vmware会很方便 b. 安装过程中会遇到很多 ...

  9. 使用Prometheus+Grafana 监控MySQL/MONGODB

    使用Prometheus+Grafana 监控MySQL/MONGODB 之前就久仰 Prometheus 大名,因为有用zabbix 进行监控,就没去安装它.现在正好用上监控MONGO+MYSQL. ...

最新文章

  1. 内核-程序员的顶级梦寐
  2. 关于鼠标移动太快导致moseleave事件不触发的问题
  3. Ardino基础教程 6_抢答器
  4. nasm汇编:段的申明、$$、$
  5. windows命令提示符下输入net start/stop mysql发生系统错误5,拒绝访问的解决方法
  6. springboot——kaptcha
  7. 继承的原理java_Java继承和多态的原理
  8. 独家对话华为王成录:手机 HarmonyOS 开发者 Beta 版将如约而至
  9. C语言求圆的面积,周长
  10. table函数--Matplotlib
  11. 【Java后台开发规范】--- 日志的输出
  12. lm算法c语言,lm算法(lm算法原理介绍)
  13. matlab pt站下载,SDPT3-4.0 求解最优化问题里的半定规 (SDP)经典并且十分有效的MATLAB程序包 244万源代码下载- www.pudn.com...
  14. 英寸和厘米的换算python_OJ实例:厘米换算英尺英寸
  15. 219-6-3Google浏览器书签备份
  16. 磁盘分区被格式化了,格式化之前的文件恢复方法
  17. Hibernate 第一个程序的问题Unknown entity(新手必看)
  18. iphone 中的键盘切换产生的屏幕大小问题
  19. 大学英语期末考计算机上答卷,英语期末考试总结(精选7篇)
  20. linux俄罗斯方块源程序,《俄罗斯方块游戏》项目实作【附源码】

热门文章

  1. Microsoft Azure 容器技术助力游戏出海
  2. 机器学习100天(三十四):034 先验概率、条件概率
  3. Linux内核 LCD 驱动程序框架
  4. WIN8应用商店闪退
  5. 静态顺序表和动态顺序表区别的优缺点比较
  6. 如何解决百度云下载慢的问题
  7. Dobot机械臂木块分拣
  8. python程序性能监控
  9. F4/F7飞控betaflight固件烧写,地面站 BF无法读取、不识别、未发现等飞控疑难杂症问题解决与驱动安装
  10. c店banner的一个宽高度范围,详情页的宽高度是。淘宝天猫的详情页,看尺寸的快捷键,banner的设计规则和技巧