Prometheus+Noe Expoter+Grafana:资源监控初体验(基于cenots7,没使用docker)

学习资料

https://yunlzheng.gitbook.io/prometheus-book/parti-prometheus-ji-chu/quickstart/prometheus-quick-start/use-node-exporter

Prometheus(普罗米修斯)?

Prometheus是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算、统一分析和告警的新模型。(关于更多资料访问下面的文档)

学习目的

学这个的目的很纯粹就是想实现Locust/jmeter性能测试监控服务器指标用的。

安装(下面采用的二进制方式安装,docker还没学...)

  1. https://prometheus.io/download/;Centos下载:prometheus-2.21.0-rc.0.linux-amd64.tar.gz

  2. 然后上传到:centos7服务器上

  3. 执行命令tar -zxf prometheus-2.21.0-rc.0.linux-amd64.tar.gz;cd 到prometheus-2.21.0-rc.0.linux-amd64.tar.gz 目录如下(data 目录是新建的)

    Snipaste_2020-09-03_15-57-52.png

  4. 然后执行开放端口9090的命令firewall-cmd --zone=public --add-port=9090/tcp --permanent

  5. 重启防火墙:firewall-cmd --reload

  6. 执行./prometheus得到如下

    Snipaste_2020-09-03_16-02-28.png

  7. 访问:ip:9090端口,得到如下页面

    Snipaste_2020-09-03_16-04-07.png

Node Exporter采集数据

在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。

  • 安装

    curl -OL https://github.com/prometheus/node_exporter/releases/download/v0.15.2/node_exporter-0.15.2.linux-amd64.tar.gz
    tar -xzf node_exporter-0.15.2.linux-amd64.tar.gz
    
  • 运行

  cd node_exporter-0.15.2.linux-amd64/
  ./node_exporter 

Snipaste_2020-09-03_16-43-22.png

访问ip:9100如下(如无法访问,请检查下是否开放该端口)

Snipaste_2020-09-03_16-45-18.png

访问ip:9100/metrics会初始化监控数据

Snipaste_2020-09-03_16-46-46.png

从Noe Expoter收集监控数据

让Prometheus Server能够从当前node exporter获取到监控数据,这里需要修改Prometheus配置文件。

  • prometheus.yml并在scrape_configs节点下添加以下内容

      - job_name: 'prometheus'
        static_configs:
          - targets: ['localhost:9090']
      # 采集node exporter监控数据
      - job_name: 'node'
        static_configs:
          - targets: ['localhost:9100']
    

    Snipaste_2020-09-03_16-59-16.png

  • 后台运行Noe Expoter

    # nohup后台运行该应用
    nohup ./../node_exporter-0.15.2.linux-amd64/node_exporter
    

    Snipaste_2020-09-03_17-07-35.png

    然后关闭这个连接linux窗口或者再打开一个新的

  • 重启 Prometheus Server./prometheus

    Snipaste_2020-09-03_17-11-16.png

使用PromQL查询监控数据

这里进行了忽略,有需要的朋友可以去学习资料进行学习

监控数据可视化 Grafana(这是个重点)

Prometheus UI提供了快速验证PromQL以及临时可视化支持的能力,而在大多数场景下引入监控系统通常还需要构建可以长期使用的监控数据可视化面板(Dashboard)。这时用户可以考虑使用第三方的可视化工具如Grafana,Grafana是一个开源的可视化平台,并且提供了对Prometheus的完整支持。

官网:https://grafana.com/

systemctl start grafana-server

访问ip:3000得到如下界面(默认用户名、密码都是admin)

Snipaste_2020-09-03_17-27-04.png

首次使用admin、admin登录会让你设置密码,可以skip跳过

Snipaste_2020-09-03_17-30-30.png

  • 配置数据源,点击主页的DATA SOURCES

    Snipaste_2020-09-03_17-32-56.png

    • 选择Prometheus(点一哈就可以了)

    • 设置如下

      Snipaste_2020-09-03_17-39-25.png

    • 新建dashboard(简单理解就是建一个监控图表任务)

      Snipaste_2020-09-03_17-51-59.png

    • 任务设置如下

      Snipaste_2020-09-03_17-50-19.png

    • 点击Save之后,查看具体Dashboards

      Snipaste_2020-09-03_17-54-26.png

    • 效果

      Snipaste_2020-09-03_17-57-24.png

  • 使用开源的Dashboard

    Grafana社区鼓励用户分享Dashboard通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard:

    • 以https://grafana.com/grafana/dashboards/9276为例

      • 下载json文件

        Snipaste_2020-09-03_18-06-50.png

      • 导入json文件

        Snipaste_2020-09-03_18-07-44.png

      • 最后的效果

        Snipaste_2020-09-03_18-25-20.png

我的疑问

这里导入json文件后,分组名称选node他就有数据出来,虽然也有部分没有,但是如果我分组选prometheus就会出现一个数据都没有的情况,

Snipaste_2020-09-03_18-29-13.png

这点我现在没弄明白,也是才开始接触这个尼,希望如果有人知道,指出来。

其他

后面在慢慢学习吧

作者:zy7y
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/zy7y/p/13609219.html