docker部署Prometheus+Cadvisor+Grafana实现服务器监控

一:Prometheus

1:介绍:

Prometheus是一个在SoundCloud上构建的开源系统监视和警报工具包

2:特点

  • 多维度数据模型-由指标键值对标识的时间序列数据组成;
  • PromQL,一种灵活的查询语言;
  • 不依赖分布式存储; 单个服务器节点是自治的;
  • 以HTTP方式,通过pull模型拉取时间序列数据;
  • 支持通过中间网关推送时间序列数据;
  • 通过服务发现或者静态配置,来发现目标服务对象;
  • 支持多种多样的图表和界面展示。

3:docker部署Prometheus

(1)拉取Prometheus
docker pull prom/prometheus
(2)配置Prometheus

新建一个prometheus.yml

global:# 每15s获取一次数据指标scrape_interval: 15s# 获取数据超时时长 10sscrape_timeout: 10s# 规则评估评率,即计算指标是否有触发规则的计算频率evaluation_interval: 15s# 规则文件,从所有匹配的文件中读取规则和警报
rule_files:- "alert_rules.yml"# 采集配置列表
scrape_configs:- job_name: prometheusstatic_configs:- targets: ['localhost:9090']- job_name: 'node'scrape_interval: 8sstatic_configs:- targets: ['node-exporter:9100']- job_name: 'cadvisor'static_configs:- targets: ['cadvisor:8080']

新建一个规则文件alert_rules.yml

groups:
- name: targetsrules:- alert: monitor_service_downexpr: up == 0for: 30slabels:severity: criticalannotations:summary: "Monitor service non-operational"description: "Service {{ $labels.instance }} is down."- name: hostrules:- alert: high_cpu_loadexpr: node_load1 > 1.5for: 30slabels:severity: warningannotations:summary: "Server under high load"description: "Docker host is under high load, the avg load 1m is at {{ $value}}. Reported by instance {{ $labels.instance }} of job {{ $labels.job }}."- alert: high_memory_loadexpr: (sum(node_memory_MemTotal_bytes) - sum(node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes) ) / sum(node_memory_MemTotal_bytes) * 100 > 85for: 30slabels:severity: warningannotations:summary: "Server memory is almost full"description: "Docker host memory usage is {{ humanize $value}}%. Reported by instance {{ $labels.instance }} of job {{ $labels.job }}."- alert: high_storage_loadexpr: (node_filesystem_size_bytes{fstype="aufs"} - node_filesystem_free_bytes{fstype="aufs"}) / node_filesystem_size_bytes{fstype="aufs"}  * 100 > 85for: 30slabels:severity: warningannotations:summary: "Server storage is almost full"description: "Docker host storage usage is {{ humanize $value}}%. Reported by instance {{ $labels.instance }} of job {{ $labels.job }}."
(3)运行Prometheus
docker run -d --name=prometheus -p 9090:9090 -v ./prometheus[创建的配置文件目录]:/etc/prometheus -v ./opt/data/prometheus[prometheus数据需要存储的地址]:/prometheus prom/prometheus
(4)访问Prometheus

访问127.0.0.1:9090如下表示安装成功

二:Cadvisor

1:介绍

 Cadvisor 是Google用来监测单节点资源信息的监控工具。 Cadvisor 提供了基础查询界面和http接口,方便其他组件如Grafana 、Prometheus等进行数据抓取。Cadvisor 可以对Docker主机上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况等。Cadvisor 使用Go语言开发,利用Linux的Cgroups获取容器的资源使用信息。

2:特点

  • 可以展示主机和容器两个层次的监控数据。
  • 可以展示历史变化数据。
  • 谷歌公司的开源产品。
  • 监控指标齐全。
  • 方便部署,有官方的docker镜像。
  • 默认只在本地保存1分钟数据,可以集成InfluxDB等第三方存储使用。

3:docker部署Cadvisor

(1)拉取Cadvisor
docker pull google/cadvisor
(2)运行Cadvisor
docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest
(3)访问Cadvisor

访问127.0.0.1:8080如下表示安装成功

三:Grafana

1:介绍

Grafana是一个可视化面板(Dashboard)工具,有着非常漂亮的图表和布局等展示功能,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB等组件作为数据源。

2:特点

  • 灵活丰富的图形化选项;
  • 可以混合多种风格;
  • 支持白天和夜间模式;
  • 支持多个数据源;

3:docker部署Grafana

(1)拉取Grafana
docker pull grafana/grafana
(2)运行Grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
(3)访问Grafana

访问127.0.0.1:3000如下表示安装成功(默认账号密码都为admin)

(4)Grafana配置

1.添加Prometheus数据源 Connections -> Data sources -> Add new data source -> 选择Prometheus 设置Prometheus server URL 为http://prometheus:9090然后保存

2.添加Dashboards仪表板 Dashboards -> import -> 导入仪表板 可用的仪表版模板:

Node Exporter Dashboard 220417 通用Job分组版

Docker monitoring with service selection

3.设置首页默认仪表板 Administration -> Default preferences -> 选择Home Dashboard

4.语言设置 用户头像 -> Profile -> 选择Language

四:dockers部署Prometheus+Cadvisor+Grafana

参考:https://download.csdn.net/download/huaweichenai/88537114

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/176450.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在ant构建脚本中调用maven的命令

有时候想用maven管理依赖,用ant构建。 在ant的build.xml文件中可以使用exec这个task来调用系统命令,也就可以调用maven的命令。 例如,执行maven的命令mvn dependency:copy-dependencies,可以将项目的依赖提取出来,放…

msys2 + MSVC(VS2019)编译ffmpeg6.0源码

以前使用的v1.2版,很多功能和使用方法发生了变化,需要重新编译新的ffmpeg版。 编译环境: windows 10 , VS2019, MSYS2 1. msys2 下载安装 MSYS2 , https://www.msys2.org/ 2. msys2 环境配置打开 msys2 2.1 安装相关软件 然后输入以下命令安装&…

Scala---数据基础

一、数据类型 二、变量和常量的声明 定义变量或者常量的时候,也可以写上返回的类型,一般省略,如:val a:Int 10常量不可再赋值 1./** 2. * 定义变量和常量 3. * 变量 :用 var 定义 ,可修改 4. * 常量 :用 val 定…

移动端APP版本治理

1 背景 在许多公司,APP版本都是不受重视的,产品忙着借鉴,开发埋头编码,测试想着不粘锅。 只有在用户反馈app不能用的时候,你回复客服说,让用户升级最新版本,是不是很真实。 而且业界也很少有…

AI创作系统ChatGPT源码+AI绘画系统+支持OpenAI DALL-E3文生图,可直接对话文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。新增支…

学Diffusion前需要储备的一些知识点

自学Diffusion是非常困难的,尤其是到了VAE和VI这里基本找不到比较好的中文资料,甚至是涉及到一些重参数化,高斯混合之类的问题摸不着来龙去脉。在本文中,基本不会涉及公式,只有intuition和理解,如果要看公式…

正点原子嵌入式linux驱动开发——Linux ADC驱动

在之前的笔记中,学习了如何给ICM20608编写IIO驱动,ICM20608本质就是ADC,因此纯粹的ADC驱动也是IIO驱动框架的。本章就学习一下如何使用STM32MP1内部的ADC,并且在学习巩固一下IIO驱动。 ADC简介 ADC ADC,Analog to D…

C/C++调试工具 - gdb详解

C/C调试工具 -gdb详解 1 简介 2 常用的命令 3 使用的条件 4 程序调试 4.1 直接运行程序 4.2 断点调试(在某一行) 4.3 断点调试(在函数入口处打断点) 5 调试core文件 5.1 生成core文件的方法 5.2 调试core文件 1 简介 GDB是Linux下非常好用且强大的调试工具。GD…

提升代码复用性:探讨Mixin类在面向对象语言中的独特作用和优势

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 专栏简介 📘 文章引言 一、m…

Spring 只用一招,就摆脱被垃圾回收的命运,拯救了自己

SpringBoot ApplicationContext 会被 JVM 当成垃圾对象,然后回收掉吗? 最近五阳哥在复习JVM 垃圾回收的知识,被别人问到这个问题,我心里感到一惊,如果Spring 被回收掉,Spring管理的bean全部会被回收&#…

Linux系统简介与开源精神

🎥 屿小夏 : 个人主页 🔥个人专栏 : Linux系统理论 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️Linux系统背景☁️UNIX发展史☁️Linux发展史☁️Linux系统企业应用现…

TDengine 与煤科院五大系统实现兼容性互认,助力煤矿智能化安全体系搭建

近日,涛思数据与煤炭科学技术研究院(以下简称煤科院)已完成数个产品兼容互认证工作,经双方共同严格测试,涛思数据旗下物联网、工业大数据平台 TDengine V3.X 与煤炭科学技术研究院旗下煤矿复合灾害监测监控预警系统、煤…