【云原生监控】Prometheus监控系统

news/2024/11/15 7:01:21/

Prometheus监控系统

文章目录

  • Prometheus监控系统
    • 资源列表
    • 基础环境
    • 一、部署Prometheus服务
      • 1.1、解压
      • 1.2、配置systemctl启动
      • 1.3、监听端口
      • 1.4、访问Prometheus仪表盘
    • 二、部署Node-Exporter
      • 2.1、解压
      • 2.2、配置systemctl启动
      • 2.3、监听端口
      • 2.4、访问node-exporter仪表盘
    • 三、配置Prometheus收集Exporter采集的数据
      • 3.1、编辑Prometheus配置文件
      • 3.2、重新加载Prometheus服务
      • 3.3、刷新Prometheus页面
    • 四、执行PromeSQL
      • 4.1、查看存活的节点
      • 4.2、查看CPU指标
    • 五、Grafana展示数据
      • 5.1、安装并启动Grafana
      • 5.2、监听端口
      • 5.3、访问Grafana页面
      • 5.4、配置数据源
      • 5.5、新建仪表盘
    • 六、创建一个数据展示图
      • 6.1、测试代码
      • 6.2、写入Grafana图形
      • 6.3、更改可视化监控页面
      • 6.4、保存仪表盘

资源列表

操作系统配置主机名IP
CentOS 7.92C4Gprometheus-server192.168.93.101
CentOS 7.92C4Gnode-exporter192.168.93.102
CentOS 7.92C4Ggrafana192.168.93.103

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname prometheus-server
hostnamectl set-hostname node-exporter
hostnamectl set-hostname grafana

一、部署Prometheus服务

  • 作用:收集数据和展示数据

1.1、解压

[root@prometheus-server ~]# tar -zxvf prometheus-2.37.8.linux-amd64.tar.gz
  • 移动至指定目录
[root@prometheus-server ~]# mv prometheus-2.37.8.linux-amd64 /usr/local/prometheus

1.2、配置systemctl启动

[root@prometheus-server ~]# cat >> /etc/systemd/system/prometheus.service << EOF
[Unit]
Description=xinjizhiwa Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target
[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--web.enable-lifecycle
ExecReload=/bin/kill -HUP \$MAINPID
LimitNOFILE=65535[Install]
WantedBy=multi-user.target
EOF
  • 加载并启动服务
[root@prometheus-server ~]# systemctl daemon-reload
[root@prometheus-server ~]# systemctl enable prometheus.service --now

1.3、监听端口

  • Prometheus默认监听9090端口
[root@prometheus-server ~]# netstat -anpt | grep 9090
tcp6       0      0 :::9090                 :::*                    LISTEN      8659/prometheus     
tcp6       0      0 ::1:9090                ::1:56220               ESTABLISHED 8659/prometheus     
tcp6       0      0 ::1:56220               ::1:9090                ESTABLISHED 8659/prometheus     

1.4、访问Prometheus仪表盘

  • 访问地址:http://192.168.93.101:9090
    在这里插入图片描述

二、部署Node-Exporter

  • 作用:用来收集节点上的数据

2.1、解压

[root@node-exporter ~]# tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz
  • 移动至指定目录
[root@node-exporter ~]# mv node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter

2.2、配置systemctl启动

[root@node-exporter ~]# cat > /etc/systemd/system/node-exporter.service << EOF
[Unit]
Description=xinjizhiwa node-exporter
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP \$MAINPID
LimitNOFILE=65535[Install]
WantedBy=multi-user.target
EOF
  • 加载并启动服务
[root@node-exporter ~]# systemctl daemon-reload 
[root@node-exporter ~]# systemctl enable node-exporter.service --now

2.3、监听端口

  • node-exporter默认监听9100端口
[root@node-exporter ~]# netstat -napt | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      8378/node_exporter

2.4、访问node-exporter仪表盘

  • 访问地址:http://192.168.93.102:9100
    在这里插入图片描述

三、配置Prometheus收集Exporter采集的数据

  • node-exporter会把数据统一收集,等待Prometheus进行收集数据展示

3.1、编辑Prometheus配置文件

[root@prometheus-server ~]# vim /usr/local/prometheus/prometheus.yml
# my global config
global:  scrape_interval: 3s # 抓取监控的间隔时间,多长时间获取一次数据(生产环境下,建议15-30s)  evaluation_interval: 15s # 多久读一次规则# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
# 被监控的配置
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名称,被监控的主体自定义名称- job_name: "node-exporter"static_configs:# 被监控的数据抓取地址- targets: ["192.168.93.102:9100"]

3.2、重新加载Prometheus服务

  • 此次的加载方式不是用systemctl进行加载的
[root@prometheus-server ~]# curl -X POST http://192.168.93.101:9090/-/reload

3.3、刷新Prometheus页面

  • 点击Status>>Targets

  • 此时,就会看到,新配置的被监控项主体的指标列表
    在这里插入图片描述

在这里插入图片描述

PromeSQL_220">四、执行PromeSQL

  • Prometheus自己的SQL查询语言

4.1、查看存活的节点

  • 使用UP
    在这里插入图片描述

4.2、查看CPU指标

  • 使用node_cpu_seconds_total
    在这里插入图片描述

五、Grafana展示数据

  • Grafana是一个开源的数据可视化和监控工具

5.1、安装并启动Grafana

[root@grafana ~]# yum -y localinstall grafana-enterprise-10.0.3-1.x86_64.rpm [root@grafana ~]# systemctl enable grafana-server.service --now

5.2、监听端口

  • Grafana默认监听3000端口
[root@grafana ~]# netstat -anpt | grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      8421/grafana

5.3、访问Grafana页面

  • 访问地址:http://192.168.93.103:3000

  • 默认账户:admin

  • 默认密码:admin
    在这里插入图片描述

  • 需重新设置密码即可登录
    在这里插入图片描述

  • 以下就是登录页面
    在这里插入图片描述

5.4、配置数据源

  • 依次点击home左边的三个横杠>Adminstration>Data sources>Add data-sources>Prometheus
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 填写数据源配置信息
Name:Prometheus-01  # 数据库名称,可随意填写,建议取名有见名知意
Prometheus server URL:http://192.168.93.101:9090   # Prometheus服务端的IP和默认端口

在这里插入图片描述

  • 往下拉点击save&test
    在这里插入图片描述

5.5、新建仪表盘

  • 依次点击home坐标的三个横杠>Dashboards>Now>New Dashboards>Add visualization
    在这里插入图片描述

在这里插入图片描述

  • 选择刚刚配置的数据源
    在这里插入图片描述

六、创建一个数据展示图

6.1、测试代码

  • 第一步,测试代码,就是计算一个cpu使用率的PromeSQL代码,测试没有问题之后,就复制展示这个SQL代码内容
(1 - sum(rate(node_cpu_seconds_total{mode="idle"}[5m])) / sum(rate(node_cpu_seconds_total[5m]))) * 100

在这里插入图片描述

6.2、写入Grafana图形

在这里插入图片描述

6.3、更改可视化监控页面

在这里插入图片描述
在这里插入图片描述

6.4、保存仪表盘

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/1528207.html

相关文章

Python | python中的特殊方法__str__和__repr__

__str__和__repr__ 无方法有方法__str____repr__同时存在 __str__和__repr__都是更改print的输出形式 无方法 无特殊方法 class Person:def __init__(self,name,age):self.name nameself.age ageprint(Person(aa, 34))<main.Person object at 0x000002231EF78B38> …

计算机毕业设计 大学志愿填报系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Linux 防火墙:Firewalld 常用命令行操作命令

firewalld命令行操作管理 按增删改查分类&#xff0c;前面加上 firewall-cmd &#xff1a; ### 查询操作--get-default-zone 查看当前默认区域 --get-zones 查看所有可用的区域 --get-active-zones …

2024.9.13 Python与图像处理新国大EE5731课程大作业,SIFT 特征和描述符,单应性矩阵透视变换

1.SIFT特征点和描述符 import cv2 import numpy as np import matplotlib.pyplot as plt # read image img cv2.imread(im01.jpg,cv2.IMREAD_COLOR) gray cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) plt.imshow(gray,plt.cm.gray)提取图片&#xff0c;以灰度图像输出 #SIFT sift…

类型转换等 面试真题

题目1 请问哪个结果为NaN A. 123null B. 123‘1’ C. 123/0 D. 123undefined 在这四个表达式中&#xff0c;只有D. 123 undefined 的结果是 NaN&#xff0c;原因如下&#xff1a; A. 123 null 结果是&#xff1a;123原因&#xff1a;null 在数值运算中会被自动转换为 0&a…

代码随想录打卡Day38

今天真的好累。。。第三道题debug了很久&#xff0c;搞得精疲力竭。。。 322. 零钱兑换 这道题感觉有点思路但是不能完全写对&#xff0c;直接看视频去了&#xff0c;我发现只要不是纯粹的背包问题都是考虑用一维dp数组来做&#xff0c;这道题目就是用一维dp数组来做&#xf…

基于SpringBoot的校园二手商品交易平台的设计与实现

文未可获取一份本项目的java源码和数据库参考。 一、课题研究背景意义及现状 1.课题背景 随着社会的发展&#xff0c;低碳经济生活已成为当今世界发展的主题&#xff0c;物品循环利用、回收再造成为了社会关注的焦点。调查发现&#xff0c;随着大学生购买力的增强&#xff0…

LeetCode746:使用花费最小爬楼梯

题目链接&#xff1a;746. 使用最小花费爬楼梯 - 力扣&#xff08;LeetCode&#xff09; 代码如下 class Solution { public:int minCostClimbingStairs(vector<int>& cost) {int m cost.size();if(m 1) return min(cost[1], cost[0]);if(m 0) return cost[0]…