运维123 - 运维软件
type: channel
link: https://www.sddts.cn/index.php/category/%E8%BF%90%E7%BB%B4%E8%BD%AF%E4%BB%B6/
items: rclone 实现 4 倍于 rsync 的网络文件同步速度
items: Trzsz-ssh ( tssh ) 增强型 SSH 客户端技术分析
items: Obsidian习惯跟踪插件技术分析
items: geowifi WiFi 地理位置信息查询工具技术分析
items: Obsidian 零基础完整教程
items: Jenkins 环境变量加载问题根因分析与解决方案
items: 基于 vmware_exporter 的 ESXi 监控方案技术分析
items: Domolo Docker 容器监控日志解决方案技术分析
items: Claudian：将 Claude Code 嵌入 Obsidian 的侧边栏聊天插件
items: Obsidian 可视化技能包技术分析

rclone 实现 4 倍于 rsync 的网络文件同步速度
type: item
date: 2026-02-02T23:14:39+00:00
description: rclone 实现 4 倍于 rsync 的网络文件同步速度一、问题背景1. 场景描述过去几年里，作者一直使用外接 Thunderbolt NVMe SSD 在工作场所之间传输视频和项目数据。2. 痛点分析同步过程始终非常缓慢。在典型的工作日中，作者可能会生成一个包含 500-1000 个单独文件的项目文件夹，其中数十个文件大小在 1-10 GB 之间。3. 硬件环境Thunderbolt 驱动器：速度超过 5 GB/sec网络连接：10 Gbps，理论速度 1 GB/sec存储源：Arm NAS 上的 NVMe 卷（名为 mercury）二、原有方案：rsync1. 使用的命令rsync -au --progress --stats /Volumes/mercury/* /Volumes/Shuttle/Video_Projects参数说明：-a：归档模式，保留文件属性-u：仅更新较新的文件--progress：显示传输进度--stats：显示统计信息2. 性能测试删除了一个项目后运行 rsync 复制：$ time rsync -au --progress --stats /Volumes/mercury/* /Volumes/Shuttle/Video_Projects Radxa Orion O6/ Radxa Orion O6/.DS_Store 6148 100% 4.80MB/s 00:00:00 (xfer#1, to-check=1582/3564) ... 254240026 100% 114.11MB/s 00:00:02 (xfer#6, to-check=1589/3564) ... Number of files: 3564 Number of files transferred: 122 Total file size: 244284287846 B Total transferred file size: 62947785101 B Unmatched data: 62947785101 B Matched data: 0 B File list size: 444318 B File list generation time: 9.155 seconds File list transfer time: 0.078 seconds Total sent: 62955918871 B Total received: 2728 B sent 62955918871 bytes received 2728 bytes 128990035 bytes/sec total size is 244284287846 speedup is 3.88 real 8:17.57 user 3:13.14 sys 2:45.453. 性能分析完整复制耗时超过 8 分钟，复制了约 59 GiB 的文件。存在两个问题：rsync 单线程串行执行，一次只能复制一个文件即使对于非常大的文件，rsync 在此网络共享上的速度上限约为 350 MB/sec三、rsync 的优化尝试作者尝试了多种优化方案，但均未获得显著提速：1. 压缩算法尝试不同的压缩算法，反而会降低速度。2. tar 管道尝试先 tar 再管道传输到 rsync。3. rsync daemon尝试运行 rsync daemon 而非 SSH 传输。结论：由于作者的 NAS 运行在能效较高的 Arm 核心上，单线程压缩反而会成为瓶颈。四、新方案：rclone1. rclone 简介rclone 是一个强大的文件同步工具，支持几乎任何存储位置之间的文件复制、移动和同步，包括云存储、本地存储、NAS 卷等。作者已将其作为 3-2-1 备份计划的一部分使用多年。2. 关键特性：多线程流传输rclone 提供 --multi-thread-streams 选项，允许并行传输。3. 命令配置经过调整参数以匹配 rsync 的归档模式，并处理 Final Cut Pro 生成的 .fcpcache 符号链接目录：rclone sync \ "--exclude='**/._*' " \ "--exclude='.fcpcache/**' " \ "--multi-thread-streams=32 " \ "-P -L --metadata " \ /Volumes/mercury/ /Volumes/Shuttle/Video_Projects参数说明：sync：同步模式，使目标与源完全一致--exclude：排除特定文件/目录--multi-thread-streams=32：使用 32 个并行流-P：显示进度-L：跟随符号链接--metadata：保留元数据4. …

Trzsz-ssh ( tssh ) 增强型 SSH 客户端技术分析
type: item
date: 2026-01-29T05:40:25+00:00
description: Trzsz-ssh ( tssh ) 增强型 SSH 客户端技术分析一、概述1. 简介A. 是什么trzsz-ssh（简称 tssh）是一个 ssh 客户端的直接替代品，提供与 openssh 完全兼容的基础功能，同时实现多种实用的扩展功能。它由 lonnywong 开发，采用 MIT 许可证开源。B. 为什么使用解决服务器管理中记忆大量别名的困扰提供交互式登录界面，支持搜索和批量选择内置 trzsz 文件传输功能，无需额外开启窗口支持批量登录多台服务器并执行预设命令支持记住密码和自动交互，提升登录效率与 tsshd 配合使用，适用于弱网环境，保持会话不中断C. 核心特性兼容 openssh 配置和基础功能内置 TUI 登录界面，支持搜索和多选集成 trzsz 和 zmodem 文件传输支持记住密码、记住答案（键盘交互认证）支持 UDP 模式，适合高延迟弱网环境支持批量登录并执行预设命令支持自动交互（类似 expect 功能）二、安装方法1. 系统要求支持 Windows、macOS、Linux、ChromeOS 等多种平台Go 版安装需要 go 1.20 以上版本2. 安装方式A. Windows 系统# 使用 scoop 安装 scoop install tssh # 使用 winget 安装 winget install tssh # 使用 Chocolatey 安装 choco install tsshB. macOS 系统# 使用 Homebrew 安装 brew install trzsz-sshC. Linux 系统# Ubuntu/Debian 系统 sudo apt install tssh # 使用 yum 安装 sudo yum install tssh # ArchLinux 系统 yay -S tssh # ChromeOS 系统 crew install tsshD. 使用 Go 安装# 直接安装最新版本 go install github.com/trzsz/trzsz-ssh/cmd/tssh@latest # 或从源码编译安装 git clone https://github.com/trzsz/trzsz-ssh.git cd trzsz-ssh sudo make installE. 从发布包安装可从 GitHub Releases 下载预编译版本，国内用户可从 Gitee 发行版下载。三、工作原理1. 基本架构graph TB A[tssh 客户端] --> B[SSH 协议层] B --> C{连接模式} C -->|TCP 模式| D[标准 SSH 连接] C -->|UDP 模式| E[tsshd 服务端] D --> F[远程服务器] E --> F A --> G[TUI 登录界面] A --> H[trzsz 传输层] A --> I[自动交互模块] A --> J[批量登录模块]2. 核心模块SSH 协议层：兼容 openssh 的 SSH 协议实现TUI 界面：交互式终端用户界面，支持搜索和多选文件传输层：集成 trzsz 和 zmodem 协议认证模块：支持密码、公钥、键盘交互等多种认证方式UDP 模块：与 tsshd 配合，实现 UDP 传输模式3. 配置文件结构tssh 使用标准的 openssh 配置文件格式，并进行了扩展：主配置文件：~/.ssh/config扩展配置文件：~/.ssh/passwordtssh 专属配置：~/.tssh.conf 或 $XDG_CONFIG_HOME/tssh/tssh.conf四、核心功能1. 登录界面A. 启动方式# 直接运行 tssh 命令 tssh # 或者有除目标机器外的其他参数 tssh -o ServerAliveInterval=60B. 配置要求使用前需要配置好 ~/.ssh/config 文件：# 基本配置示例 Host server1 HostName 192.168.1.100 User admin Port 22 IdentityFile ~/.ssh/id_rsa Host server2 HostName 192.168.1.101 User rootC. 快捷键支持操作全局快捷键非搜索快捷键描述确认登录Enter-确认并登录选中的服务器退出Ctrl+C / Ctrl+Qq / Q取消并退出登录界面上移Ctrl+K / Shift+Tab / ↑k / K往上移动光标下移Ctrl+J / Tab / ↓j / J往下移动光标上翻页Ctrl+H / Ctrl+U / Ctrl+B / PageUp / ←h / H / u / U / b / B往上翻一页下翻页Ctrl+L / Ctrl+D / Ct…

Obsidian习惯跟踪插件技术分析
type: item
date: 2026-01-29T04:56:00+00:00
description: Obsidian 习惯跟踪插件技术分析一、概述1. 背景Obsidian 作为一款基于本地 Markdown 文件的知识管理工具，其强大的插件生态为用户提供了丰富的功能扩展可能。习惯跟踪是个人生产力管理中的重要环节，Obsidian 社区为此开发了多种插件方案，从简单的复选框到复杂的交互式系统，满足不同用户的需求。2. 核心问题如何在 Obsidian 中实现高效的习惯跟踪？不同的插件方案各有优劣，需要根据使用场景、技术能力和个人偏好进行选择。3. 分析目标本文将从第一性原理出发，系统分析 Obsidian 习惯跟踪的各种技术方案，包括主流插件的功能特性、实现原理、适用场景以及潜在问题，为用户提供全面的技术参考。二、习惯跟踪的核心要素1. 基本概念习惯跟踪系统需要包含以下核心元素：A. 数据记录记录方式：复选框、按钮、滑块记录频率：每日、每周、每月数据存储：独立文件或嵌入日常笔记B. 可视化展示进度图表：热力图、趋势线、柱状图日历视图：月度概览、连续打卡统计数据：完成率、连续天数、最长记录C. 交互功能快速记录：一键打卡数据编辑：补填历史数据提醒功能：定时通知（部分插件支持）2. 技术挑战A. 数据持久化如何在 Markdown 文件中存储结构化的习惯数据？B. 跨平台同步移动端体验如何保障？如何处理同步冲突？C. 性能优化随着数据积累，如何避免搜索变慢、文件过多？三、主流插件方案分析1. Tracker 插件（社区推荐）A. 核心特性GitHub 风格热力图展示强大的数据分析功能支持多种数据类型：习惯、能量水平、睡眠、健康指标交互式用户界面任务完成率追踪B. 技术实现Tracker 插件通过以下方式实现功能：graph LR A[日常笔记] -->|解析数据| B[Tracker 插件] B -->|生成| C[热力图] B -->|计算| D[统计数据] B -->|渲染| E[趋势图表] D -->|显示| F[完成率面板] E -->|展示| G[进度视图]C. 适用场景需要可视化数据的高级用户希望追踪多种类型数据的用户对数据分析有需求的用户D. 优势功能最全面，可视化效果优秀社区活跃，文档完善支持高度定制E. 局限学习曲线较陡配置相对复杂对性能有一定要求2. Habit Tracker 21（zincplusplus）A. 核心特性简约优雅的设计清晰的进度可视化为每个习惯创建独立文件下载量超过 19,780 次（2025 年数据）B. 技术架构Habit Tracker 21 采用文件级数据存储策略：graph TD A[Habits 文件夹] --> B[习惯1.md] A --> C[习惯2.md] A --> D[习惯3.md] B --> E[元数据: 名称, 目标] B --> F[日志: 每日记录] G[日常笔记] -->|嵌入| H[习惯跟踪代码块] H -->|读取| B H -->|渲染| I[进度显示]C. 适用场景喜欢简洁界面的用户习惯数量中等的用户不需要复杂数据分析的用户D. 优势设计美观，上手简单数据结构清晰，易于管理性能表现稳定E. 局限高级分析功能较少自定义选项有限3. Habit Calendar（日历视图插件）A. 核心特性使用 DataviewJS 渲染日历月度习惯概览与 Dataview 插件深度集成B. 技术原理sequenceDiagram participant N as 日常笔记 participant D as Dataview participant H as Habit Calendar participant U as 用户界面 N->>D: 查询习惯数据 D->>H: 返回数据集 H->>H: 生成日历渲染代码 H->>U: 显示月度日历视图 U->>H: 点击日期查看详情 H->>N: 跳转到对应笔记C. 适用场景偏好日历视图的用户已使用 Dataview 的用户需要月度概览的用户D. 优势视觉直观，符合习惯与 Dataview 生态集成可自定义查询逻辑E. 局限依赖 Dataview 插件配置需要一定技术基础4. obsidian-easily-habit-trackerA. 核心特性灵活强大的追踪功能支持周期性笔记：日笔记、周笔记、月笔记进度可视化B. 技术亮点插件支持多种笔记类型的集成，适应不同的工作流。C. 适用场景使用周期性笔记的用户需要灵活集成的用户5. Life Tracker（2025 年新插件）A. 核心特性（2025 年 12 月发布）全方位生活追踪支持的追踪类别：身体健康睡眠质量营养摄入运动记录心理健康压力水平习惯养成日常例行事项成瘾管理B. 设计理念Life Tracker 超越了传统习惯跟踪的范畴，定位为综合性的生活数据管理平台。C.…

geowifi WiFi 地理位置信息查询工具技术分析
type: item
date: 2026-01-17T22:03:34+00:00
description: geowifi WiFi 地理位置信息查询工具技术分析一、概述1. 简介A. 是什么geowifi 是一个开源情报（OSINT）工具，用于通过 BSSID（基本服务集标识符）或 SSID（服务集标识符）查询 WiFi 网络的地理位置信息。该工具整合了多个公开的 WiFi 地理位置数据库，为安全研究人员、渗透测试人员和 OSINT 从业者提供便捷的查询接口。B. 核心价值多数据源整合：同时查询多个 WiFi 地理位置数据库可视化输出：支持地图可视化展示查询结果灵活配置：支持 API 密钥管理和 SSL 验证配置易于部署：提供 Docker 和本地 Python 两种部署方式C. 应用场景渗透测试中的物理位置侦察安全审计与无线网络分析OSINT 调查中的地理位置定位无线网络安全研究2. 技术特点A. 支持的数据库Wigle：全球最大的 WiFi 网络数据库Apple：苹果地理位置服务Google：谷歌地理位置服务Milnikov：开源 WiFi 定位服务WifiDB：社区 WiFi 数据库Combain：商业定位服务Freifunk Carte：德国开源网络地图B. 技术栈编程语言：Python 3容器化：Docker输出格式：JSON、HTML 地图二、系统架构1. 架构设计graph TB User[用户] --> CLI[命令行接口] CLI --> Config[配置管理] CLI --> Parser[参数解析器] Parser --> Search{搜索类型} Search -->|BSSID| Query[查询引擎] Search -->|SSID| Query Config --> API[API 密钥管理] Query --> Wigle[Wigle API] Query --> Google[Google Geolocation API] Query --> Apple[Apple Location API] Query --> Combain[Combain API] Query --> Mylnikov[Mylnikov API] Query --> WifiDB[WifiDB API] Query --> Freifunk[Freifunk API] Wigle --> Collector[结果收集器] Google --> Collector Apple --> Collector Combain --> Collector Mylnikov --> Collector WifiDB --> Collector Freifunk --> Collector Collector --> Output{输出格式} Output -->|JSON| Formatter[JSON 格式化] Output -->|地图| Mapper[地图生成器] Formatter --> Display[结果显示] Mapper --> Display2. 组件说明CLI：命令行接口，负责用户交互配置管理：加载和解析 YAML 配置文件查询引擎：根据搜索类型分发查询请求API 适配器：封装各数据库的 API 调用逻辑结果收集器：聚合多个数据源的查询结果输出格式化：将结果转换为指定格式三、核心功能1. 搜索功能A. BSSID 搜索BSSID（Basic Service Set Identifier）是 WiFi 接入点的 MAC 地址，格式为 XX:XX:XX:XX:XX:XX。sequenceDiagram participant U as 用户 participant C as CLI participant Q as 查询引擎 participant W as Wigle participant G as Google participant A as Apple participant R as 结果收集器 U->>C: 输入 BSSID C->>Q: 解析参数 par 并行查询 Q->>W: 查询请求 Q->>G: 查询请求 Q->>A: 查询请求 end W-->>R: 返回结果 G-->>R: 返回结果 A-->>R: 返回结果 R->>U: 聚合展示B. SSID 搜索SSID（Service Set Identifier）是 WiFi 网络的名称。部分数据库支持通过 SSID 进行模糊搜索。2. API 配置A. Wigle API用途：查询 WiFi 网络的地理位置信息获取方式：注册 https://wigle.net/account配置参数：wigle_auth（Encoded for use 认证字符串）B. Google Geolocation API用途：利用谷歌的地理位置数据库获取方式：http…

Obsidian 零基础完整教程
type: item
date: 2026-01-17T13:33:19+00:00
description: Obsidian 零基础完整教程一、概述1. 简介A. 是什么Obsidian 是一款基于本地 Markdown 文件的双向链接笔记工具，将知识管理与文本编辑完美结合。所有笔记以纯文本格式存储，用户拥有完全的数据控制权。B. 为什么选择 Obsidian在尝试过众多笔记工具后，选择 Obsidian 基于以下核心优势：数据完全自主可控，无厂商锁定风险界面流畅无卡顿，支持完全离线使用丰富的插件生态，可自由定制功能完美支持 AI 工具集成，提升知识管理效率C. 学完能做什么使用 Markdown 语法编写结构化笔记通过双向链接构建个人知识图谱集成 AI 工具实现自动化笔记管理利用插件扩展打造个性化知识系统2. 前置知识A. 必备技能基本电脑操作能力文件管理基础知识B. 推荐知识Markdown 基础语法（教程中会详细讲解）Git 基本操作（用于云端同步）二、环境准备1. 系统要求Obsidian 支持以下平台：Windows 10/11macOS 10.15+Linux（主流发行版）iOS 和 Android（移动端）2. 下载安装A. 访问官网打开 https://obsidian.md/，根据系统下载对应版本。B. 安装步骤下载安装包运行安装程序完成安装并启动 Obsidian3. 验证安装启动 Obsidian 后，会提示创建或打开笔记仓库。三、核心概念1. 基本术语仓库（Vault）：存储所有笔记的文件夹Markdown：轻量级标记语言，用于格式化文本双向链接：笔记间的智能引用机制插件：扩展 Obsidian 功能的组件知识图谱：可视化展示笔记关系的网络图2. 工作原理graph LR A[Markdown 文件] --> B[Obsidian 核心] B --> C[双向链接] B --> D[插件系统] B --> E[知识图谱] C --> E D --> E F[AI 工具] --> B3. 架构图Obsidian 采用本地优先架构，数据存储在本地文件系统中，插件系统提供扩展能力，双向链接机制构建知识网络。四、快速上手1. 创建笔记仓库A. 准备 GitHub 仓库注册 GitHub 账号（如没有）创建新仓库：点击 New Repository在本地找个文件夹，执行以下命令克隆仓库：git clone 仓库链接B. 配置 .gitignore在仓库根目录创建 .gitignore 文件，防止上传不必要的配置文件：.obsidian/workspace.json .obsidian/workspace-mobile.jsonC. 在 Obsidian 中打开仓库启动 Obsidian打开刚刚克隆下来的文件夹创建第一篇笔记2. 配置 Git 同步A. 安装 Git 插件点击第三方插件关闭安全模式点击浏览，搜索 git下载并安装第一个插件B. 配置自动同步在插件选项中配置更新时间打开自动同步按钮修改后右侧会显示 pull 提示3. 配置图片管理A. 安装 Custom attachment 插件在插件市场搜索 Custom attachment 并安装启用。B. 配置图片路径点击选项进行配置设置 Markdown URL 格式为：assets/${noteFileName}/${generatedAttachmentFileName}在文件与链接中配置相关选项C. 使用图片将图片复制到笔记中，路径会自动生成。可通过修改 [] 内的数字调整图片尺寸。五、Markdown 语法基础Markdown 是一种轻量级标记语言，在 Obsidian 中用于排版笔记内容。1. 标题分级使用 # 符号创建不同级别的标题，# 的数量决定标题级别：# 一级标题 ## 二级标题 ### 三级标题 #### 四级标题2. 文本格式化A. 加粗文本使用两个星号包裹文字：**这是加粗文字**B. 斜体文本使用一个星号包裹文字：*这是斜体文字*C. 高亮文本使用两个等号包裹文字：==这是高亮文字==D. 删除线使用两个波浪号包裹文字：~~这是删除线文字~~3. 列表与任务管理A. 无序列表使用 - 或 * 开头：- 列表项1 - 列表项2 - 子列表项B. 有序列表使用数字加点号开头：1. 第一项 2. 第二项 3. 第三项C. 任务列表使用 - [ ] 创建待办事项：- [x] 已完成的任务 - [ ] 未完成的任务 - [ ] 待处理的任务4. 代码块A. 行内代码使用反引号包裹：这是 `代码示例` 的效果B. 代码块使用三个反引号包裹，可指定语言实现语法高亮：```python def hello_world(): print("Hello, World!") ```5. 表格使用竖线和横线创建表格：| 列标题1 | 列标题2 | 列标题3 |…

Jenkins 环境变量加载问题根因分析与解决方案
type: item
date: 2026-01-16T02:08:29+00:00
description: Jenkins 环境变量加载问题根因分析与解决方案一、事件概述1. 事件背景在 Jenkins CI/CD 流水线中使用 Claude Code CLI 时，遇到 API Key 认证失败的问题。尽管在 ~/.bashrc 文件中正确配置了 ANTHROPIC 相关环境变量，但 Jenkins 任务仍然报错 Invalid API key。2. 影响范围A. 影响范围所有依赖 Claude Code CLI 的 Jenkins 自动化任务B. 影响功能文档自动生成流水线博客自动发布流程依赖 Claude API 的自动化脚本3. 严重程度P2 级问题（影响自动化流水线，但有临时解决方案）二、事件时间线1. 问题发现A. 现象描述Jenkins 构建任务执行失败，错误信息：Invalid API key · Please run /loginB. 故障环境Jenkins Master：192.168.124.86Jenkins Agent：mlab.dev.vm1（lab 用户）执行命令：claude -p /chinese-doc-generator ...2. 问题排查A. 本地验证SSH 登录到 Jenkins Agent 手动执行命令，一切正常。B. 对比分析本地交互式 Shell 可以加载环境变量，Jenkins 非交互式 Shell 无法加载。3. 根因定位检查 ~/.bashrc 文件开头发现：# ~/.bashrc: executed by bash(1) for non-login shells. # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac这一段代码导致非交互式 Shell 直接返回，跳过了后续所有环境变量定义。三、问题分析1. 直接原因~/.bashrc 在文件开头有明确的非交互式 Shell 检查，导致 Jenkins 使用的非交互式 Shell 无法加载环境变量。2. Shell 配置文件加载机制graph TD A[Shell 启动] --> B{Shell 类型} B -->|Login Shell| C[加载 /etc/profile] C --> D[加载 ~/.profile] D --> E[加载 ~/.bashrc] B -->|非登录交互式| F[加载 /etc/bash.bashrc] F --> E B -->|非交互式| G[不自动加载任何配置] G --> H[除非显式 source] E --> I{是否交互式} I -->|是| J[执行后续配置] I -->|否| K[立即返回] K --> L[环境变量未加载]3. 根本原因（5 Whys 分析）A. 为什么环境变量没有生效？因为 ~/.bashrc 在非交互式模式下直接 return 了。B. 为什么 ~/.bashrc 会直接返回？这是 Ubuntu 默认 bashrc 配置的保护机制，避免非交互式 Shell 加载不必要的配置。C. 为什么本地正常而 Jenkins 不正常？本地 SSH 登录是 Login Shell，会加载 ~/.profile；Jenkins 使用非交互式 Shell，且没有显式 source bashrc。D. 为什么在 Jenkins 脚本中直接设置有效？因为在当前 Shell 进程中直接 export 环境变量，不依赖配置文件加载机制。E. 深层问题是什么？对 Linux Shell 配置文件加载机制理解不足，没有针对 CI/CD 环境正确配置环境变量。四、解决方案1. 方案对比方案优点缺点推荐度移至 ~/.profile标准 Linux 做法，所有 Shell 都能加载需要 SSH 重新登录生效⭐⭐⭐⭐⭐Jenkins 脚本显式 source灵活，不影响其他环境每个 Job 都要配置⭐⭐⭐创建独立 .env 文件配置清晰，易于管理需要修改 Jenkins 配置⭐⭐⭐⭐Jenkins 全局环境变量集中管理，对所有 Job 生效需要 Jenkins UI 操作⭐⭐⭐⭐修改 bashrc 结构一劳永逸可能影响其他非交互式场景⭐⭐2. 推荐方案：环境变量分层配置A. 核心思路不同类型的配置放到不同的配置文件中，遵循 Linux 标准实践。B. 具体实施将 API Key 等敏感环境变量移至 ~/.profile：# ~/.profile - 适用于 Login Shell 和非交互式 Shell export ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic export ANTHROPIC_AUTH_TO…

基于 vmware_exporter 的 ESXi 监控方案技术分析
type: item
date: 2026-01-16T01:41:43+00:00
description: 基于 vmware_exporter 的 ESXi 监控方案技术分析一、概述1. 背景A. 业务场景数据中心和边缘节点大量使用 VMware ESXi 承载计算资源。稳定性和容量可视化是基础运维诉求，统一监控体系需要纳入 ESXi 与 vCenter 的指标。B. 技术挑战多集群、多 vCenter 环境下的统一监控ESXi 与 vCenter 指标的标准化采集监控数据的统一存储与可视化展示告警规则的统一管理与路由分发2. 设计目标A. 功能目标使用 vmware_exporter 采集 ESXi/vCenter 指标通过 Docker Compose 编排部署监控组件将指标接入 Prometheus 进行时序存储使用 Grafana 构建可视化仪表盘通过 Watchalert 实现端到端告警管理B. 非功能目标支持多数据中心、多 vCenter 并行采集提供开箱即用的配置模板支持自签证书场景实现高可用的监控架构二、架构设计1. 系统架构graph TB subgraph VMware基础设施 ESXi1[ESXi主机集群1] ESXi2[ESXi主机集群2] vCenter[vCenter服务器] end subgraph 采集层 Exp1[vmware_exporter 北京集群:9272] Exp2[vmware_exporter 南京集群:9273] end subgraph 存储层 Prometheus[Prometheus 时序数据库] end subgraph 告警层 Watchalert[Watchalert 告警路由与通知] end subgraph 可视化层 Grafana[Grafana 仪表盘] end ESXi1 --> vCenter ESXi2 --> vCenter vCenter --> Exp1 vCenter --> Exp2 Exp1 --> Prometheus Exp2 --> Prometheus Prometheus --> Watchalert Prometheus --> Grafana Watchalert -->|告警通知|运维团队2. 组件说明A. vmware_exporter版本：0.18.4功能：连接 vCenter 或直接 ESXi，暴露 Prometheus 格式的 /metrics 接口开源地址：https://github.com/pryorda/vmware_exporterB. Prometheus版本：3.5.0 LTS功能：抓取 exporter 指标，存储时序数据提供 PromQL 查询语言C. Watchalert版本：3.8.0功能：接收 Prometheus 数据，配置监控项与告警表达式，支持 webhook 通知支持告警聚合、抑制、路由D. Grafana版本：10.2.3功能：可视化查询与仪表盘展示支持多种数据源和丰富的图表类型三、环境准备1. 前置条件A. 网络与账户确保可访问 vCenter 或 ESXi 的网络连通性准备只读账户，避免使用管理员账户密码通过环境变量或外部秘密管理，禁止硬编码B. Docker 环境安装 Docker 与 Docker Compose确保容器间网络通信正常C. 监控基础设施部署好 Prometheus、Watchalert 与 Grafana确保各组件间网络可达2. 组件版本清单组件名称版本说明vmware_exporter0.18.4ESXi/vCenter 指标采集Prometheus3.5.0 LTS时序数据存储Watchalert3.8.0告警管理Grafana10.2.3可视化展示四、部署实施1. vmware_exporter 部署A. 环境变量配置支持多集群、多 vCenter 场景，为每个集群创建独立的配置文件：config-bj.env（北京集群）：VSPHERE_USER=administrator@vsphere.local VSPHERE_PASSWORD='xxxxxx' VSPHERE_HOST=172.10.30.1 VSPHERE_IGNORE_SSL=TRUE VSPHERE_SPECS_SIZE=2000config-nj.env（南京集群）：VSPHERE_USER=administrator@vsphere.local VSPHERE_PASSWORD='xxxxxx' VSPHERE_HOST=172.22.33.1 VSPHERE_IGNORE_SSL=TRUE VSPHERE_SPECS_SIZE=2000B. Docker Compose 编排version: '3.8' services: vmware_exporter_nj: image: dock…

Domolo Docker 容器监控日志解决方案技术分析
type: item
date: 2026-01-15T12:10:04+00:00
description: Domolo Docker 容器监控日志解决方案技术分析一、概述1. 项目简介Domolo 是一个专为 Docker 主机和容器设计的监控与日志解决方案，集成了 Prometheus、Grafana、Loki、cAdvisor、NodeExporter 和 AlertManager 等开源工具，提供完整的一站式监控平台。A. 核心问题Docker 容器环境的可观测性面临以下挑战：容器动态性强，传统监控难以适应主机资源与容器资源需要分层监控日志分散在各个容器中，难以集中管理需要统一的可视化界面展示监控数据异常情况需要及时告警通知B. 解决方案Domolo 通过以下方式解决上述问题：使用 Prometheus 采集和存储时序指标数据使用 Loki 构建高效的日志聚合系统使用 Grafana 提供统一的数据可视化界面使用 AlertManager 实现灵活的告警规则管理使用 cAdvisor 和 NodeExporter 分别采集容器和主机指标2. 核心组件A. 指标采集组件NodeExporter：采集主机级别的 CPU、内存、磁盘、网络等指标cAdvisor：采集容器级别的资源使用情况Prometheus Pushgateway：接收短期任务和批处理任务的指标推送B. 数据存储组件Prometheus：时序数据库，存储所有指标数据Loki：日志聚合系统，类似 Prometheus 但专注于日志C. 可视化与告警组件Grafana：数据可视化平台，预配置多个仪表板AlertManager：告警管理和分发，支持多种告警路由D. 日志采集组件Promtail：日志采集代理，负责收集日志并发送到 LokiE. 反向代理组件Caddy：提供反向代理和基础认证功能二、系统架构1. 整体架构graph TB subgraph "数据采集层" NE[NodeExporter 主机指标] CA[cAdvisor 容器指标] PT[Promtail 日志采集] end subgraph "数据存储与处理层" PM[Prometheus 指标存储] LK[Loki 日志存储] PG[Pushgateway 临时指标] end subgraph "可视化与告警层" GF[Grafana 数据可视化] AM[AlertManager 告警管理] end subgraph "反向代理层" CD[Caddy 反向代理+认证] end NE -->|指标| PM CA -->|指标| PM PG -->|推送| PM PT -->|日志| LK PM -->|查询| GF LK -->|查询| GF PM -->|告警| AM CD -->|代理| PM CD -->|代理| AM2. 数据流向分析A. 指标数据流NodeExporter 定期采集主机指标，暴露 HTTP 端点供 Prometheus 抓取cAdvisor 采集容器指标，同样通过 HTTP 端点暴露Prometheus 按照配置的抓取间隔定期从各目标获取指标短期任务可通过 Pushgateway 主动推送指标Grafana 从 Prometheus 查询数据并渲染图表B. 日志数据流Promtail 通过 Docker Socket API 监听容器日志Promtail 根据配置规则对日志添加标签标记后的日志发送到 Loki 存储Grafana 通过 Loki API 查询日志，支持按标签过滤C. 告警数据流Prometheus 根据告警规则评估指标触发的告警发送到 AlertManagerAlertManager 根据路由规则分发告警支持邮件、Webhook 等多种通知方式三、部署方式1. 快速部署A. 基础部署使用 Docker Compose 一键部署所有组件：git clone https://github.com/ductnn/domolo.git cd domolo docker-compose up -dB. 各组件访问地址部署完成后，各组件可通过以下地址访问：组件地址说明Prometheushttp://host-ip:9090指标查询和告警管理Pushgatewayhttp://host-ip:9091临时指标接收AlertManagerhttp://host-ip:9093告警管理界面Grafanahttp://host-ip:3000数据可视化仪表板Lokihttp://host-ip:3100日志查询 API2. Grafana 配置A. 修改管理员凭据在配置文件中修改 Grafana 默认凭据：GF_SECURITY_ADMIN_USER=admin GF_SECURITY_ADMIN_PASSWORD=changeme GF_USERS_ALLOW_SIGN_UP=…

Claudian：将 Claude Code 嵌入 Obsidian 的侧边栏聊天插件
type: item
date: 2026-01-15T11:18:30+00:00
description: Claudian：将 Claude Code 嵌入 Obsidian 的侧边栏聊天插件一、概述1. 简介A. 是什么Claudian 是一款 Obsidian 插件，将 Claude Agent（基于 Claude Agent SDK）嵌入为侧边栏聊天界面。用户的笔记库（vault）成为 Claude 的工作目录，使其具备完整的代理能力：文件读写、搜索、bash 命令和多步骤工作流。B. 为什么值得关注将 AI 能力直接集成到笔记工作流中无需切换应用即可在 Obsidian 内使用 Claude Code支持完整的 Claude Agent SDK 功能集C. 核心价值在笔记环境中直接调用 AI 进行文件操作和代码执行上下文感知的智能助手，自动关联当前笔记支持多标签页、视觉识别、MCP 服务器集成等高级功能2. 前置知识A. 必备条件已安装 Claude Code CLIObsidian v1.8.9 或更高版本Claude 订阅或 API 密钥，或支持 Anthropic API 格式的自定义模型提供商（OpenRouter、Kimi、GLM、DeepSeek 等）仅支持桌面端（macOS、Linux、Windows）B. 推荐知识熟悉 Obsidian 基础操作了解 Claude Code 的基本使用方法对 MCP（Model Context Protocol）有基本了解二、环境准备1. 系统要求操作系统：macOS、Linux 或 WindowsObsidian 版本：v1.8.9+Claude Code CLI：已安装并配置桌面环境（不支持移动端）2. 安装步骤方式一：从 GitHub Release 安装（推荐）从最新发布版本下载 main.js、manifest.json 和 styles.css 三个文件在笔记库的插件文件夹中创建 claudian 文件夹：/path/to/vault/.obsidian/plugins/claudian/将下载的文件复制到 claudian 文件夹中在 Obsidian 中启用插件：设置 → 社区插件 → 启用「Claudian」方式二：使用 BRAT 安装BRAT（Beta Reviewers Auto-update Tester）允许直接从 GitHub 安装和自动更新插件。从 Obsidian 社区插件安装 BRAT 插件在设置 → 社区插件中启用 BRAT打开 BRAT 设置，点击「Add Beta plugin」输入仓库 URL：https://github.com/YishenTu/claudian点击「Add Plugin」，BRAT 将自动安装 Claudian在设置 → 社区插件中启用 Claudian方式三：从源码安装（开发模式）将仓库克隆到笔记库的插件文件夹：cd /path/to/vault/.obsidian/plugins git clone https://github.com/YishenTu/claudian.git cd claudian安装依赖并构建：npm install npm run build在 Obsidian 中启用插件3. 验证安装安装完成后，在 Obsidian 中：检查功能区是否出现机器人图标尝试打开聊天侧边栏验证 Claude CLI 是否被正确识别三、核心概念1. 基本术语A. Claudian ServiceClaude Agent SDK 的包装器，负责与 Claude API 的通信和会话管理。B. Slash Commands可重用的提示词模板，通过 /command 触发，支持参数占位符、@file 引用和可选的内联 bash 替换。C. Skills可重用的能力模块，基于上下文自动调用，兼容 Claude Code 的技能格式。D. MCP Servers通过 Model Context Protocol 连接外部工具和数据源，支持 stdio、SSE 和 HTTP 三种模式。E. Inline Edit内联编辑模式，可直接在笔记中编辑选中文本或在光标位置插入内容，提供单词级差异预览。2. 系统架构graph TB User[用户] --> Obsidian[Obsidian] Obsidian --> Claudian[Claudian Plugin] Claudian --> SDK[Claude Agent SDK] SDK --> ClaudeAPI[Claude API] Claudian --> Vault[笔记库 Vault] Claudian --> MCP[MCP Servers] Claudian --> Plugins[Claude Code Plugins] Claudian -->…

Obsidian 可视化技能包技术分析
type: item
date: 2026-01-15T10:28:23+00:00
description: Obsidian 可视化技能包技术分析一、概述1. 项目背景axton-obsidian-visual-skills 是一个专为 Claude Code 设计的 Obsidian 可视化技能包，由 AI 教育者 Axton Liu 开发。该项目通过简单的 Markdown 技能文件，赋予 Claude Code 生成 Excalidraw、Mermaid 和 Canvas 三种类型可视化图表的能力。2. 核心价值传统可视化方案通常需要复杂的 MCP 服务器配置，而该项目采用基于 prompt 的技能扩展方式，用户只需复制 Markdown 文件到 Claude Code 技能目录即可使用。这种轻量级的设计理念，降低了 AI 辅助可视化工具的使用门槛。3. 技术定位项目目前处于实验性阶段（Experimental Status），主要用于演示工具和系统如何协同工作。作者明确表示，输出质量会根据模型版本和输入结构有所波动，暂未覆盖所有输入规模和边界情况。二、系统架构1. 整体架构该技能包采用模块化设计，包含三个独立的技能模块，每个模块对应一种可视化类型。架构清晰，各模块职责明确，可以独立安装和使用。graph TB User[用户输入] --> Claude[Claude Code] Claude --> Skills{技能路由} Skills -->|Excalidraw| E[Excalidraw Diagram] Skills -->|Mermaid| M[Mermaid Visualizer] Skills -->|Canvas| C[Canvas Creator] E --> Output1[.md with JSON] M --> Output2[Mermaid Code] C --> Output3[.canvas File]2. 核心组件A. Excalidraw Diagram Generator生成手绘风格图表，输出为包含 Excalidraw JSON 的 Markdown 文件，可直接在 Obsidian 中打开编辑。B. Mermaid Visualizer将文本内容转换为专业的 Mermaid 图表，内置语法错误预防机制，适用于演示和文档场景。C. Obsidian Canvas Creator创建交互式 Obsidian Canvas 文件，支持 MindMap 和 Freeform 两种布局模式。三、技术特性分析1. Excalidraw 模块A. 支持的图表类型图表类型适用场景Flowchart（流程图）分步流程、工作流、任务序列Mind Map（思维导图）概念扩展、主题分类、头脑风暴Hierarchy（层级结构）组织架构、内容级别、系统分解Relationship（关系图）依赖关系、影响关系、元素交互Comparison（对比图）方案对比、选项分析Timeline（时间线）事件进展、项目里程碑、演进过程Matrix（矩阵图）二维分类、优先级网格、定位分析Freeform（自由布局）散点创意、初始探索、自由笔记B. 核心特性自动保存为 Excalidraw 插件兼容的 Markdown 文件使用 Excalifont（fontFamily: 5）实现手绘美学效果完整支持中文文本，正确处理中文字符一致的调色板和样式指南C. 触发词Excalidraw、diagram、flowchart、mind map、画图、流程图、思维导图、可视化2. Mermaid 模块A. 支持的图表类型Process Flow（流程图）：展示工作流程、决策树、AI Agent 架构Circular Flow（循环图）：展示循环过程、反馈回路、持续改进Comparison Diagram（对比图）：前后对比、A vs B 分析Mindmap（思维导图）：层次概念、知识组织Sequence Diagram（时序图）：组件交互、API 调用、消息流State Diagram（状态图）：系统状态、状态转换、生命周期B. 核心特性内置语法错误预防（列表冲突、subgraph 命名、特殊字符处理）可配置布局：垂直/水平、简单/标准/详细专业的配色方案，具有语义含义兼容 Obsidian、GitHub 和其他 Mermaid 渲染器C. 触发词Mermaid、visualize、flowchart、sequence diagram、可视化3. Canvas 模块A. 布局模式模式结构适用场景MindMap从中心辐射的层级结构头脑风暴、主题探索、层次内容Freeform自定义定位、灵活连接复杂网络、非层次内容、自定义排列B. 核心特性基于内容长度的智能节点尺寸自动创建带标签的关系边6 种预设颜色 + 自定义十六进制颜色防重叠的间距算法支持…