初步搭建 prometheus+ Grafana服务器性能监控平台


前言

日常工作中经常会有需要进行性能测试的项目,jmeter能帮助我们很好的完成压测工作,但jmeter有一个缺点:只能监控脚本执行时的服务器性能,脚本执行结束后服务器资源的释放和消耗情况就不能直观的查看。所以我们需要一个可以持续监控服务器资源消耗情况的工具。


提示:以下是本篇文章正文内容,下面案例可供参考

一、概述

1.1 Grafana介绍

简介:Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
它主要有以下六大特点:

1.展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;

2.数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

3.通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;

4.混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;

5.注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;

6.过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

1.2Prometheus介绍

Prometheus也是一个近年比较火的开源监控框架,和Zabbix不同之处在于Prometheus相对更灵活点,模块间比较解耦,比如告警模块、代理模块等等都可以选择性配置。服务端和客户端都是开箱即用,不需要进行安装。zabbix则是一套安装把所有东西都弄好,对比下来适合新手小白使用。

  • zabbix的客户端agent可以比较方便的通过脚本来读取机器内数据库、日志等文件来做上报。而Prometheus的上报客户端则分为不同语言的SDK和不同用途的exporter两种,比如如果你要监控机器状态、mysql性能等,有大量已经成熟的exporter来直接开箱使用,通过http通信来对服务端提供信息上报(server去pull信息);而如果你想要监控自己的业务状态,那么针对各种语言都有官方或其他人写好的sdk供你使用,都比较方便,不需要先把数据存入数据库或日志再供zabbix-agent采集。

  • zabbix的客户端更多是只做上报的事情,push模式。而Prometheus则是客户端本地也会存储监控数据,服务端定时来拉取想要的数据。

  • 界面来说zabbix比较陈旧,而prometheus比较新且非常简洁,简洁到只能算一个测试和配置平台。要想获得跟好的监控体验,搭配Grafana还是必走之路。

1.3 Grafana结构图

在这里插入图片描述

1.4 总结

Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态。

二、linux系统安装

2.1.Prometheus安装

2.1.1 安装包获取

官网下载:
https://prometheus.io/download/
在这里插入图片描述
linxu获取tar包:

wget https://github.com/prometheus/prometheus/releases/download/v2.35.0/prometheus-2.35.0.linux-amd64.tar.gz

2.1.2安装解压

手动上传安装包到服务器

scp  prometheus-2.35.0.linux-amd64.tar.gz username@IP:/opt

解压

tar -xvzf prometheus-2.35.0.linux-amd64.tar.gz

2.1.3 验证

启动

cd prometheus-2.35.0.linux-amd64/
./prometheus --config.file=prometheus.yml 

web页面查看是否安装启动成功
浏览器输入:被安装设备IP:9090,展示以下页面为成功
在这里插入图片描述

2.node_exporter安装

2.1.1安装包获取

官网下载
https://github.com/prometheus/node_exporter/releases
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmeDxDtT-1650956983338)(https://img-blog.csdnimg.cn/3f0533cc8eed47daab26d6633bf08211.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNDU1OTY2OTE=,size_20,color_FFFFFF,t_70,g_se,x_16
linux获取安装包

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.darwin-amd64.tar.gz

2.2.2上传与安装

手动上传

scp node_exporter-1.3.1.darwin-amd64.tar.gz  username@IP:/opt

解压命令:

tar -xvzf  scp node_exporter-1.3.1.darwin-amd64.tar.gz

2.2.3 安装验证

启动

cd node_exporter-1.1.2.linux-amd64/
./node_exporter 

通过浏览器访问 安装机器IP:9100/metrics,展示下面页面为启动成功
在这里插入图片描述

3.Grafana安装

2.3.1安装包获取

官网下载
https://grafana.com/grafana/download
在这里插入图片描述

linux获取安装包

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.5.0.linux-amd64.tar.gz

2.3.2 上传与安装

手动上传

scp grafana-enterprise-8.5.0.linux-amd64.tar.gz  username@IP:/opt

解压命令:

tar -xvzf  grafana-enterprise-8.5.0.linux-amd64.tar.gz

2. 3.3 验证

启动

cd grafana-enterprise-8.5.0.linux-amd64/
./bin/grafana-server web 

通过浏览器访问 安装机器IP:3000,展示下面页面为启动成功
初始账户密码admin首次登录完成需要修改密码
在这里插入图片描述

三、配置

3.1 Prometheus配置

3.1.1 修改配置文件

编辑 prometheus.yml

vi prometheus.yml 
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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: ['localhost:9090']
 # 在这里,把 node_exporter 的 ip 和端口号填上
  - job_name: 'server'
    static_configs:
    - targets: ['localhost:9100']

其大致可分为四部分:

  • global:全局配置,其中scrape_interval表示抓取一次数据的间隔时间,evaluation_interval表示进行告警规则检测的间隔时间;
  • alerting:告警管理器(Alertmanager)的配置,目前还没有安装Alertmanager;
  • rule_files:告警规则有哪些;
  • scrape_configs:抓取监控信息的目标。一个job_name就是一个目标,其targets就是采集信息的IP和端口。这里默认监控了Prometheus自己,可以通过修改这里来修改Prometheus的监控端口。Prometheus的每个exporter都会是一个目标,它们可以上报不同的监控信息,比如机器状态,或者mysql性能等等,不同语言sdk也会是一个目标,它们会上报你自定义的业务监控信息。

3.1.2 验证配置

浏览器访问http://IP:9090/targets ,node_exporter 信息展示且 state状态为UP
在这里插入图片描述

3.2 Grafana 配置

3.2.1 添加prometheus 插件

访问http://39.106.254.208:3000/
在这里插入图片描述
点这里
在这里插入图片描述

3.2.2 添加 prometheus数据源

在这里插入图片描述
保存即可
在这里插入图片描述
添加展示模板
在这里插入图片描述
配置数据源
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AlB3omM-1650961037532)(https://img-blog.csdnimg.cn/ac40173056514be7ade8bb881ef86cc2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNDU1OTY2OTE=,size_20,color_FFFFFF,t_70,g_se,x_16

配置完成效果
在这里插入图片描述

4、异常总结

4.1 Grafana界面界面报错

在这里插入图片描述
这里是Grafana版本问题升级至最新版或者是V8.4.0即可。
我这里用的最新配置:
Grafana:8.5.0
prometheus:2.35.0
node_exporter :1.3.1

4.2 Grafana 界面无数据

在这里插入图片描述
运行Grafana服务器配置过低(单核2G云服务器)导致不能正常使用。

4.3 页面不能正常访问

在这里插入图片描述
首先排除服务失踪正常运行

ps -ef |grep grafana

在这里插入图片描述
服务正常运行排查端口是否开放

firewall-cmd --list-all

查看对应端口是否开放
在这里插入图片描述
没开就一个个加吧,当然全部打开也是可以的

firewall-cmd --zone=public --add-port=8080/tcp --permanent

范围打开add-port=起始端口号-*/tcp

firewall-cmd --zone=public --add-port=8080-10000/tcp --permanent

改完记得重启

firewall-cmd --reload

总结

以上就是今天要讲的内容,本文仅仅简单介绍了prometheus+ Grafana的搭建和使用,而Grafana提供了大量监控插件供我们使用大家自己去尝试。后续我出更新相关内容

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值