• Prometheus入门到放弃(2)之Node_export安装部署


    1、下载安装

    node_exporter服务需要在三台机器都安装,这里我们以一台机器为例:

    地址:https://prometheus.io/download/

    ### 另外两个节点部署时,需要先创建脚本中运行用户prometheus
    [root@prometheus-server ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
    [root@prometheus-server ~]# tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
    [root@prometheus-server ~]# cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/
    ## 编辑启动脚本
    [root@prometheus-server ~]# vim /usr/lib/systemd/system/node_exporter.service
    [Unit]
    Description=node_export
    Documentation=https://github.com/prometheus/node_exporter
    After=network.target
     
    [Service]
    Type=simple
    User=prometheus
    ExecStart=/usr/local/bin/node_exporter
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target

    ## 启动
    [root@prometheus-server ~]# systemctl enable node_exporter
    Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
    [root@prometheus-server ~]# systemctl start node_exporter
    ## 监题9100端口
    [root@prometheus-server ~]# netstat -anlptu|grep 9100
    tcp6       0      0 :::9100                 :::*                    LISTEN      5216/node_exporter 

    Node_exporter安装非常简单,下载解压启动就可以,node_exporter只是收集操作系统的一些指标,如果想要进行其它服务的监控收集,需要额外安装对应的exporter服务。这里之所以没有采用docker方式部署,原因如下:

    官方说明:https://github.com/prometheus/node_exporter

    2、配置prometheus监控目标

    Node_export 相当于一个客户端一样,运行在各个节点进行机器数据的收集。

    [root@prometheus-server ~]# vim /etc/prometheus/prometheus.yml
    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']
      - job_name: 'node'   ### 新增加job
        static_configs:
        - targets: ['10.10.0.11:9100','10.10.0.12:9100','10.10.0.13:9100']  ### 主机列表
    ## 重载配置
    ### 只有在prometheus启动时添加--web.enable-lifecycle参数,才可以进行热加载重置配置文件
    [root@prometheus-server ~]# curl -X POST http://localhost:9090/-/reload

    3、访问prometheus 

    Status >> targets,可以看到新增加的节点已经成功连接prometheus服务

    4、收集系统CPU监控信息

      4.1 CPU使用率

      公式:100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

      4.2 CPU负载

      公式:

        node_load1     ## 1分钟负载

        node_load5     ##5分钟负载

        node_load15   ##15分钟负载

    5、收集系统内存监控信息

      5.1 内存使用率

      公式:(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes ))* 100

      5.2 可用内存(单位:M)

      公式:node_memory_MemAvailable_bytes / 1024 / 1024 

    6、收集系统磁盘监控信息

      6.1 磁盘总大小(单位: G)

      公式:node_filesystem_size_bytes {fstype=~"ext4|xfs"} / 1024 / 1024 / 1024

      6.2 磁盘剩余大小(单位: G)

      公式:node_filesystem_avail_bytes {fstype=~"ext4|xfs"}  / 1024 / 1024 / 1024

      6.3 磁盘使用率

      公式:(1-(node_filesystem_free_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"})) * 100

    7、收集系统网络监控信息

      7.1 网卡入网流量 (指定某一个网卡)

      公式:irate(node_network_receive_bytes_total{device='ens32'}[5m])

      7.2 网卡出网流量(指定某一个网卡)

      公式:irate(node_network_transmit_bytes_total{device='ens32'}[5m])

    说明:以上收集系统各信息,都是通过node_exporter服务进行数据的收集,然后通过prometheus内置的PromQL语句进行组合查询,对于每一个公式,都可以在prometheus WEB界面测试查询。

    比如,查看系统可用内存,第一张图是通过prometheus界面promsql语句查询,第二幅图是在机器上通过free -lm命令查出:

    注意:新版本node_exporter中一些PromQL查询指标值与旧版本不一致,使用时注意区分。

    关于具体的PromQL语句以及公式中函数的使用参考:https://prometheus.io/docs/prometheus/latest/querying/functions/

  • 相关阅读:
    两数之和
    IDEA类的旁边有个对勾
    Markdown 常用语法
    GitLab 使用指南(IntelliJ IDEA)
    Python yield 用法
    Mac for MySQL 5.7 安装教程
    Mac Hadoop2.6(CDH5.9.2)伪分布式集群安装
    Hive 建外链表到 Hbase(分内部表、外部表两种方式)
    hive grouping sets 等聚合函数
    hive row_number等窗口分析函数
  • 原文地址:https://www.cnblogs.com/tchua/p/11102462.html
Copyright © 2020-2023  润新知