当前位置: 首页 > article >正文

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

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

  • 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
    在这里插入图片描述

在这里插入图片描述

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

六、创建一个数据展示图

  • 使用PromeSQL语言进行测试

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.kler.cn/a/306736.html

相关文章:

  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理
  • Vue常用加密方式
  • 基于matlab的CNN食物识别分类系统,matlab深度学习分类,训练+数据集+界面
  • 内置RTK北斗高精度定位的4G执法记录仪、国网供电服务器记录仪
  • 15 个改变世界的开源项目:塑造现代技术的先锋力量
  • Day 63 || 拓扑排序、dijkstra
  • Python [ GUI编程自学 ],虽然但是,还是想出一个系列
  • 完整指南:CNStream流处理多路并发框架适配到NVIDIA Jetson Orin (四) 运行、调试、各种问题解决
  • ai智能电销机器人是新科技产业
  • charls基于夜神模拟器抓取安卓7.0应用程序https请求
  • 数据结构 Java DS——分享部分链表题目 (2)
  • Linux下的简单TCP客户端和服务器
  • [论文笔记] LLM大模型剪枝篇——4、Qwen2系列剪枝实现
  • Android Radio2.0——电台动态列表(六)
  • 查看TCP/UDP网络连接通信情况
  • PostgreSQL配置主从同步
  • docker构建镜像环境搭建深度学习开发环境
  • 简单说说关于shell中zsh和bash的选择
  • 基于Keil软件实现读写备份寄存器(江协科技HAL库)
  • Edge浏览器设置夜间模式/深色模式
  • OpenCV高阶操作
  • 1.使用 VSCode 过程中的英语积累 - File 菜单(每一次重点积累 5 个单词)
  • 【AI大模型-什么是大模型】
  • 03 战略的本质与实践 - 战略管理实践的启示
  • k8s独立组件ingress,七层转发
  • \section*{References}为什么需要加*