日常工作中经常会有需要进行性能测试的项目,jmeter能帮助我们很好的完成压测工作,但jmeter有一个缺点:只能监控脚本执行时的服务器性能,脚本执行结束后服务器资源的释放和消耗情况就不能直观的查看。所以我们需要一个可以持续监控服务器资源消耗情况的工具。
提示:以下是本篇文章正文内容,下面案例可供参考
简介:Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
它主要有以下六大特点:
1.展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2.数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
3.通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
4.混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5.注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6.过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
Prometheus也是一个近年比较火的开源监控框架,和Zabbix不同之处在于Prometheus相对更灵活点,模块间比较解耦,比如告警模块、代理模块等等都可以选择性配置。服务端和客户端都是开箱即用,不需要进行安装。zabbix则是一套安装把所有东西都弄好,对比下来适合新手小白使用。
zabbix的客户端agent可以比较方便的通过脚本来读取机器内数据库、日志等文件来做上报。而Prometheus的上报客户端则分为不同语言的SDK和不同用途的exporter两种,比如如果你要监控机器状态、mysql性能等,有大量已经成熟的exporter来直接开箱使用,通过http通信来对服务端提供信息上报(server去pull信息);而如果你想要监控自己的业务状态,那么针对各种语言都有官方或其他人写好的sdk供你使用,都比较方便,不需要先把数据存入数据库或日志再供zabbix-agent采集。
zabbix的客户端更多是只做上报的事情,push模式。而Prometheus则是客户端本地也会存储监控数据,服务端定时来拉取想要的数据。
界面来说zabbix比较陈旧,而prometheus比较新且非常简洁,简洁到只能算一个测试和配置平台。要想获得跟好的监控体验,搭配Grafana还是必走之路。
Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态。
官网下载:
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
手动上传安装包到服务器
scp prometheus-2.35.0.linux-amd64.tar.gz username@IP:/opt
解压
tar -xvzf prometheus-2.35.0.linux-amd64.tar.gz
启动
cd prometheus-2.35.0.linux-amd64/
./prometheus --config.file=prometheus.yml
web页面查看是否安装启动成功
浏览器输入:被安装设备IP:9090,展示以下页面为成功
官网下载
https://github.com/prometheus/node_exporter/releases
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmeDxDtT-1650956983338)(
linux获取安装包
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.darwin-amd64.tar.gz
手动上传
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
启动
cd node_exporter-1.1.2.linux-amd64/
./node_exporter
通过浏览器访问 安装机器IP:9100/metrics,展示下面页面为启动成功
官网下载
https://grafana.com/grafana/download
linux获取安装包
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.5.0.linux-amd64.tar.gz
手动上传
scp grafana-enterprise-8.5.0.linux-amd64.tar.gz username@IP:/opt
解压命令:
tar -xvzf grafana-enterprise-8.5.0.linux-amd64.tar.gz
启动
cd grafana-enterprise-8.5.0.linux-amd64/
./bin/grafana-server web
通过浏览器访问 安装机器IP:3000,展示下面页面为启动成功
初始账户密码admin首次登录完成需要修改密码
编辑 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=` 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']
其大致可分为四部分:
浏览器访问http://IP:9090/targets ,node_exporter 信息展示且 state状态为UP
访问http://39.106.254.208:3000/
点这里
保存即可
添加展示模板
配置数据源
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0AlB3omM-1650961037532)(
这里是Grafana版本问题升级至最新版或者是V8.4.0即可。
我这里用的最新配置:
Grafana:8.5.0
prometheus:2.35.0
node_exporter :1.3.1
运行Grafana服务器配置过低(单核2G云服务器)导致不能正常使用。
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提供了大量监控插件供我们使用大家自己去尝试。后续我出更新相关内容