• Prometheus 查询持久化


    说明:我们在prometheus浏览器中运行查询,查询的结果只是临时存储在prometheus服务器上。我们可以通过三种方式使查询持久化

    1) 记录规则

            根据查询创建新指标

    2) 警报规则

            从查询生成警报

    3) 可视化

            使用Grafana等仪表盘可视化查询


    一、记录规则

            记录规则是一种根据已有的时间序列计算新时间序列的方法。特别是聚合时间序列

            适用场景:

            1. 跨多个时间序列生成聚合

            2. 预先计算消耗大的查询

            3. 产生可用于生成警报的时间序列

            配置记录规则:

            global: #块中

            evaluation_interval: 15s

            规则文件:

            rule_files:
                - "first_rules.yml"
                - "second_rules.yml"

    # 创建规则文件目录

            mkdir -p /usr/local/prometheus/rules

    # 创建规则文件

            cd /usr/local/prometheus/rules && touch node_rules.yml

    # 编辑prometheus.yml

             rule_files:
                - "rules/node_rules.yml"

    # 添加记录规则

    groups: 
    - name: node_rules

      interval: 10s
      rules: 
      - record: instance:node_cpu:avg_rate5m
        expr: 100 - avg(irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100

        labels: 

           metric_type: aggregation

    #说明:
    1.1 规则组名称:node_rules,全局唯一
    1.2 规则组内的规则,按照间隔时间顺序执行,默认情况下,通过evaluate_interval来控制间隔时间,规则组内可以使用interval子句进行覆盖
    1.3 规则组内,后面的规则可以调用前面的规则创建指标,但是规则组间是并行的

    1.4 记录名称命名规范: level:metric:operations

            level: 表示聚合级别,metric:表示指标名称 ,operation: 表示应用于指标的操作列表

     #完整的记录

    groups: 
    - name: node_rules
      rules: 
      - record: instance:node_cpu:avg_rate5m
        expr: 100 - avg(irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100
      - record: instance:node_memory_usage:percentage
        expr: (node_memory_MemTotal_bytes-node_memory_MemFree_bytes-node_memory_Cached_bytes-node_memory_Buffers_bytes)/node_memory_MemTotal_bytes *100
      - record: instance:root:node_filesystem_usage:percentage
        expr: (node_filesystem_size_bytes{mountpoint="/"}-node_filesystem_free_bytes{mountpoint="/"})/node_filesystem_size_bytes *100

     重启prometheus

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

    prometheus前台验证

    二、可视化 Grafana组件    

    grafana是一款采用go编写的开源应用,主要用于大规模指标数据的可视化展现,是当前主流监控的可视化工具;grafana可以接收不同数据源的数据,然后提供可视化仪表盘。它支持多种数据源: elasticsearch,Prometheus,Loki
    grafana基础组成
    1. Dashboard: 仪表盘,以图形的形式展示从DataSource获取的数据
    2. Row:行。Dashboard基础组成单元。一个Dashboard可以包含很多row
    3. Panel: 面板。row的展示信息的方式
    4. Query Editor:查询编辑器。用来指定从哪里获取数据
    5. Organization: org,组织。每个用户可以拥有多个组织,每个grafana有一个磨人的org,用户登录后可以在不同的org进行切换
    6. User: 用户。grafana有三种角色,admin,editor,viewer。
                    admin权限最高
                    editor不可以创建用户,不可以新增数据源,可以创建dashboard
                    viewer仅仅可以查看dashboard

     Grafana部署

    1. 下载软件包

            wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.1.7-1.x86_64.rpm

    2. 安装

            yum localinstall grafana-enterprise-9.1.7-1.x86_64.rpm -y

    3. 启动服务

            systemctl start gfarana-server.service

            systemctl enable grafana-server.service

    4. grafana默认配置文件,默认端口:3000

            /etc/grafana/grafana.ini

     node_exporter dashboard展示 

    process_exporter dashboard展示

     

     较为美观的dashboard推荐:

    node_exporter:     1860
    process_exporter:  249

  • 相关阅读:
    如果焊接也需要打怪升级,你在哪一级?
    【Pytest实战】Pytest+Allure+Jenkins自动化测试框架搭建
    Nginx实现四层代理与七层代理
    2024 MCM数学建模美赛2024年A题复盘,思路与经验分享:资源可用性与性别比例 | 七鳃鳗的性别比例变化对生态系统稳定性的影响(四)
    【C++】【LeetCode】【二叉树的前序、中序、后序遍历】【递归+非递归】
    34、幂等性
    vuepress 打包 :window is not defined
    【FNN回归预测】基于matlab蝙蝠算法优化前馈神经网络数据回归预测【含Matlab源码 2070期】
    Mapper层注解讲解
    【云原生 | 42】Docker快速部署高可靠性编程语言Erlang
  • 原文地址:https://blog.csdn.net/weixin_41910699/article/details/127378367