Prometheus+Grafana+NodeExporter 打造一款出色的监控系统,帅呆了!

1概述

本文使用Prometheus+Grafana+Node Exporter搭建Linux主机监控系统:

Prometheus 是一个监控系统,可以收集和存储来自各个目标的指标数据。它支持多种数据源,包括 Node Exporter。

0f578cd2dd9d01ffcd14e878ec667f13.png

Grafana 是一个可视化工具,可以用于可视化 Prometheus 收集到的指标数据。它提供了多种仪表盘和图表类型,可以帮助您快速了解监控数据。

dfb61f08d3f8dcdd7aa4c2cae2f2aecf.png

Node Exporter是一个进程,可以收集 Linux 主机的各种指标数据,并将其暴露为 Prometheus 可以抓取的 HTTP 端点。

2安装

环境准备

以下是本文所需的环境:

  • 一台运行 Linux 的服务器(建议使用 CentOS 或 Ubuntu)

  • Docker

  • Prometheus 和 Grafana

  • Node Exporter

1、安装prometheus

这里我们可以在github上获取最新的版本:

  • https://github.com/prometheus/prometheus

vim prometheus.yml
# my global config
global:
  scrape_interval:     15s # 采集被监控段指标的一个周期
  evaluation_interval: 15s # 告警评估的一个周期

# 告警的配置文件
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 告警规则配置
rule_files:
  # - "first_rules.yml"
# 被监控端的配置,目前只有一个节点,就是prometheus本身
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
docker run -d  -p 9090:9090 \
--name prometheus  \
--restart on-failure  \
-v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus

完全启动后可以,访问Prometheus自带的UI:xx.xx.xx.xx:9090/,打开以下页面说明安装…

5704f171ac6a6c6d78a685525f40584b.png
2、安装grafana
docker  run -d --name=grafana  -p 3000:3000  grafana/grafana

执行后,下载镜像并启动。完成启动完成,打开xx.xx.xx.xx:3000,默认用户名/密码:admin/admin

61b9357730fd912cf5bf141bf261213c.png
3、安装node_exporter
cd /usr/local/src/
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz
mv /usr/local/src/node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin
vim /usr/lib/systemd/system/node_exporter.service

node_exporter.service文件内容:

[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable node_exporter
systemctl restart node_exporter

启动后打开这个地址:xx.xx.xx.xx:9100/

af2ed45d5a868b06a7e577aaeab0a6a9.png e0c766041c3f4045dedfb8ae3829e161.png

以上页面能打开说明安装成功。

如果安装失败可以使用:

systemctl status node_exporter

看看有什么异常。

4、配置prometheus
# 启动后,配置prometheus.yml
vim /data/prometheus/prometheus.yml
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['xx.xx.xx.xx:9090']
  # 新增,采集node_exporter监控数据
  - job_name: "Linux-Metrics"
    static_configs:
    - targets: ['xx.xx.xx.xx:9100']
# 重新启动prometheus
systemctl restart prometheus

3使用

xx.xx.xx.xx:3000,默认用户名/密码:admin/admin

1905b907e630d83a75e604ba664d7216.png

选择 "Add your first data source"

eb99af7d2a1cc53b75af628df66c2444.png

进入后选择Prometheus

2a0aee3b5eb76f85a899b8b94eeeeaa8.png

填写相关信息

dd315a9df5cb9c7f096148515f450d21.png

添加Prometheus模板

7a328ccbf67df746178b8af5d9eeaea0.png

输入id号,9276

70516042dea3fede0a314daf631b6d49.png

然后下拉,选择Prometheus,然后Import

cdfd97953db6822e4b86565df023066c.png

成功展示来由Prometheus数据

9cd65feca8cca264443a2f7813a2a9bd.png

至此整个Linux主机监控就完成了。

4补充

1、Dashboard模板

如果不知道使用什么模板可以找个教程使用教程里的就好,如果想进一步了解下模板可以去官网这里搜索相应的模板。

  • 传送门:https://grafana.com/grafana/dashboards

里面可以输入关键词搜索,还有相应的下载量排名或评分排名。

cf2a7458a392131da6b46281fcca119b.png

选择一个,点击进入详情页面,可以复制ID

3cb1dda9f464087bb9ad1b8d83413edc.png
2、数据对照
60bb7a0669c9de50cff5481db82e9f29.png

可以看到有些数据与top是一致的,有的不一致。主要是计算的方式不一致,可以选择一个统计图,点击标题

dc91cc3b5655da07604c5a47376e1381.png

Edit进入详情。

da349293ac6e07fa6d2bd955d3f52b80.png

比如已用内存它是根据这个计算公式算出来的。这样再对照着top的数据就是一致的了。

3、自定义模板

上面说到可以Edit进入dashboard详情,可以看到这么多的表达式。如果我们想调整这里的数据或过滤条件就可以编辑这些参数了。

当然从Edit进入的是单个统计模块,也可以从这里进入整个dashboard模板。修改这里的json

b076d5086224b42b761283ba31ff5ca8.png 1e531afc0c0948bc91199440d99c7c61.png

再来说一下这个表达式,这个表达式也就是PromQL 语言。

Grafana Dashboard 中的表达式是 PromQL 语言,它是 Prometheus 的指标查询语言。PromQL 是一种基于 Prometheus 数据模型的查询语言,可以用于查询和过滤 Prometheus 的指标数据。

PromQL 表达式可以用于以下目的:

  • 指标数据

  • 指标数据

  • 指标数据

  • 标数据进行聚合

PromQL 表达式使用以下语法:

[指标名] [操作符] [值]

例如,以下表达式将查询 CPU 使用率的指标数据:

cpu_usage

以下表达式将查询 CPU 使用率的指标数据,并将其限制为 100%:

cpu_usage < 100

以下表达式将计算 CPU 使用率的指标数据的平均值:

avg(cpu_usage)

以下表达式将将 CPU 使用率的指标数据按主机聚合:

by(host) cpu_usage

PromQL 语言具有丰富的功能,可以满足各种监控需求。

以下是一些常用的 PromQL 表达式:

查询指标数据

cpu_usage

过滤指标数据

cpu_usage < 100

计算指标数据

avg(cpu_usage)

对指标数据进行聚合

by(host) cpu_usage

如何简单调试PromQL,可以打开prometheus自带的web ui进入调试

3b6d4ac12c4f43393afc185086a87094.png

来源:juejin.cn/post/7288961029937070080

 
 
 
 
 
 

精品推荐

1.公司新入职一位大佬,把SpringBoot项目启动时间从7分钟降到了40秒!
2.拒绝写重复代码,试试这套开源的 SpringBoot 组件
3.还再用 Navicat?试试这款正版 MySQL 客户端,真香!
4.项目终于用上了PowerJob,晚上激动得睡不着!
5.别用 VMware 了,这款虚拟机简单、轻量、好用还免费...
6.RedisPlus 来了,性能炸裂!
7.CTO:谁在项目中使用 Arrays.asList、ArrayList.subList,就立马滚蛋!
8.解放双手!MyBatis-Plus可视化代码生成器来了,yyds!
资料免费共享群


1、4000G架构师全栈资料(点击查看)
2、99个实战项目(点击查看)
3、5000页互联网大厂面试题整理汇总(点击查看)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值