《数据监控-Prometheus/Grafana》Prometheus + Grafana + node_exporter实现多台服务器性能监控

Prometheus + Grafana + node_exporter实现多台服务器监控

1 Prometheus安装

##1. 安装
[root@zxy_master software]# tar -zxvf prometheus-2.17.1.linux-amd64.tar.gz -C /opt/apps/
[root@zxy_master apps]# mv prometheus-2.17.1.linux-amd64/ prometheus-2.17.1
## 环境变量
[root@zxy_master prometheus-2.17.1]# vim /etc/profile

export FLINK_HOME=/zxy/apps/flink-1.13.0
export PROMETHEUS_HOME=/zxy/apps/prometheus-2.17.1
export PATH=$PATH:$FLINK_HOME/bin:$PROMETHEUS_HOME

[root@zxy_master prometheus-2.17.1]# source /etc/profile
[root@zxy_master prometheus-2.17.1]# mkdir data

##2. 启动
[root@zxy_master prometheus-2.17.1]# ./prometheus --storage.tsdb.path="/zxy/apps/prometheus-2.17.1/data/" --log.level=debug --web.enable-lifecycle --web.enable-admin-api --config.file="/zxy/apps/prometheus-2.17.1/prometheus.yml"
[root@zxy_master prometheus-2.17.1]# nohup ./prometheus --storage.tsdb.path="/zxy/apps/prometheus-2.17.1/data/" --log.level=debug --web.enable-lifecycle --web.enable-admin-api --config.file="/zxy/apps/prometheus-2.17.1/prometheus.yml" > out.log 2>&1 &					
storage.tsdb.path:指标存储的基本路径
log.level:[info,debug,warn,error]
web.enable-lifecycle: 可以通过http请求来开启/关闭/重启Prometheus的服务
web.enable-admin-api: 管理元的API操作
config.file:指定prometheus配置文件路径

## 云服务器开启端口9090,虚拟机关闭防火墙

##3. 查看web ui
http://master.spunsugar.top:9090

在这里插入图片描述

2 Grafana安装

配置Prometheus使用,给使用者更直观的可视化展示

## 1.安装
[root@zxy_master software]# tar -zxvf grafana-6.7.3.linux-amd64.tar.gz -C /zxy/apps/
[root@zxy_master bin]# pwd
/zxy/apps/grafana-6.7.3/bin
## 配置环境变量
[root@zxy_master bin]# vim /etc/profile

export FLINK_HOME=/zxy/apps/flink-1.13.0
export PROMETHEUS_HOME=/zxy/apps/prometheus-2.17.1
export GRAFANA_HOME=/zxy/apps/grafana-6.7.3/bin
export PATH=$PATH:$FLINK_HOME/bin:$PROMETHEUS_HOME:$GRAFANA_HOME/bin

[root@zxy_master bin]# source /etc/profile
## 2.启动
[root@zxy_master grafana-6.7.3]# bin/grafana-server -config conf/sample.ini
## 后台启动
[root@zxy_master grafana-6.7.3]# nohup bin/grafana-server -config conf/sample.ini > out.log 2>&1 &

## 指定配置文件启动:sample.ini

## 云服务器开启端口3000,虚拟机关闭防火墙

## 3.查看webui
http://master.spunsugar.top:3000

初始账号:admin

初始密码:admin

在这里插入图片描述

重设密码

在这里插入图片描述

主要页面

在这里插入图片描述

3 node_exporter收集器

在Prometheus架构中,exporter是负责收集数据并将信息汇报给Prometheus Server的组件。官方提供了node_exporter内置了对主机系统的基础监控

## 可直接下载安装
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

## 1.离线安装
[root@zxy_master software]# tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /zxy/apps/

[root@zxy_master apps]# mv node_exporter-0.18.1.linux-amd64/ node_exporter-0.18.1

## 环境变量
[root@zxy_master node_exporter-0.18.1]# pwd
/zxy/apps/node_exporter-0.18.1
[root@zxy_master node_exporter-0.18.1]# vim /etc/profile

export FLINK_HOME=/zxy/apps/flink-1.13.0
export PROMETHEUS_HOME=/zxy/apps/prometheus-2.17.1
export GRAFANA_HOME=/zxy/apps/grafana-6.7.3/bin
export NODE_HOME=/zxy/apps/node_exporter-0.18.1
export PATH=$PATH:$FLINK_HOME/bin:$PROMETHEUS_HOME:$GRAFANA_HOME/bin:$NODE_HOME

[root@zxy_master node_exporter-0.18.1]# source /etc/profile
## 2.启动
[root@zxy_master node_exporter-0.18.1]# node_exporter &
## 后台启动
[root@zxy_master node_exporter-0.18.1]# nohup ./node_exporter > out.log 2>&1 &

##云服务器开启端口9100,虚拟机关闭防火墙

## 3.查看Web-ui
http://master.spunsugar.top:9100

Node Exporter页面

在这里插入图片描述

Metrics

在这里插入图片描述

4 Prometheus配置监控node_exporter所在主机

配置服务发现功能


[root@zxy_master prometheus-2.17.1]# mkdir sd_config
[root@zxy_master prometheus-2.17.1]# vim prometheus.yml
[root@zxy_master prometheus-2.17.1]#
## 添加job_name = 'node'
  - job_name: 'node'
    file_sd_configs:
    - files: [/zxy/apps/prometheus-2.17.1/sd_config/node.yml]
      refresh_interval: 5s

检查配置文件是否配置正确


[root@zxy_master prometheus-2.17.1]# ./promtool check config prometheus.yml
Checking prometheus.yml
  WARNING: file "/zxy/apps/prometheus-2.17.1/sd_config/node.yml" for file_sd in scrape job "node" does not exist
  SUCCESS: 0 rule files found

[root@zxy_master prometheus-2.17.1]#

配置服务发现文件

[root@zxy_master prometheus-2.17.1]# cd sd_config/
[root@zxy_master sd_config]# ls
[root@zxy_master sd_config]# vim node.yml
[root@zxy_master sd_config]# cat node.yml
## ****.***.**.**需要替换为IP,安全起见,这里使用*代替
- targets:
  - ***.***.**.**:9100
[root@zxy_master sd_config]#

重启Prometheus

[root@zxy_master sd_config]# ps -ef | grep prometheus
root     16393 29315  0 16:39 pts/0    00:00:03 ./prometheus --storage.tsdb.path=/zxy/apps/prometheus-2.17.1/data/ --log.level=debug --web.enable-lifecycle --web.enable-admin-api --config.file=/zxy/apps/prometheus-2.17.1/prometheus.yml
root     24572 29315  0 17:53 pts/0    00:00:00 grep --color=auto prometheus
[root@zxy_master sd_config]# kill -9 16393
[root@zxy_master prometheus-2.17.1]# nohup ./prometheus --storage.tsdb.path="/zxy/apps/prometheus-2.17.1/data/" --log.level=debug --web.enable-lifecycle --web.enable-admin-api --config.file="/zxy/apps/prometheus-2.17.1/prometheus.yml" > out.log 2>&1 &		

在这里插入图片描述

5 Prometheus实现监控Linux

内存使用率

## 查看内存
[root@zxy_master /]# free
              total        used        free      shared  buff/cache   available
Mem:        8008636      505636      135668       46932     7367332     7141432
Swap:             0   

## Prometheus查看内存使用率
100-(node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes)/node_memory_MemTotal_bytes*100

在这里插入图片描述

磁盘使用率

## 查看磁盘
[root@zxy_master /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G   24K  3.9G   1% /dev/shm
tmpfs           3.9G  880K  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1        99G   13G   82G  14% /
tmpfs           783M     0  783M   0% /run/user/0
overlay          99G   13G   82G  14% /var/lib/docker/overlay2/38d43acc23be98028fe11489bac6f72193b61bf4280325eb2129f8a869f799db/merged

## Prometheus查看磁盘使用率
100 -node_filesystem_free_bytes{mountpoint="/",fstype=~"xfs|ext4"} /node_filesystem_size_bytes{mountpoint="/",fstype=~"xfs|ext4"} *100


在这里插入图片描述

CPU使用率

## 查看CPU
[root@zxy_master /]# top
top - 20:04:34 up 23 days, 22:41,  4 users,  load average: 0.00, 0.02, 0.05
Tasks: 131 total,   1 running, 130 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.4 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8008636 total,   155752 free,   510188 used,  7342696 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  7136884 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 1758 root      20   0 1078220 123824  18628 S   1.0  1.5 405:07.77 YDService
    1 root      20   0   51916   4200   2632 S   0.0  0.1   6:26.97 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:01.06 kthreadd
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
    6 root      20   0       0      0      0 S   0.0  0.0   0:10.85 ksoftirqd/0
    7 root      rt   0       0      0      0 S   0.0  0.0   0:09.41 migration/0
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
## Prometheus查看CPU使用率
100 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance)*100

在这里插入图片描述

6 Grafana图形化监控Linux

6.1数据源配置

添加数据源1

在这里插入图片描述

添加数据源2

在这里插入图片描述

配置数据源

在这里插入图片描述

在这里插入图片描述

数据源配置成功

在这里插入图片描述

6.2 自定义表盘

回到Home页面,点击New dashboard

在这里插入图片描述

添加查询项

在这里插入图片描述

添加查询条件

在这里插入图片描述

修改监控图标名称title

在这里插入图片描述

保存仪表盘
在这里插入图片描述

命名仪表盘

在这里插入图片描述

6.3 Master主机监控面板-内存监控

在这里插入图片描述

6.3 Mater主机监控面板-CPU监控和磁盘监控

若是还需要监控其他内容,只需要添加pannel即可

在这里插入图片描述

在这里插入图片描述

添加磁盘监控

在这里插入图片描述

磁盘监控添加成功

在这里插入图片描述

按照如上方法添加CPU仪表盘

在这里插入图片描述

6.4 设置时间查看范围

在这里插入图片描述

7 在线仪表盘模板

7.1 Import dashboard

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7.2 Grafana查找相关模板

7.2.1 官网

在这里插入图片描述

7.2.2 搜索相关模板

在这里插入图片描述

7.2.3查看相关模板,获取模板dashboard id

在这里插入图片描述

7.3 通过dashboard id使用模板

在这里插入图片描述

7.4 设置name以及Prometheus,然后Import

在这里插入图片描述

7.5 模板使用成功

在这里插入图片描述

7.6 根据以上方式,尝试更新模板

dashboard id : 7276

可以在prometheus中添加新的服务器分组

通过选择分组名称,实现监控多台服务器

在这里插入图片描述

8.Prometheus + Grafana + node_exporter实现多台服务器监控

8.1 说明

1.在以上的操作中,Prometheus、Grafana、node_exporter都部署在我的master主机上
目前能通过配置监控master主机的性能
2.我想要通过Prometheus、Grafana、node_exporter同时监控多台服务器性能
3.计划:1.在我的slave主机上安装node_exporter并启动
4.计划:2.修改master主机上prometheus的相关配置,参考章节4 Prometheus配置监控node_exporter所在主机

8.2 slave主机部署node_exporter

## 解压
[root@zxy_slave1 software]# tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /zxy/apps/

[root@zxy_slave1 apps]# mv node_exporter-0.18.1.linux-amd64/ node_exporter-0.18.1
## 配置环境变量
[root@zxy_slave1 node_exporter-0.18.1]# pwd
/zxy/apps/node_exporter-0.18.1
[root@zxy_slave1 node_exporter-0.18.1]# vim /etc/profile

export NODE_HOME=/zxy/apps/node_exporter-0.18.1
export PATH=$PATH:$NODE_HOME

[root@zxy_slave1 node_exporter-0.18.1]# source /etc/profile

## 后台启动
[root@zxy_slave1 node_exporter-0.18.1]# nohup ./node_exporter > out.log 2>&1 &

## 云服务器开启端口9100,虚拟机关闭防火墙
## 查看Web-ui
http://slave.spunsugar.top:9100/

在这里插入图片描述


8.3 修改master主机Prometheus配置

[root@zxy_master prometheus-2.17.1]# ls
console_libraries  consoles  data  LICENSE  NOTICE  out.log  prometheus  prometheus.yml  promtool  sd_config  start.sh  tsdb
[root@zxy_master prometheus-2.17.1]# vim prometheus.yml
## 为便于区分,将刚刚配置的node任务名称改为master,同时将sd_config目录下的node.yml也改为master.yml
## 新增slave1任务
  - job_name: 'master'
    file_sd_configs:
    - files: [/zxy/apps/prometheus-2.17.1/sd_config/master.yml]
      refresh_interval: 5s
  - job_name: 'slave1'
    file_sd_configs:
    - files: [/zxy/apps/prometheus-2.17.1/sd_config/slave1.yml]
      refresh_interval: 5s

8.4 检查prometheus配置是否成功

[root@zxy_master prometheus-2.17.1]# ./promtool check config prometheus.yml
Checking prometheus.yml
  WARNING: file "/zxy/apps/prometheus-2.17.1/sd_config/master.yml" for file_sd in scrape job "master" does not exist
  WARNING: file "/zxy/apps/prometheus-2.17.1/sd_config/slave1.yml" for file_sd in scrape job "slave1" does not exist
  SUCCESS: 0 rule files found

[root@zxy_master prometheus-2.17.1]#

8.5 修改node.yml,添加slave1.yml

## 进入配置目录
[root@zxy_master prometheus-2.17.1]# cd sd_config/
## 查看到目前是node.yml
[root@zxy_master sd_config]# ls
node.yml
## 按照我的计划,未便于区分,将node任务改为master,将node.yml改为master.yml
[root@zxy_master sd_config]# mv node.yml master.yml
[root@zxy_master sd_config]# ls
master.yml
## cat查看配置内容
[root@zxy_master sd_config]# cat master.yml
## ****.***.**.**需要替换为IP,安全起见,这里使用*代替
- targets:
  - ***.***.**.**:9100
## 添加slave1.yml
[root@zxy_master sd_config]# vim slave1.yml
## 添加如下两行
## ****.***.**.**需要替换为IP,安全起见,这里使用*代替
- targets:
  - ***.***.**.**:9100
[root@zxy_master sd_config]# cat slave1.yml
## ****.***.**.**需要替换为IP,安全起见,这里使用*代替
- targets:
  - ***.***.**.**:9100

[root@zxy_master sd_config]#

8.6 重启Prometheus

## 使用ps命令查看Prometheus进程
[root@zxy_master prometheus-2.17.1]# ps -ef |grep prometheus
root       638  1699  0 00:06 pts/1    00:00:00 grep --color=auto prometheus
root     24822     1  0 Apr13 ?        00:00:26 ./prometheus --storage.tsdb.path=/zxy/apps/prometheus-2.17.1/data/ --log.level=debug --web.enable-lifecycle --web.enable-admin-api --config.file=/zxy/apps/prometheus-2.17.1/prometheus.yml
## 强制杀死Prometheus进程
[root@zxy_master prometheus-2.17.1]# kill -9 24822
## 自定义脚本后台启动Prometheus
[root@zxy_master prometheus-2.17.1]# sh start.sh
## 再次使用ps查看进程,确保启动成功
[root@zxy_master prometheus-2.17.1]# ps -ef |grep prometheus
root       999     1  4 00:07 pts/1    00:00:00 ./prometheus --storage.tsdb.path=/zxy/apps/prometheus-2.17.1/data/ --log.level=debug --web.enable-lifecycle --web.enable-admin-api --config.file=/zxy/apps/prometheus-2.17.1/prometheus.yml
root      1102  1699  0 00:07 pts/1    00:00:00 grep --color=auto prometheus
[root@zxy_master prometheus-2.17.1]#

  • start.sh

    nohup ./prometheus --storage.tsdb.path="/zxy/apps/prometheus-2.17.1/data/" --log.level=debug --web.enable-lifecycle --web.enable-admin-api --config.file="/zxy/apps/prometheus-2.17.1/prometheus.yml" > out.log 2>&1 &
    

8.6 查看Prometheus的Web-ui查看配置情况

http://master.spunsugar.top:9090

在这里插入图片描述

master主机和slave1主机配置成功

在这里插入图片描述

8.7 Grafana 查看配置效果

http://master.spunsugar.top:3000

8.7.1 Master主机

在这里插入图片描述

8.7.2 Slave1主机

在这里插入图片描述

9.Prometheus + Grafana + node_exporter效果图

在这里插入图片描述

10 Prometheus、Grafana、node_exporter安装包

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Prometheus是一个广泛使用的开源监控系统,用于收集和存储系统指标数据。它具有灵活的查询语言和强大的图形化和报警功能,可用于监控各种类型的应用程序和基础设施。 要使用Prometheus监控系统,通常需要以下步骤: 1. 下载和安装Prometheus服务器:你可以从Prometheus官方网站下载适合你操作系统的二进制文件,并按照说明进行安装。 2. 配置Prometheus服务器:在安装完成后,你需要创建一个配置文件来定义你要监控的目标和其他设置。配置文件使用YAML格式,可以指定要监控的目标的地址、指标的抓取频率、告警规则等。 3. 启动Prometheus服务器:在配置文件完成后,你可以启动Prometheus服务器,并通过浏览器访问其Web界面,默认端口为9090。在Web界面中,你可以查看收集到的指标数据、执行查询、创建面板和设置告警规则等。 4. 配置目标应用程序:为了让Prometheus能够收集目标应用程序的指标数据,你需要在目标应用程序中集成Prometheus的客户端库,并在应用程序代码中暴露指标数据的接口。Prometheus客户端库支持多种编程语言,例如Go、Java、Python等。 5. 可选:使用Prometheus的可视化工具:Prometheus本身提供了一个基本的Web界面,但你也可以使用其他可视化工具来更好地展示和分析指标数据。一些流行的可视化工具包括Grafana和Kibana等。 总结来说,Prometheus提供了一种灵活、可扩展的方式来监控系统指标数据,可以帮助你有效地监控和管理你的应用程序和基础设施。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DATA数据猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值