说明:我们在prometheus浏览器中运行查询,查询的结果只是临时存储在prometheus服务器上。我们可以通过三种方式使查询持久化
根据查询创建新指标
从查询生成警报
使用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_rulesinterval: 10s
rules:
- record: instance:node_cpu:avg_rate5m
expr: 100 - avg(irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100labels:
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是一款采用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