Grafana + Prometheus监控篇之Windows监控Linux服务器资源
<h2> 引言</h2><p> 今天这篇文章介绍一下windows本地环境监控linux服务器资源指标,写这个的动机是源于性能测试。大家做性能测试之前一定要搞清楚一些概念性的东西,比如说什么是指标,需要监控什么指标。在很久之前,我写过一篇性能测试中关键指标的监控与分析文章,</p>
<p> 里面介绍了关于指标的概念。</p>
<p> 闲话不多说,今天介绍的工具主要是监控linux服务器上的资源指标,例如:CPU,内存,硬盘,网络等资源。</p>
<h2> 工具介绍</h2>
<p> Grafana是一款用Go语言开发的跨平台开源数据度量分析及可视化工具,可以做数据监控和数据统计,带有告警功能。</p>
<p> Grafana支持许多不同的时间序列数据(数据源)存储后端。每个数据源都有一个特定的查询编辑器。官方支持以下数据源:Graphite、infloxdb、opensdb、prometheus、elasticsearch、cloudwatch等。</p>
<p> Prometheus(简称Prom)前身是SoundCloud的告警工具包,现已演化成一个独立的开源监控系统。属于Kurberntes所在的Cloud Native Computing Foundation。</p>
<p> Prometheus把一些常用数据库、系统、中间件等的指标数据的采集做成了一个个 exporter,在生产环境中,直接导入使用就可以。采用 http 协议,使用 pull 模式,拉取数据,简单易懂。 总而言之,它是用来拉取数据的。</p>
<p> Exporters:负责向prometheus server做数据汇报的程序统。而不同的数据汇报由不同的exporters实现,比如监控主机有node-exporters,mysql有MySQL server exporter等</p>
<p> 在Prometheus架构中,Exporters是负责收集数据并将信息汇报给Prometheus Server的组件。这篇文章我主要是监控Linux服务器资源,官方提供了node_exporter内置了对主机系统的基础监控。</p>
<p> 下面是Prometheus核心架构图,有兴趣的话可以了解一下: 如果看不明白,请移步官方中文文档:https://prometheus.fuckcloudnative.io/</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913113233111-133326990.png" alt="" loading="lazy"></p>
<h2> 监控方式</h2>
<p> 监控的流程,简单画一个草图,帮助理解 ,如图:</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913130631748-1306982378.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> </p>
<h2> 环境搭建</h2>
<p> Grafana安装:https://grafana.com/grafana/download?platform=windows</p>
<p> Prometheus安装: https://prometheus.io/download/</p>
<p> Node_exporter安装:https://github.com/prometheus/node_exporter/releases</p>
<p> </p>
<p> 总共安装上述三样程序,安装之后启动具体详情见下文:</p>
<p> 1、Grafana运行: 双击exe即可,默认端口3000,如图:</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913120749169-1920901518.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> 查看进程:</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913120819834-1989729567.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> 2、Prometheus运行:同上</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913120850330-826130734.png" alt="" loading="lazy"></p>
<p> 启动方式:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 默认启动
直接双击exe文件,启动9090端口
# 自定义端口启动
prometheus.exe --config.file=prometheus.yml --web.listen-address=:8091 &
</pre>
</div>
<p> 访问Ip+8091地址,status→targets出现UP正常启动成功,如图所示:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913121639285-1997711261.png" alt="" loading="lazy"></p>
<p> </p>
<p><strong> 需要注意的地方:</strong></p>
<p> 在启动这个之前,需要修改Prometheus配置, prometheus.yml配置文件请求获取exporter采集器数据,比如我的node-exporter端口号是9100</p>
<p> prometheus.yml中一共定义了两个监控:一个是监控prometheus自身服务,另一个是监控Linux服务器。这里给个完整的示例:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">scrape_configs:
#prometheus自身监控
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
#linux服务器监控
- job_name: 'linux'
static_configs:
- targets: ['NODE_IP:9100']
labels:
instance: node1
</pre>
</div>
<p> </p>
<p> 3、Node-exporter启动方式:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">#默认启动,起来后node_exporter会监控在9100端口
./node_exporter
#自定义启动
nohup ./node_exporter --web.listen-address=":9101" &
</pre>
</div>
<p> 日志追加:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">nohup ./node_exporter > ./nohup.out 2>&1 &
</pre>
</div>
<p> 如图:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913130136376-1932934966.png" alt="" loading="lazy"></p>
<p> </p>
<p> 进程查看命令:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">ps -ef | grep node_
查看进程
netstat -tunlp | grep node
查看端口
netstat -tunlp | grep 9101
</pre>
</div>
<p> 如图:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913130428676-790177695.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<h2> 前端Grafana配置面板设置</h2>
<p> 启动grafana后,浏览器输入:ip+3000端口,默认账号:admin,密码:admin</p>
<p> 既然我们已经拿到了数据,那首先就配置数据源,如图:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913131053456-1663861134.png" alt="" loading="lazy"></p>
<p> </p>
<p> 主要是这个url配置对,这个8091就是prometheus服务的端口。</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913132935275-1926005083.png" alt="" loading="lazy"></p>
<p> </p>
<p> 导入监控模板,如图:</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133203662-1540283255.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> 模板地址:https://grafana.com/grafana/dashboards</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133306059-1649655844.png" alt="" loading="lazy"></p>
<p> 选择最新的模板:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133329022-329525522.png" alt="" loading="lazy"></p>
<p> </p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133306059-1649655844.png" alt="" loading="lazy"></p>
<p> </p>
<p> 将id拷贝进来,如图:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133458419-1526926486.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> 成功之后会多一个面板:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133539832-1880392609.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> 点击进去就可以看到非常炫丽的图形界面:</p>
<p> <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133831263-1588941921.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<h2> 总结</h2>
<p> 以上就是windows环境下对Linux服务器资源实时监控之Grafana实例,有兴趣的话,可以动动手实践一番。 后面会继续分享Linux下Grafana监控环境的搭建与使用。欢迎加入咋们测试开发交流群学习与进步~</p>
<p> </p>
<p> </p>
<div class="cnblogs_Highlighter"> </div>
</div>
<div id="MySignature" role="contentinfo">
<div id="AllanboltSignature">
<p id="PSignature" style="border-top: #e0e0e0 1px dashed; border-right: #e0e0e0 1px dashed; border-bottom: #e0e0e0 1px dashed; border-left: #e0e0e0 1px dashed; padding-top: 10px; padding-right: 20px; padding-bottom: 30px; padding-left: 200px; background: url("https://files-cdn.cnblogs.com/files/liudinglong/1574901112166.bmp") #e5f1f4 no-repeat 3% 45%; font-family: 微软雅黑; font-size: 12px">
<br>
作者:全栈测试开发日记
<br>
出处:https://www.cnblogs.com/liudinglong/
<br>
csdn:https://blog.csdn.net/liudinglong1989/
<br>
微信公众号:全栈测试开发日记
<br>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
</p>
</div><br><br>
来源:https://www.cnblogs.com/liudinglong/p/13660936.html
頁:
[1]