macOS 安装 Grafana + Prometheus + Node Exporter

news2025/6/2 6:32:47

macOS 安装指南:Grafana + Prometheus + Node Exporter

    • 目录
    • 简介
      • 🚀 快速开始
    • 安装 Homebrew
      • 1. 安装 Homebrew
      • 2. 更新 Homebrew
    • 安装 Node Exporter
      • 使用 Homebrew 安装
      • 验证 Node Exporter
    • 安装 Prometheus
      • 使用 Homebrew 安装
      • 验证安装
    • 安装 Grafana
      • 使用 Homebrew 安装
      • 验证 Grafana 安装
    • 一键安装所有组件
    • 配置 Prometheus
      • 1. 创建配置文件
      • 2. Prometheus 配置内容
      • 3. 创建告警规则(可选)
      • 4. 启动 Prometheus
    • 配置 Grafana
      • 1. 首次登录配置
      • 2. 添加 Prometheus 数据源
      • 3. 配置通知渠道(可选)
    • 导入监控面板
      • 推荐的面板模板
        • 1. 通过面板 ID 导入
        • 2. 自定义面板 JSON
    • 验证和测试
      • 1. 检查所有服务状态
        • 验证目标状态
      • 3. Grafana 面板测试
    • 故障排除
      • 常见问题和解决方案
        • 1. Node Exporter 无法启动
        • 2. Prometheus 配置错误
        • 3. Grafana 连接问题
        • 4. 面板显示 "No data"
        • 5. 权限问题
    • 进阶配置
      • 1. 配置告警管理器
      • 2. 配置远程存储
      • 3. 设置数据保留策略
      • 4. 配置 HTTPS
      • 5. 性能优化
    • 最佳实践
      • 1. 监控策略
      • 2. 安全建议
    • 总结
      • ✅ 已完成的组件
      • 🎯 实现的功能
      • 🍺 Homebrew 安装优势
      • 📊 常用访问地址
      • 🔧 日常维护命令
      • 🚀 下一步扩展
    • 📋 快速参考
      • 核心安装命令
      • 服务管理
      • 常用访问地址
      • 配置文件位置
      • 推荐 Grafana 面板 ID
      • 故障排除命令
      • 维护命令

目录

  • 简介
  • 系统要求
  • 安装 Homebrew
  • 安装 Node Exporter
  • 安装 Prometheus
  • 安装 Grafana
  • 配置 Prometheus
  • 配置 Grafana
  • 导入监控面板
  • 验证和测试
  • 故障排除
  • 进阶配置
  • 总结

简介

在 macOS 系统上搭建监控

  • Node Exporter: 系统指标收集器

  • Prometheus: 时序数据库和监控服务器

  • Grafana: 数据可视化和仪表板平台

  • 🍺 统一使用 Homebrew 安装 - 简洁、快速、可靠

  • 🚀 一键安装命令 - 三个组件一次性搞定

  • 📊 开箱即用 - 完整的配置模板和面板

  • 🔧 自动化管理 - 服务自启动和状态监控

监控:

  • 实时监控系统性能(CPU、内存、磁盘、网络)
  • 设置告警规则
  • 创建美观的监控仪表板
  • 分析历史数据趋势

🚀 快速开始

安装 Homebrew

# 1. 安装所有组件
brew install grafana prometheus node_exporter

# 2. 启动所有服务
brew services start grafana prometheus node_exporter

# 3. 验证安装
http://localhost:3000  # Grafana 面板
http://localhost:9090  # Prometheus 监控
http://localhost:9100

安装 Homebrew

Homebrew 是 macOS 上最流行的包管理器

1. 安装 Homebrew

# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 验证安装
brew --version

2. 更新 Homebrew

# 更新 Homebrew 和包列表
brew update

安装 Node Exporter

Node Exporter 负责收集系统级别的指标数据。

使用 Homebrew 安装

# 安装 node_exporter
brew install node_exporter

# 启动服务
brew services start node_exporter

# 设置开机自启动
brew services enable node_exporter

验证 Node Exporter

# 检查服务状态
brew services list | grep node_exporter

# 测试访问指标
curl http://localhost:9100/metrics | head -20

# 检查进程
ps aux | grep node_exporter

安装 Prometheus

Prometheus 是核心的监控服务器,负责收集和存储时序数据。

使用 Homebrew 安装

# 安装 Prometheus
brew install prometheus

# 查看安装信息
brew info prometheus

验证安装

# 检查版本
prometheus --version

# 查看配置文件位置
ls -la /opt/homebrew/etc/prometheus.yml
# 或者(Intel 芯片)
ls -la /usr/local/etc/prometheus.yml

安装 Grafana

Grafana 提供强大的数据可视化和仪表板功能。

使用 Homebrew 安装

# 安装 Grafana
brew install grafana

# 启动服务
brew services start grafana

# 设置开机自启动
brew services enable grafana

验证 Grafana 安装

# 检查服务状态
brew services list | grep grafana

# 访问 Web 界面
http://localhost:3000

默认登录信息:

  • 用户名:admin
  • 密码:admin

一键安装所有组件

一次性安装所有组件:

# 一次性安装所有监控组件
brew install grafana prometheus node_exporter

# 启动所有服务
brew services start grafana
brew services start prometheus  
brew services start node_exporter

# 设置开机自启动
brew services enable grafana
brew services enable prometheus
brew services enable node_exporter

# 验证所有服务状态
brew services list | grep -E "(grafana|prometheus|node_exporter)"

配置 Prometheus

1. 创建配置文件

# 备份原配置文件
cp /opt/homebrew/etc/prometheus.yml /opt/homebrew/etc/prometheus.yml.backup

# 编辑配置文件
nano /opt/homebrew/etc/prometheus.yml

2. Prometheus 配置内容

# prometheus.yml
global:
  scrape_interval: 15s          # 全局抓取间隔
  evaluation_interval: 15s      # 规则评估间隔
  scrape_timeout: 10s          # 抓取超时

# 规则文件配置
rule_files:
  - "/opt/homebrew/etc/prometheus/rules/*.yml"

# 抓取配置
scrape_configs:
  # Prometheus 自身监控
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
    scrape_interval: 5s
    metrics_path: /metrics

  # Node Exporter 监控
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['localhost:9100']
    scrape_interval: 15s
    metrics_path: /metrics

  # 可选:添加其他服务器的监控
  - job_name: 'remote-servers'
    static_configs:
      - targets: 
          - 'server1.example.com:9100'
          - 'server2.example.com:9100'
    scrape_interval: 30s

# 存储配置
storage:
  tsdb:
    path: /opt/homebrew/var/prometheus
    retention.time: 15d
    retention.size: 1GB

# Web 配置
web:
  listen-address: 0.0.0.0:9090
  max-connections: 512
  read-timeout: 30s

3. 创建告警规则(可选)

# 创建规则目录
mkdir -p /opt/homebrew/etc/prometheus/rules

# 创建基本告警规则
cat > /opt/homebrew/etc/prometheus/rules/basic_alerts.yml << EOF
groups:
  - name: basic_alerts
    rules:
      # 实例下线告警
      - alert: InstanceDown
        expr: up == 0
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "实例 {{ \$labels.instance }} 已下线"
          description: "{{ \$labels.instance }} 已经下线超过 5 分钟"

      # 高 CPU 使用率告警
      - alert: HighCpuUsage
        expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "{{ \$labels.instance }} CPU 使用率过高"
          description: "CPU 使用率超过 80% 超过 5 分钟"

      # 高内存使用率告警
      - alert: HighMemoryUsage
        expr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 90
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "{{ \$labels.instance }} 内存使用率过高"
          description: "内存使用率超过 90% 超过 5 分钟"

      # 磁盘空间不足告警
      - alert: DiskSpaceLow
        expr: (node_filesystem_avail_bytes{fstype!="tmpfs"} / node_filesystem_size_bytes{fstype!="tmpfs"}) * 100 < 10
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "{{ \$labels.instance }} 磁盘空间不足"
          description: "磁盘 {{ \$labels.device }} 可用空间少于 10%"
EOF

4. 启动 Prometheus

# 验证配置文件
prometheus --config.file=/opt/homebrew/etc/prometheus.yml --dry-run

# 启动 Prometheus 服务
brew services start prometheus

# 重启服务(如果已经在运行)
brew services restart prometheus

配置 Grafana

1. 首次登录配置

  1. 访问 http://localhost:3000
  2. 使用默认账号登录:admin / admin
  3. 设置新密码

2. 添加 Prometheus 数据源

  1. 点击左侧菜单 “Configuration” → “Data Sources”
  2. 点击 “Add data source”
  3. 选择 “Prometheus”
  4. 配置以下信息:
    • Name: Prometheus
    • URL: http://localhost:9090
    • Access: Server (default)
  5. 点击 “Save & Test”

3. 配置通知渠道(可选)

# 配置邮件通知
1. 进入 "Alerting""Notification channels"
2. 点击 "New Channel"
3. 选择通知类型(Email, Slack, Webhook 等)
4. 填写相关配置信息

导入监控面板

推荐的面板模板

1. 通过面板 ID 导入
  1. 点击左侧 “+” → “Import”
  2. 输入以下推荐的面板 ID:
# Node Exporter 经典面板
1860    # Node Exporter Full(最受欢迎)
11074   # Node Exporter for Prometheus Dashboard
405     # Node Exporter Server Metrics

# macOS 专用面板
15797   # Node Exporter Mac OSX
12486   # Node Exporter macOS Dashboard
  1. 点击 “Load”
  2. 选择 Prometheus 数据源
  3. 点击 “Import”
2. 自定义面板 JSON

创建简单的 macOS 监控面板:

{
  "dashboard": {
    "id": null,
    "title": "macOS 系统监控",
    "tags": ["macos", "node-exporter"],
    "timezone": "browser",
    "panels": [
      {
        "id": 1,
        "title": "CPU 使用率",
        "type": "stat",
        "targets": [
          {
            "expr": "100 - (avg by(instance) (irate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)",
            "legendFormat": "CPU 使用率 %"
          }
        ],
        "fieldConfig": {
          "defaults": {
            "unit": "percent",
            "min": 0,
            "max": 100,
            "thresholds": {
              "steps": [
                {"color": "green", "value": null},
                {"color": "yellow", "value": 70},
                {"color": "red", "value": 90}
              ]
            }
          }
        },
        "gridPos": {"h": 8, "w": 6, "x": 0, "y": 0}
      },
      {
        "id": 2,
        "title": "内存使用率",
        "type": "stat",
        "targets": [
          {
            "expr": "(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100",
            "legendFormat": "内存使用率 %"
          }
        ],
        "fieldConfig": {
          "defaults": {
            "unit": "percent",
            "min": 0,
            "max": 100,
            "thresholds": {
              "steps": [
                {"color": "green", "value": null},
                {"color": "yellow", "value": 70},
                {"color": "red", "value": 90}
              ]
            }
          }
        },
        "gridPos": {"h": 8, "w": 6, "x": 6, "y": 0}
      }
    ],
    "time": {
      "from": "now-1h",
      "to": "now"
    },
    "refresh": "30s"
  }
}

验证和测试

1. 检查所有服务状态

# 检查所有相关服务
brew services list | grep -E "(prometheus|grafana|node_exporter)"

# 检查端口占用
lsof -i :9090  # Prometheus
lsof -i :3000  # Grafana
lsof -i :9100  # Node Exporter
验证目标状态

访问 http://localhost:9090/targets 确保所有目标都是 “UP” 状态。

3. Grafana 面板测试

  1. 访问 http://localhost:3000
  2. 选择导入的面板
  3. 确认数据正常显示
  4. 测试时间范围选择器
  5. 验证自动刷新功能

故障排除

常见问题和解决方案

1. Node Exporter 无法启动
# 检查端口是否被占用
lsof -i :9100

# 查看错误日志
tail -f /var/log/node_exporter.log

# 重启服务
brew services restart node_exporter
2. Prometheus 配置错误
# 验证配置文件语法
prometheus --config.file=/opt/homebrew/etc/prometheus.yml --dry-run

# 检查规则文件
promtool check rules /opt/homebrew/etc/prometheus/rules/*.yml

# 查看日志
tail -f /opt/homebrew/var/log/prometheus.log
3. Grafana 连接问题
# 测试 Prometheus 连接
curl http://localhost:9090/api/v1/query?query=up

# 检查 Grafana 数据源配置
# 确保 URL 正确:http://localhost:9090
# 检查网络连接和防火墙设置
4. 面板显示 “No data”
# 检查查询语句
# 确认时间范围设置
# 验证数据源选择正确
# 检查标签匹配
5. 权限问题
# 修复配置文件权限
sudo chown $(whoami) /opt/homebrew/etc/prometheus.yml
sudo chmod 644 /opt/homebrew/etc/prometheus.yml

# 修复数据目录权限
sudo chown -R $(whoami) /opt/homebrew/var/prometheus
sudo chown -R $(whoami) /opt/homebrew/var/grafana

进阶配置

1. 配置告警管理器

# 安装 Alertmanager
brew install alertmanager

# 启动服务
brew services start alertmanager

2. 配置远程存储

# 在 prometheus.yml 中添加
remote_write:
  - url: "http://remote-storage:9201/write"
    queue_config:
      max_samples_per_send: 1000
      max_shards: 200
      capacity: 2500

3. 设置数据保留策略

# 启动 Prometheus 时指定保留期
prometheus \
  --storage.tsdb.retention.time=30d \
  --storage.tsdb.retention.size=10GB

4. 配置 HTTPS

# 在 prometheus.yml 中添加
web:
  tls_config:
    cert_file: server.crt
    key_file: server.key

5. 性能优化

# 调整抓取参数
global:
  scrape_interval: 30s      # 减少抓取频率
  scrape_timeout: 10s       # 优化超时时间

# 优化存储
storage:
  tsdb:
    min-block-duration: 2h
    max-block-duration: 24h

最佳实践

1. 监控策略

  • 分层监控: 基础设施 → 应用 → 业务指标
  • 合理的抓取间隔: 根据需求平衡精度和资源消耗
  • 标签规范: 使用一致的标签命名约定
  • 告警分级: 区分不同严重程度的告警

2. 安全建议

# 配置防火墙
sudo pfctl -e
sudo pfctl -f /etc/pf.conf

# 限制访问IP
# 在生产环境中不要使用默认密码
# 配置HTTPS访问
# 定期更新软件版本

总结

在 macOS 上搭建监控:

✅ 已完成的组件

  1. Node Exporter (端口 9100)

    • 收集系统级别指标
    • CPU、内存、磁盘、网络监控
    • 自动启动配置
  2. Prometheus (端口 9090)

    • 时序数据库和监控服务器
    • 数据收集和存储
    • 告警规则配置
  3. Grafana (端口 3000)

    • 数据可视化平台
    • 监控面板和仪表板
    • 告警通知配置

🎯 实现的功能

  • ✅ 实时系统监控
  • ✅ 历史数据分析
  • ✅ 可视化仪表板
  • ✅ 告警规则设置
  • ✅ 自动化服务管理

🍺 Homebrew 安装优势

通过统一使用 Homebrew 安装

  • 🚀 快速安装: 一条命令安装多个组件
  • 🔄 自动更新: brew upgrade 轻松更新所有组件
  • 📦 依赖管理: 自动处理依赖关系
  • 🗑️ 简洁卸载: brew uninstall 完全清理
  • ⚙️ 统一配置: 配置文件位置标准化
  • 🔧 服务管理: brew services 统一管理所有服务

📊 常用访问地址

Node Exporter:  http://localhost:9100/metrics
Prometheus:     http://localhost:9090
Grafana:        http://localhost:3000

🔧 日常维护命令

# 查看所有服务状态
brew services list | grep -E "(prometheus|grafana|node_exporter)"

# 一键启动所有服务
brew services start grafana prometheus node_exporter

# 一键重启所有服务
brew services restart grafana prometheus node_exporter

# 一键停止所有服务
brew services stop grafana prometheus node_exporter

# 更新所有组件
brew upgrade grafana prometheus node_exporter

# 查看日志
tail -f /opt/homebrew/var/log/prometheus.log
tail -f /opt/homebrew/var/log/grafana/grafana.log

🚀 下一步扩展

  1. 添加更多 Exporter

    # 数据库监控
    brew install mysqld_exporter
    
    # Web服务器监控
    brew install nginx-prometheus-exporter
    
    # 网络探测
    brew install blackbox_exporter
    
  2. 集成其他服务

    • Docker 容器监控
    • Kubernetes 集群监控
    • 应用程序自定义指标
  3. 高级功能

    • 配置集群模式
    • 设置远程存储
    • 实现高可用架构

📋 快速参考

核心安装命令

# 安装所有组件
brew install grafana prometheus node_exporter

# 启动所有服务
brew services start grafana prometheus node_exporter

# 设置开机自启动
brew services enable grafana prometheus node_exporter

服务管理

# 查看服务状态
brew services list | grep -E "(grafana|prometheus|node_exporter)"

# 启动服务
brew services start [service_name]

# 停止服务
brew services stop [service_name]

# 重启服务
brew services restart [service_name]

# 禁用开机启动
brew services disable [service_name]

常用访问地址

服务地址用途
Grafanahttp://localhost:3000数据可视化面板
Prometheushttp://localhost:9090监控服务器界面
Node Exporterhttp://localhost:9100/metrics系统指标数据
Prometheus Targetshttp://localhost:9090/targets监控目标状态
Prometheus Confighttp://localhost:9090/config配置查看

配置文件位置

# Apple Silicon (M1/M2)
/opt/homebrew/etc/prometheus.yml
/opt/homebrew/etc/grafana/grafana.ini

# Intel 芯片
/usr/local/etc/prometheus.yml
/usr/local/etc/grafana/grafana.ini

推荐 Grafana 面板 ID

1860    # Node Exporter Full(最受欢迎)
15797   # Node Exporter Mac OSX(macOS 专用)
11074   # Node Exporter for Prometheus Dashboard
405     # Node Exporter Server Metrics

故障排除命令

# 检查端口占用
lsof -i :3000  # Grafana
lsof -i :9090  # Prometheus  
lsof -i :9100  # Node Exporter

# 查看日志
tail -f /opt/homebrew/var/log/grafana/grafana.log
tail -f /opt/homebrew/var/log/prometheus.log

# 验证配置
prometheus --config.file=/opt/homebrew/etc/prometheus.yml --dry-run

维护命令

# 更新所有组件
brew upgrade grafana prometheus node_exporter

# 完全卸载
brew services stop grafana prometheus node_exporter
brew uninstall grafana prometheus node_exporter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2393258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF log4net用法

WPF log4net用法 一、在工程中管理NuGet程序包&#xff0c;找到log4net&#xff0c;点击安装&#xff0c;如下图已成功安装&#xff1b; 二、在工程中右键添加新建项&#xff0c;选择应用程序配置文件&#xff08;后缀为.config&#xff09;,然后设置名称&#xff0c;这里设置…

数字孪生数据监控如何提升汽车零部件工厂产品质量

一、汽车零部件工厂的质量挑战 汽车零部件作为汽车制造的基础&#xff0c;其质量直接关系到整车的性能、可靠性和安全性。在传统的汽车零部件生产过程中&#xff0c;质量问题往往难以在早期阶段被发现和解决&#xff0c;导致生产效率低下、生产成本上升&#xff0c;甚至影响到…

贪心算法实战3

文章目录 前言区间问题跳跃游戏跳跃游戏II用最少数量的箭引爆气球无重叠区间划分字母区间合并区间 最大子序和加油站监控二叉树 前言 今天继续带大家进行贪心算法的实战篇3&#xff0c;本章注意来解答一些运用贪心算法的比较难的问题&#xff0c;大家好好体会&#xff0c;怎么…

实测,大模型谁更懂数据可视化?

大家好&#xff0c;我是 Ai 学习的老章 看论文时&#xff0c;经常看到漂亮的图表&#xff0c;很多不知道是用什么工具绘制的&#xff0c;或者很想复刻类似图表。 实测&#xff0c;大模型 LaTeX 公式识别&#xff0c;出乎预料 前文&#xff0c;我用 Kimi、Qwen-3-235B-A22B、…

Linux入门(十一)进程管理

Linux 中每个执行的程序都称为一个进程&#xff0c;每个进程都分配一个ID号&#xff08;PID&#xff09; 每个进程都可能以两种方式存在&#xff0c;前台&#xff08;屏幕上可以操作的&#xff09;和后台&#xff08;屏幕上无法看到的&#xff09;&#xff0c;一般系统的服务都…

【技能篇】RabbitMQ消息中间件面试专题

1. RabbitMQ 中的 broker 是指什么&#xff1f;cluster 又是指什么&#xff1f; 2. 什么是元数据&#xff1f;元数据分为哪些类型&#xff1f;包括哪些内容&#xff1f;与 cluster 相关的元数据有哪些&#xff1f;元数据是如何保存的&#xff1f;元数据在 cluster 中是如何分布…

Linux研学-环境搭建

一 概述 1 Linux 概述 Linux系统由内核、Shell、文件系统、应用程序及系统库等关键部分组成。内核作为核心&#xff0c;管理硬件资源与系统服务&#xff1b;Shell提供用户与系统交互的命令行界面&#xff0c;让用户能便捷执行操作&#xff1b;文件系统负责数据的存储、组织与管…

Ubuntu系统下可执行文件在桌面单击运行教程

目录 ​编辑 操作环境&#xff1a;这个可执行文件在原目录下还有它的依赖文件 1&#xff0c;方法1&#xff1a;创建启动脚本 操作步骤​&#xff1a; &#xff08;1&#xff09;​​在桌面创建脚本文件​​&#xff08;如 run_main_improve.sh&#xff09;&#xff1a; ​…

Linux之文件进程间通信信号

Linux之文件&进程间通信&信号 文件文件描述符文件操作重定向缓冲区一切皆文件的理解文件系统磁盘物理结构&块文件系统结构 软硬链接 进程间通信匿名管道命名管道system V共享内存 信号 文件 首先&#xff0c;Linux下一切皆文件。对于大量的文件&#xff0c;自然要…

代码随想录算法训练营 Day61 图论ⅩⅠ Floyd A※ 最短路径算法

图论 题目 97. 小明逛公园 本题是经典的多源最短路问题。 在这之前我们讲解过&#xff0c;dijkstra朴素版、dijkstra堆优化、Bellman算法、Bellman队列优化&#xff08;SPFA&#xff09; 都是单源最短路&#xff0c;即只能有一个起点。 而本题是多源最短路&#xff0c;即求多…

改写自己的浏览器插件工具 myChromeTools

1. 起因&#xff0c; 目的: 前面我写过&#xff0c; 自己的一个浏览器插件小工具 最近又增加一个小功能&#xff0c;可以自动滚动页面&#xff0c;尤其是对于那些瀑布流加载的网页。最新的代码都在这里 2. 先看效果 3. 过程: 代码 1, 模拟鼠标自然滚动 // 处理滚动控制逻辑…

python-pptx去除形状默认的阴影

文章目录 效果原理1. 阴影继承机制解析2. XML层操作细节3. 注意事项 扩展应用1. 批量去除阴影2. 复合效果控制 效果 右边这个是直接添加一个形状。可以看到它会默认被赋予一个阴影。 然而&#xff0c;这个东西在特定的场合&#xff0c;其实是我们所不需要的。 那怎么把这个阴…

kuboard自带ETCD存储满了处理方案

一、前言 当运行 ETCD 日志报 Erro: mvcc database space exceeded 时&#xff0c;说明 ETCD 存储不足了&#xff08;默认 ETCD 存储是 2G&#xff09;&#xff0c;配额会触发告警&#xff0c;然后 Etcd 系统将进入操作受限的维护模式。 通过下面命令可以查看 ETCD 存储使用情…

SpringBoot+tabula+pdfbox解析pdf中的段落和表格数据

一、前言 在日常业务需求中&#xff0c;往往会遇到解析pdf文件中的段落或者表格数据的需求。 常见的做法是使用 pdfbox 来做&#xff0c;但是它只能提取文本数据&#xff0c;没有我们在文件页面上面的那种结构化组织&#xff0c;文本通常是散乱的包含各种换行回车空格等格式&a…

GitHub push失败解决办法-fatal: unable to access ‘https://github.com/xxx

问题描述&#xff1a; 问题解决&#xff1a; 1、首先查找自己电脑的代理地址和端口 windows教程如下&#xff1a; 1、搜索控制面板-打开Internet选项 2、点击局域网设置&#xff1a; 3、如图为地址和端口号 即可获得本机地址和端口号 2、根据上一步获得的本机地址和端口号为…

电商平台 API、数据抓取与爬虫技术的区别及优势分析

一、技术定义与核心原理 电商平台 API&#xff08;应用程序编程接口&#xff09; 作为平台官方提供的标准化数据交互通道&#xff0c;API 通过 HTTP 协议实现不同系统间的结构化数据传输。开发者需申请授权&#xff08;如 API 密钥&#xff09;&#xff0c;按照文档规范调用接口…

单卡4090部署Qwen3-32B-AWQ(4bit量化)-vllm

单卡4090部署Qwen3-32B-AWQ(4bit量化) 模型&#xff1a;Qwen3-32B-AWQ(4bit量化) 显卡&#xff1a;4090 1 张 python版本 python 3.12 推理框架“vllm 重要包的版本 vllm0.9.0创建GPU云主机 这里我使用的是优云智算平台的GPU&#xff0c;使用链接可以看下面的 https://blog.…

漫画Android:Handler机制是怎么实现的?

线程之间通信会用到Handler&#xff0c;比如&#xff0c;在子线程中进行耗时的网络请求任务&#xff0c;子线程在获取到数据后&#xff0c;更新界面的时候就需要用到Handler&#xff1b; 子线程在获取到数据后&#xff0c;不直接去更新 界面&#xff0c;而是把数据通过一个消息…

多部手机连接同一wifi的ip一样吗?如何更改ip

通常情况下&#xff0c;多部手机连接同一个WiFi时&#xff0c;它们的IP地址是各不相同的&#xff08;在局域网内&#xff09;。但是&#xff0c;从互联网&#xff08;外网&#xff09;的角度看&#xff0c;它们共享同一个公网IP地址。让我详细解释一下&#xff0c;并说明如何更…

飞牛fnNAS的Docker应用之迅雷篇

目录 一、“迅雷”应用安装 二、启动迅雷 三、迅雷账号登录 四、修改“迅雷”下载保存路径 1、下载路径准备 2、停止“迅雷”Docker容器 3、修改存储位置 4、重新启动Docker容器 5、再次“启用”迅雷 五、测试 1、在PC上添加下载任务 2、手机上管理 3、手机添加下…