macOS 安装 Grafana + Prometheus + Node Exporter
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: 5smetrics_path: /metrics# Node Exporter 监控- job_name: 'node-exporter'static_configs:- targets: ['localhost:9100']scrape_interval: 15smetrics_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/prometheusretention.time: 15dretention.size: 1GB# Web 配置
web:listen-address: 0.0.0.0:9090max-connections: 512read-timeout: 30s
3. 创建告警规则(可选)
# 创建规则目录
mkdir -p /opt/homebrew/etc/prometheus/rules# 创建基本告警规则
cat > /opt/homebrew/etc/prometheus/rules/basic_alerts.yml << EOF
groups:- name: basic_alertsrules:# 实例下线告警- alert: InstanceDownexpr: up == 0for: 5mlabels:severity: criticalannotations:summary: "实例 {{ \$labels.instance }} 已下线"description: "{{ \$labels.instance }} 已经下线超过 5 分钟"# 高 CPU 使用率告警- alert: HighCpuUsageexpr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80for: 5mlabels:severity: warningannotations:summary: "{{ \$labels.instance }} CPU 使用率过高"description: "CPU 使用率超过 80% 超过 5 分钟"# 高内存使用率告警- alert: HighMemoryUsageexpr: (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 90for: 5mlabels:severity: warningannotations:summary: "{{ \$labels.instance }} 内存使用率过高"description: "内存使用率超过 90% 超过 5 分钟"# 磁盘空间不足告警- alert: DiskSpaceLowexpr: (node_filesystem_avail_bytes{fstype!="tmpfs"} / node_filesystem_size_bytes{fstype!="tmpfs"}) * 100 < 10for: 5mlabels:severity: criticalannotations: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. 首次登录配置
- 访问 http://localhost:3000
- 使用默认账号登录:
admin
/admin
- 设置新密码
2. 添加 Prometheus 数据源
- 点击左侧菜单 “Configuration” → “Data Sources”
- 点击 “Add data source”
- 选择 “Prometheus”
- 配置以下信息:
- Name:
Prometheus
- URL:
http://localhost:9090
- Access:
Server (default)
- Name:
- 点击 “Save & Test”
3. 配置通知渠道(可选)
# 配置邮件通知
1. 进入 "Alerting" → "Notification channels"
2. 点击 "New Channel"
3. 选择通知类型(Email, Slack, Webhook 等)
4. 填写相关配置信息
导入监控面板
推荐的面板模板
1. 通过面板 ID 导入
- 点击左侧 “+” → “Import”
- 输入以下推荐的面板 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
- 点击 “Load”
- 选择 Prometheus 数据源
- 点击 “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 面板测试
- 访问 http://localhost:3000
- 选择导入的面板
- 确认数据正常显示
- 测试时间范围选择器
- 验证自动刷新功能
故障排除
常见问题和解决方案
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: 1000max_shards: 200capacity: 2500
3. 设置数据保留策略
# 启动 Prometheus 时指定保留期
prometheus \--storage.tsdb.retention.time=30d \--storage.tsdb.retention.size=10GB
4. 配置 HTTPS
# 在 prometheus.yml 中添加
web:tls_config:cert_file: server.crtkey_file: server.key
5. 性能优化
# 调整抓取参数
global:scrape_interval: 30s # 减少抓取频率scrape_timeout: 10s # 优化超时时间# 优化存储
storage:tsdb:min-block-duration: 2hmax-block-duration: 24h
最佳实践
1. 监控策略
- 分层监控: 基础设施 → 应用 → 业务指标
- 合理的抓取间隔: 根据需求平衡精度和资源消耗
- 标签规范: 使用一致的标签命名约定
- 告警分级: 区分不同严重程度的告警
2. 安全建议
# 配置防火墙
sudo pfctl -e
sudo pfctl -f /etc/pf.conf# 限制访问IP
# 在生产环境中不要使用默认密码
# 配置HTTPS访问
# 定期更新软件版本
总结
在 macOS 上搭建监控:
✅ 已完成的组件
-
Node Exporter (端口 9100)
- 收集系统级别指标
- CPU、内存、磁盘、网络监控
- 自动启动配置
-
Prometheus (端口 9090)
- 时序数据库和监控服务器
- 数据收集和存储
- 告警规则配置
-
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
🚀 下一步扩展
-
添加更多 Exporter
# 数据库监控 brew install mysqld_exporter# Web服务器监控 brew install nginx-prometheus-exporter# 网络探测 brew install blackbox_exporter
-
集成其他服务
- Docker 容器监控
- Kubernetes 集群监控
- 应用程序自定义指标
-
高级功能
- 配置集群模式
- 设置远程存储
- 实现高可用架构
📋 快速参考
核心安装命令
# 安装所有组件
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]
常用访问地址
服务 | 地址 | 用途 |
---|---|---|
Grafana | http://localhost:3000 | 数据可视化面板 |
Prometheus | http://localhost:9090 | 监控服务器界面 |
Node Exporter | http://localhost:9100/metrics | 系统指标数据 |
Prometheus Targets | http://localhost:9090/targets | 监控目标状态 |
Prometheus Config | http://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
相关文章:
macOS 安装 Grafana + Prometheus + Node Exporter
macOS 安装指南:Grafana Prometheus Node Exporter 目录简介🚀 快速开始 安装 Homebrew1. 安装 Homebrew2. 更新 Homebrew 安装 Node Exporter使用 Homebrew 安装验证 Node Exporter 安装 Prometheus使用 Homebrew 安装验证安装 安装 Grafana使用 Home…...

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

数字孪生数据监控如何提升汽车零部件工厂产品质量
一、汽车零部件工厂的质量挑战 汽车零部件作为汽车制造的基础,其质量直接关系到整车的性能、可靠性和安全性。在传统的汽车零部件生产过程中,质量问题往往难以在早期阶段被发现和解决,导致生产效率低下、生产成本上升,甚至影响到…...
web自动化-Selenium、Playwright、Robot Framework等自动化框架使用场景优劣对比
Web 自动化测试框架根据不同的技术栈和应用场景可分为多种类型,以下是常见的框架及其特点、适用场景: 一、主流框架分类 1. Selenium 生态(Python/Java/C#/JavaScript) 核心组件: WebDriver:操作浏览器的…...
使用 Akamai 分布式云与 CDN 保障视频供稿传输安全
作者简介:David Eisenbacher 是 EZDRM 公司的首席执行官兼联合创始人,该公司是首家提供 "DRM 即服务" 的企业。作为 CEO,David 始终秉持为企业确立的使命:为视频服务商提供简洁有效的数字版权管理方案,助力其…...
vue发版html 生成打包到docker镜像进行发版
将Vue项目打包成Docker镜像部署主要分为以下几个步骤: 1. Vue项目打包 执行npm run build生成dist文件夹,包含静态资源文件 注意检查index.html中资源引用路径是否正确(避免绝对路径问题) 2. 编写Dockerfile Copy Code FROM…...
python uv包管理器使用
官方文档:uv官方文档 注:uv安装不依赖python。 使用: python版本管理 # 查看已安装的python列表 uv python list # 安装特定版本 uv python install 3.12 # 指定项目使用的python版本 uv python pin <version># 使用指定版本运行脚本…...

贪心算法实战3
文章目录 前言区间问题跳跃游戏跳跃游戏II用最少数量的箭引爆气球无重叠区间划分字母区间合并区间 最大子序和加油站监控二叉树 前言 今天继续带大家进行贪心算法的实战篇3,本章注意来解答一些运用贪心算法的比较难的问题,大家好好体会,怎么…...
linux、docker、git相关操作
1 linux 1.1解压缩 1.1.1 zip zip xxx.zip file 把file压缩成xxx.zip -r 递归压缩: zip -r example_new.zip 示例集 # 新建压缩包并命名为 example_new.zip zip -r xxx.zip file1 file2 dir1 将多个文件目录压成zip包 unzip file.zip -d target_dir #把file.zip解…...

实测,大模型谁更懂数据可视化?
大家好,我是 Ai 学习的老章 看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。 实测,大模型 LaTeX 公式识别,出乎预料 前文,我用 Kimi、Qwen-3-235B-A22B、…...
小程序32-简易双向数据绑定
在WXML中,普通属性的绑定是单向的,例如:<input value"{{value}}" /> 如果希望用户输入数据的同时改变data中的数据,可以借助简易双向绑定机制。在对应属性之前添加model:前缀即可: 例如<input model:value"{{value}…...
jenkins报错java.lang.OutOfMemoryError: Java heap space
报错信息 2025-05-27 09:17:16.2340000 [id38] WARNING j.u.ErrorLoggingScheduledThreadPoolExecutor#afterExecute: failure in task not wrapped in SafeTimerTask java.lang.OutOfMemoryError: Java heap spaceat java.base/java.lang.StringUTF16.compress(StringUTF16.j…...
leetcode669.修剪二叉搜索树:递归法利用有序性精准剪枝
一、题目深度解析与BST特性应用 题目描述 给定一棵二叉搜索树(BST)和一个值区间[low, high],修剪BST使得所有节点的值都落在该区间内。修剪后的树必须保持BST的性质,且不能改变原有节点的相对位置关系。 BST的核心特性应用 二…...
Spring Boot 中 @RequestParam 和 @RequestPart 的区别详解(含实际项目案例)
Spring Boot 中 RequestParam 和 RequestPart 的区别详解(含实际项目案例) 在日常的 Spring Boot 开发中,我们经常会遇到表单提交、文件上传、JSON 参数绑定等需求。而在处理这类请求时,两个常见的注解——RequestParam 和 Reque…...

Linux入门(十一)进程管理
Linux 中每个执行的程序都称为一个进程,每个进程都分配一个ID号(PID) 每个进程都可能以两种方式存在,前台(屏幕上可以操作的)和后台(屏幕上无法看到的),一般系统的服务都…...
【课堂笔记】EM算法
文章目录 背景极大似然估计隐变量高斯混合模型EM算法合理性分析相关好文章背景 EM算法(期望最大化算法,Expectation-Maximization Algorithm)是一种迭代优化算法,用于在含有隐变量的概率模型中估计最大似然参数。 这是概括性的定义,下面我会解释其中的名词并用具体例子…...
怎样将win11+ubuntu双系统的ubuntu从机械硬盘迁移至固态硬盘(1)
将 Ubuntu 从机械硬盘迁移到固态硬盘是一个涉及多个步骤的过程。以下是一个基本的迁移指南: 1. 前期准备 1.1 备份数据: 确保你已备份数据,以防止在迁移过程中出现意外导致任何数据丢失。 1.2 固态硬盘安装: 确保固态硬盘正确…...
el-table设置自定义css
隔行变色、表头颜色 // 设置table字体颜色、背景色 .el-table {color: #ffffff;background-color: transparent !important; }设置隔行变色功能 .el-table__body {tr.el-table__row {&:nth-child(even) {td.el-table__cell {background-color: #08417f;}}&:nth-child(…...
Compose中导航跳转的实现NavHost
文章目录 1、添加依赖2、两个页面导航跳转的实现2.1 定义导航图2.2 创建导航控制器2.3 实现两个页面跳转 2、带参数的导航2.1 定义带参数的路径2.2 定义接收参数2.3 导航到带参数的屏幕 3、关键点 1、添加依赖 // build.gradle dependencies {implementation "androidx.n…...
VSCode/Cursor中Red Hat Dependency Analytics扩展的自动依赖注入files:分析
VSCode/Cursor中Red Hat Dependency Analytics扩展的自动依赖注入files:分析 问题描述 最近在使用VSCode开发时,发现一个令人困扰的问题:每次打开或保存package.json文件时,都会自动添加一个自引用的依赖项。具体表现为: {&quo…...

【技能篇】RabbitMQ消息中间件面试专题
1. RabbitMQ 中的 broker 是指什么?cluster 又是指什么? 2. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布…...

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

Ubuntu系统下可执行文件在桌面单击运行教程
目录 编辑 操作环境:这个可执行文件在原目录下还有它的依赖文件 1,方法1:创建启动脚本 操作步骤: (1)在桌面创建脚本文件(如 run_main_improve.sh): …...

Linux之文件进程间通信信号
Linux之文件&进程间通信&信号 文件文件描述符文件操作重定向缓冲区一切皆文件的理解文件系统磁盘物理结构&块文件系统结构 软硬链接 进程间通信匿名管道命名管道system V共享内存 信号 文件 首先,Linux下一切皆文件。对于大量的文件,自然要…...
shell脚本打包成可以在麒麟桌面操作系统上使用的deb包
以下是将 .sh 的 shell 脚本打包成可以在麒麟桌面操作系统上使用的 .deb 包的详细步骤和分析过程: 准备工作 安装必要的工具:在麒麟桌面操作系统上,需要安装 dh-make 和 devscripts 等工具,这些工具用于生成和构建 Debian 包。打…...

代码随想录算法训练营 Day61 图论ⅩⅠ Floyd A※ 最短路径算法
图论 题目 97. 小明逛公园 本题是经典的多源最短路问题。 在这之前我们讲解过,dijkstra朴素版、dijkstra堆优化、Bellman算法、Bellman队列优化(SPFA) 都是单源最短路,即只能有一个起点。 而本题是多源最短路,即求多…...
【Python】yield from 功能解析
yield from 功能解析 1.基本功能1.1 传统写法(手动迭代)1.2 使用 yield from 2.与普通 yield 的区别3.yield from 的底层行为4.关键应用场景场景 1:拼接多个生成器(如 gen_concatenate)场景 2:捕获子生成器…...
私有云大数据部署:从开发到生产(Docker、K8s、HDFS/Flink on K8s)
✅ 背景 在数据工程进入深水区后,很多企业选择将大数据平台迁移到私有云或混合云部署:一方面降低成本,另一方面增强数据安全掌控。本文将详细介绍如何在私有云中部署高可用的大数据平台,涵盖: 大数据组件的容器化 Flink on Kubernetes 部署方案 HDFS 本地/远程存储支持 运…...

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

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