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/

Prometheus入门到放弃(2)之Node_export安装部署的更多相关文章

  1. 《区块链:从入门到放弃》之obc安装步骤

    obc安装步骤 朋友们可能会好奇,厨师不研究菜谱怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去预研区块链和比特币技术,2个月下来,颇有斩获.期间得到IBM的CC同学指导我一步一步安装obc的 ...

  2. Kubernetes入门(一)——Kubernetes v1.18.5 安装部署

    Kubernetes的安装有两种方式:一是使用各个厂商封装的Kubernetes发行版,优点是可以一键安装部署,操作简单,缺点也很明显,若安装过程中某一步骤出现问题,很难定位处理:二是使用官方提供的k ...

  3. Hadoop入门进阶课程13--Chukwa介绍与安装部署

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  4. Apache入门篇(一)之安装部署apache

    一.HTTPD特性 (1)高度模块化:core(核心) + modules(模块) = apache(2)动态模块加载DSO机制: Dynamic Shared Object(动态共享对象)(3)MP ...

  5. Prometheus入门到放弃(1)之Prometheus安装部署

    规划: IP 角色 版本 10.10.0.13 prometheus-server 2.10 10.10.0.11 node_exporter 0.18.1 10.10.0.12 node_expor ...

  6. Docker 从入门到放弃(一)安装

    前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任 ...

  7. Prometheus入门到放弃(7)之redis_exporter部署

    redis监控,prometheus需要使用redis_exporter客户端. 这里我们采用docker方式部署,既可以部署在redis所在服务器,也可以部署在其他机器: docker镜像地址:ht ...

  8. Prometheus入门到放弃(6)之AlertManager进阶

    前面几个篇幅,我们介绍了alertmanger报警配置,在实际运维过程中,我们都会遇到,报警的重复发送,以及报警信息关联性报警.接下来我们就介绍下通过alertmanger对告警信息的收敛.一.告警分 ...

  9. Prometheus入门到放弃(5)之AlertManager部署

    alertmanager与exporters.cadvisor一样,都是独立于prometheus项目,这里我们也使用docker方式部署alertmanager. 1.下载镜像 镜像地址:https ...

随机推荐

  1. 浅谈Python-IO多路复用(select、poll、epoll模式)

    1. 什么是IO多路复用 在传统socket通信中,存在两种基本的模式, 第一种是同步阻塞IO,其线程在遇到IO操作时会被挂起,直到数据从内核空间复制到用户空间才会停止,因为对CPython来说,很多 ...

  2. Sublime Text3注册及汉化(支持Windows、MAC OS)

    苹果mac 版本下载 点击下载https://download.sublimetext.com/Sublime%20Text%20Build%203114.dmg PART_A 注册 v3103及以上 ...

  3. css中的浮动与定位

    传送门:https://www.cnblogs.com/junwuyao/p/7435257.html

  4. Mysql 查看所有线程,被锁的表

    查看所有MySQl相关的线程 show full processlist; 杀死线程id为2的线程 kill 2 查看服务器状态 show status like '%lock%'; 查看服务器配置参 ...

  5. SQL学习笔记(二)

    连接查询 数据准备 例1:查询学生信息及学生的成绩 等值连接 此方法会产生笛卡尔积,生成的记录总数=表1的总数*表2的总数,会产生临时表 内连接 select * from 表1 inner join ...

  6. 浅谈Linux环境下Socket选项的设置

    0.前言 TCP/IP协议栈是Linux内核的重要组成部分和网络编程的基石,虽然Linux和BSD有很大的联系,但是对于某些Socket选项和内核操作仍然存在差异,因此文中适用场景均为CentOS环境 ...

  7. exp/imp 注释乱码问题或Oracle EXP-00091的解决方法

    今天用imp 导入后,发现中注释乱码,源端.目的端数据库版本都是11.2.0.1 查看源端字符集: SQL> select userenv('language') from dual;USERE ...

  8. win10下caffe+anaconda+python+Jupyter Notebooks安装流程

    python3.5(推荐)或者python2.7 CUDA 8+ cuDNN5.1 python环境不能单独配置,必须先编译caffe,才能编译python环境. 下载caffe prebuild版本 ...

  9. Python判断是否是闰年

    year = 2012 if year % 100 != 0 and year % 4 == 0: print('闰年') elif year % 100 == 0 and year % 400 == ...

  10. linux非root用户安装rabbitmq

    因为rabbitmq是用erlang语言写的,所以装rabbitmq前第一步得先装erlang. 我们到erlang官网https://www.erlang.org/downloads下载安装包,最新 ...