Prometheus+Grafana-1-基础介绍及安装

news2024/11/25 22:47:10

一、体系架构(了解)

数据采集流程

 说白了就是采集数据->计算是否超过阈值->发起警告

Prometheus查询界面如下

1.报警简介

展现形式:短信,邮件,电话,通讯软件。

阈值(Trigger Value),如达到阈值可以触发预警。

Pagerduty拥有 短信、电话、邮件所有报警机制,还有必要的运维值班管理制度和报警升级等等拓展功能。

2.优势

  • 监控精细程度绝对第一,精确到1-5秒的采集精度

  • 集群部署速度 监控脚本的制作 非常速度 大大减少监控搭建的时间成本

  • 周边插件丰富

  • 本身基于数学模型,大量实用函数可以实现复杂的业务逻辑监控(QPS曲线,弯曲 凸起 下跌的比例等模糊概念)

  • 可以嵌入很多开源工具

  • 图形美观高大上

3.缺点

  • 因其采集精度,如果集群数量太大,那么单点的监控有性能瓶颈。

  • 学习成本太大,数学命令行复杂。

  • 磁盘消耗较大,具体根据监控集群量 和 监控项的多少。

  • 需要有一定的数学头脑。

4.基本原理

​ 通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。

其大概的工作流程是:

1、Prometheus server 定期从配置好的 jobs 或者 exporters 中拉metrics指标,或者接收来自Pushgateway 发过来的 metrics,或者从其他的 Prometheus server 中拉 metrics。

2、Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。

3、Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。

4、在Grafana图形界面中,可视化查看采集数据。

二、安装

1.Compose安装

version: '3.8'

volumes:
  prometheus_data: {}
  grafana_data: {}

networks:
  monitoring:
    driver: bridge

services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./prometheus/:/etc/prometheus/
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      - '--web.console.templates=/usr/share/prometheus/consoles'
      #热加载配置
      - '--web.enable-lifecycle'
      #api配置
      #- '--web.enable-admin-api'
      #历史数据最大保留时间,默认15天
      - '--storage.tsdb.retention.time=30d'  
    networks:
      - monitoring
    links:
      - alertmanager
      - cadvisor
      - node_exporter
    expose:
      - '9090'
    ports:
      - 9090:9090
    depends_on:
      - cadvisor

  alertmanager:
    image: prom/alertmanager
    container_name: alertmanager
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./alertmanager/:/etc/alertmanager/
    command:
      - '--config.file=/etc/alertmanager/config.yml'
      - '--storage.path=/alertmanager'
    networks:
      - monitoring
    expose:
      - '9093'
    ports:
      - 9093:9093

  cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    networks:
      - monitoring
    expose:
      - 8080
    ports:
      - 8080:8080
      
  node_exporter:
    image: prom/node-exporter
    container_name: node-exporter
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command: 
      - '--path.procfs=/host/proc' 
      - '--path.sysfs=/host/sys'
      - '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc|rootfs/var/lib/docker)($$|/)'
    networks:
      - monitoring
    ports:
      - '9100:9100'

  grafana:
    image: grafana/grafana:9.4.3
    container_name: grafana
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - grafana_data:/var/lib/grafana
      - ./grafana/provisioning/:/etc/grafana/provisioning/
    env_file:
      - ./grafana/config.monitoring
    networks:
      - monitoring
    links:
      - prometheus
    ports:
      - 3000:3000
    depends_on:
      - prometheus

下面是我的安装目录。

2.访问地址

3.通过Grafana展示Prometheus

 

直接保存。

访问grafana官网,找到Node Exporter Full

Grafana dashboards | Grafana Labs

 

1806

4.自定义指令

接下来我们会频繁使用到这两个命令,可以取个别名。不取也行。

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml

curl -X POST http://localhost:9090/-/reload

#进入文件
vim ~/.bashrc

#修改
#Prometheus的检查yml配置文件的指令
alias check_prometheus_yml='docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml'

#开启热重载后重新加载配置文件的指令
alias reload_prometheus='curl -X POST http://localhost:9090/-/reload'

#生效
source ~/.bashrc

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

巨详细的规则引擎 Drools——小白也可食用

巨详细的规则引擎 Drools——小白也可食用 一、问题1.1、传统做法1.2、存在的问题1.3、引入 二、规则引擎概述2.1、什么是规则引擎2.2、使用规则引擎的优势2.3、规则引擎应用场景2.4、Drools介绍 三、Drools入门案例3.1、创建Springboot项目3.2、引入依赖3.3、添加Drools配置类…

鸿蒙(API 12 Beta3版)【投播组件开发指导】分布式媒体会话

通过本开发指导,完成一次音视频跨设备投播。 约束与限制 需同时满足以下条件,才能使用该功能: 设备限制 本端设备:HarmonyOS NEXT Developer Preview0及以上版本的手机设备 远端设备:HarmonyOS NEXT Developer Previ…

动起来!Axure动画的实用技巧

前言 在数字产品的世界中,用户体验的每一个细节都至关重要。 动画,作为一种增强交互性和视觉吸引力的手段,已经成为现代界面设计中不可或缺的元素。 Axure,作为一款强大的原型设计工具,提供了丰富的动画功能&#x…

进程第二部分

1.任务:子进程做的事情和父进程差不多(子承父业) 父进程创建出子进程之后,子进程做的事情与父进程完全不同(自力更生) 2.exec: int exec l(const char *path, const char *arg, ...); int exec v(const c…

python管理mysql

[rootserver1 ~]# pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple //这是设置清华镜像站,提高下载安装速度,如果报错提示找不到config,这是因为版本低,临时使用清华镜像站来升级 pip&…

愤怒的江小白,这几年怎么了?

近日,东方甄选和江小白的纠纷引发了广泛关注。 8月8日晚间,东方甄选直播间中,主播天权在带货某款白酒产品时突然对比点评江小白产品,称江小白“不是白酒”:“你现在去看江小白的包装,上面是没有‘白酒’这…

1Panel 部署 爱影CMS

前言 本文以 爱影CMS 为例提供了一种在 1Panel 面板中在 docker 内运行二进制程序的一种思路。符合 1Panel 基于容器管理并部署应用,实现最小的漏洞暴露面的思路。 环境准备 完整的 1Panel 环境(1Panel 如何安装? / 1Panel Pro 优惠购)服务…

软件测试学习搭子抱团取暖(已有400+)

希望优秀的测试人都聚齐在一起,大家一起解决面试难题,工作上的问题,在解决问题的同时自己也能提升,同时相互交流分享资料等测试面试经验,一起讨论交流呀。定个小目标2000。

除了知云文献翻译外,这几款翻译工具值得推荐!

近年来,市面上涌现出众多优秀的文献翻译工具,其中知云文献翻译凭借其强大的功能受到了广泛好评。然而,除了知云文献翻译外,还有几款翻译工具同样值得推荐。今天,就让我们一起来了解一下! Foxit在线翻译 链…

【Qt】控件介绍

控件概念 一个图形化界面上的内容,在编写代码的时候不需要全部从零开始实现。Qt种已经提供了很多内置的控件(按钮、文本框、单选按钮、复选按钮、下拉框等等),直接进行使用即可。 控件,英文名称widget,控件…

企业源代码加密软件有哪些?2024最好用的十款源代码加密软件

在当今快速发展的技术环境中,企业源代码的安全性至关重要。源代码不仅包含着企业的核心知识产权,还可能涉及敏感的商业数据。因此,选择一款合适的源代码加密软件,对于保护企业资产和避免数据泄露风险至关重要。随着安全技术的不断…

(回溯) LeetCode 47. 全排列||

原题链接 建议先练习:全排列| 一. 题目描述 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 输入&a…

【JavaEE初阶】线程池

目录 📕 引言 🌳 概念 🍀ThreadPoolExecutor 类 🚩 int corePoolSize与int maximumPoolSize: 🚩 long keepAliveTime与TimeUnit nuit: 🚩 BlockingQueue workQueue&#xff1a…

C# 序列化与反序列化指南:将对象数据写入/读取到XML文件

文章目录 1. XML 文件的基本概念以及为何使用 XML 文件进行数据序列化2. C# 中的 XML 文件序列化使用 XmlSerializer 类进行操作的详细步骤3. 创建一个自定义对象并序列化对象数据到 XML 文件的示例代码4. 读取 XML 文件并反序列化(将 XML 数据转换为对象数据&#…

【Redis】Redis 初探:特性、应用场景与高并发架构演进之路

目录 初识 Redis关于 Redis服务端高并发分布式结构演进之路概述常⻅概念基本概念应⽤(Application)/ 系统(System)模块(Module)/ 组件(Component)分布式(Distributed&…

LVS 、DR模式

lvs --环境 主机名IP地址功能web1192.168.1.17 rs web2192.168.1.18realservenat 内:192.168.1.16 外:192.168.1.102 directorserver,ntpdns192.168.1.12dns --web1、web2 yum -y install nginxecho "xx" > /usr/share/nginx/html/index.…

系统编程 day10 进程2

进程创建之后: 1.任务-----子进程与父进程干的活差不多 2.父进程创建出子进程之后,子进程做的与父进程完全不同 shell程序-----bash----- 以上为进程运行的过程中,典型的两种应用场景 能够改变子进程的执行效果的函数是exec函数族 l和v&a…

【2024】k8s集群 图文详细 部署安装使用(两万字)

目录💻 一、前言二、下载依赖配置环境1、配置系统环境1.1、配置桥接网络1.1.1、parallels desktop配置1.1.2、VMware配置 1.2、配置root用户登陆 2、环境配置安装下载2.1、安装ipset和ipvsadm2.2、关闭SWAP分区 3、配置Containerd容器3.1、下载安装Containerd3.2、创…

数据结构之线性表(单链表的实现)

目录 一、单链表的原理 二、单链表的实现 1.单链表的定义 2.单链表的初始化 3.清空单链表 4.单链表是否为空 5.单链表的长度 6.获取指定位置 i 的元素 7.获取指定元素 e 的位置 8.向链表中插入指定位置的元素 9.向链表中删除指定位置的元素 10.遍历链表中的元素 …

zdppy+vue3+onlyoffice开发文档管理系统实战 20240813登录功能中Python生成验证码校验的研究

遗留的问题 1、登录功能 5、设计登录的接口 6、前后端联调,实现登录功能 7、要记录登录的Token和用户名,跳转到首页 2、注册功能 3、用户管理 4、角色管理 5、权限管理 6、分享功能 tb_user拆成基本信息和详细信息两张表。 6、前后端联调&#xff0c…