金画 發表於 2020-9-13 13:42:00

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>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</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>&nbsp;</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>&nbsp;</p>
<p>&nbsp;</p>
<p>  查看进程:</p>
<p>  <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913120819834-1989729567.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;  </p>
<p>&nbsp;  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 &amp;
</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>&nbsp;</p>
<p><strong>&nbsp;  需要注意的地方:</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" &amp;
</pre>
</div>
<p>  日志追加:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">nohup ./node_exporter &gt; ./nohup.out 2&gt;&amp;1 &amp;
</pre>
</div>
<p>  如图:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913130136376-1932934966.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;  进程查看命令:</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>&nbsp;</p>
<p>&nbsp;</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>&nbsp;</p>
<p>  主要是这个url配置对,这个8091就是prometheus服务的端口。</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913132935275-1926005083.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;  导入监控模板,如图:</p>
<p>  <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133203662-1540283255.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;  </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>&nbsp;</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133306059-1649655844.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;  将id拷贝进来,如图:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133458419-1526926486.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>  成功之后会多一个面板:</p>
<p><img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133539832-1880392609.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;  点击进去就可以看到非常炫丽的图形界面:</p>
<p>  <img src="https://img2020.cnblogs.com/blog/782587/202009/782587-20200913133831263-1588941921.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>  总结</h2>
<p>  以上就是windows环境下对Linux服务器资源实时监控之Grafana实例,有兴趣的话,可以动动手实践一番。 后面会继续分享Linux下Grafana监控环境的搭建与使用。欢迎加入咋们测试开发交流群学习与进步~</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="cnblogs_Highlighter">&nbsp;</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(&quot;https://files-cdn.cnblogs.com/files/liudinglong/1574901112166.bmp&quot;) #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]
查看完整版本: Grafana + Prometheus监控篇之Windows监控Linux服务器资源