惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
B
Blog RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
L
LangChain Blog
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
F
Full Disclosure
T
The Blog of Author Tim Ferriss
月光博客
月光博客
有赞技术团队
有赞技术团队
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
博客园 - Franky
B
Blog
博客园_首页
C
CERT Recently Published Vulnerability Notes
Hugging Face - Blog
Hugging Face - Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
K
Kaspersky official blog
I
Intezer
P
Proofpoint News Feed
博客园 - 叶小钗
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
Recorded Future
Recorded Future
NISL@THU
NISL@THU
A
Arctic Wolf
Know Your Adversary
Know Your Adversary
C
Cyber Attacks, Cyber Crime and Cyber Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Register - Security
The Register - Security
C
Cisco Blogs
大猫的无限游戏
大猫的无限游戏
S
Secure Thoughts
T
The Exploit Database - CXSecurity.com
Forbes - Security
Forbes - Security
Project Zero
Project Zero
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cisco Talos Blog
Cisco Talos Blog
D
Docker
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
人人都是产品经理
人人都是产品经理

二丫讲梵

学习周刊-总第258期-2026年第15周 学习周刊-总第257期-2026年第14周 学习周刊-总第256期-2026年第13周 学习周刊-总第255期-2026年第12周 学习周刊-总第254期-2026年第11周 学习周刊-总第253期-2026年第10周 临时插播一条羊毛,免费领取450元大模型API代金券 学习周刊-总第252期-2026年第09周 学习周刊-总第251期-2026年第08周 学习周刊-总第250期-2026年第07周 学习周刊-总第249期-2026年第06周 诚邀评论,聊聊你所知欲知的我 学习周刊-总第248期-2026年第05周 我的QQ动态之2015年 我的QQ动态之2014年 我的QQ动态之2013年 我的QQ动态之2012年 我的QQ动态-2010-2011年 我的QQ动态-创栏小叙 学习周刊-总第247期-2026年第04周 Nexus社区版权益阉割--一文告诉你有哪些版本可以选择 学习周刊-总第246期-2026年第03周 学习周刊-总第245期-2026年第02周 学习周刊-总第244期-2026年第01周 学习周刊-总第243期-2025年第52周 学习周刊-总第242期-2025年第51周 学习周刊-总第241期-2025年第50周 用京东金融,享负债人生 学习周刊-总第240期-2025年第49周 学习周刊-总第239期-2025年第48周 整理我在静态服务透明代理上的极致求索之路,最后一个你绝想不到 学习周刊-总第238期-2025年第47周 我们输了,但收获颇多 太多了,太多了 学习周刊-总第237期-2025年第46周 学习周刊-总第236期-2025年第45周 学习周刊-总第235期-2025年第44周 二五年国庆二三事 学习周刊-总第234期-2025年第43周 学习周刊-总第233期-2025年第42周 学习周刊-总第232期-2025年第41周 学习周刊-总第231期-2025年第40周 学习周刊-总第230期-2025年第39周 西湖毅行 2025年开源世界逸闻三则 学习周刊-总第229期-2025年第38周 手抄《与妻书》 CNB开发与构建基于docker-cache缓存复用的配置实践心得 学习周刊-总第228期-2025年第37周 父亲善行录 学习周刊-总第227期-2025年第36周 带你认识我之看看我的高中同学录(其二) 学习周刊-总第226期-2025年第35周 带你认识我之看看我的高中同学录(其一) 认识神级MCP工具系列--用anyquery和数据库交互 学习周刊-总第225期-2025年第34周 学习周刊-总第224期-2025年第33周 学习周刊-总第223期-2025年第32周 学习周刊-总第222期-2025年第31周 学习周刊-总第221期-2025年第30周 CNB云原生开发环境届的瑞士军刀,详解qifei项目 vuepress-vdoing主题配置自建不蒜子统计 学习周刊-总第220期-2025年第29周 写在博客发表文章1000篇的节点 从claude cli的体验聊聊最大的敌人是我们自己的成见 学习周刊-总第219期-2025年第28周 学习周刊-总第218期-2025年第27周 学习周刊-总第217期-2025年第26周 理论正确,事实错误 学习周刊-总第216期-2025年第25周 学习周刊-总第215期-2025年第24周 学习周刊-总第214期-2025年第23周 学习周刊-总第213期-2025年第22周 学习周刊-总第212期-2025年第21周 从赵心童世锦赛夺冠聊聊我的斯诺克情缘 学习周刊-总第211期-2025年第20周 记录二五年五一之短暂回归家庭 学习周刊-总第210期-2025年第19周 学习周刊-总第209期-2025年第18周 学习周刊-总第208期-2025年第17周 Go开发实践之Gin框架将前端的dist目录embed到二进制 学习周刊-总第207期-2025年第16周 近期关于cobra库的一些实践心得总结 学习周刊-总第206期-2025年第15周 我的嗜好--嗑瓜子 记大宝参加幼儿园组织的清明烈士陵园扫墓活动 学习周刊-总第205期-2025年第14周 学习周刊-总第204期-2025年第13周 前端开发小笔记--在数组中给字段添加值与删除字段的操作 学习周刊-总第203期-2025年第12周 人生实苦,何以自渡 学习周刊-总第202期-2025年第11周 近期发现的一些优秀的工具提名(一) 学习周刊-总第201期-2025年第10周 学习周刊-总第200期-2025年第09周 记一次女友喝醉使我忍术破功 爱情风波--一次分手又复合的经历 学习周刊-总第199期-2025年第08周 整理我的信息源 学习周刊-总第198期-2025年第07周
开源项目ZenOps:带你领略禅意运维
二丫讲梵 · 2025-12-16 · via 二丫讲梵

# 前言

运维领域的工具,有这样几个阶段,从最初的命令行工具,到 Web 界面交互,再到今天结合AI用自然语言交互,每一种场景都有其独特的价值。

截至目前,我还没有遇到比较理想的,简单接入即用的工具,于是,自己动手,丰衣足食,我写了一个小工具,ZenOps,希望借助大模型的能力,打造一个简单易用的框架,让运维场景中的各种数据,都能轻松查询。

# 项目介绍

- name: ZenOps
  desc: 点我跳转到项目地址
  avatar: https://avatars2.githubusercontent.com/u/416130?s=460&u=8753e86600e300a9811cdc539aa158deec2e2724&v=4 # 可选
  link: https://github.com/opsre/zenops
  bgColor: "#0074ff" # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
  textColor: "#fff" # 可选,默认var(--textColor)

1
2
3
4
5
6

ZenOps 是一个面向运维领域的数据智能化查询工具,通过统一的接口抽象,支持多云平台(阿里云、腾讯云等云资源)、CI/CD 工具(Jenkins等各种运维领域常见工具)的资源查询,并通过 CLI、HTTP API 和 MCP 协议提供多种访问方式,同时集成钉钉,飞书(待添加)等智能机器人实现对话式查询。

# 前置准备

本次演示需要准备如下内容:

  • 阿里云或者腾讯云的秘钥(目前所有的交互都是查询操作,可以给一个全局(或按需)只读的权限)。
  • 可用的大模型秘钥(个人实测验证下来,推荐 DeepSeek-V3 或者 glm-4.6 (或 glm-4.5-flash) 这些模型)
  • Cherry Studio,用于调试 MCP 的能力。
  • 钉钉开发者后台创建应用,机器人,消息卡片。

上边前三项都比较简单,根据自己情况准备即可,接下来先介绍下钉钉相关的内容。

# 创建钉钉应用

首先来到钉钉开发者后台: https://open-dev.dingtalk.com/ (opens new window)

点击应用开发,创建一个应用。

应用创建完成后,即可获得应用的 key 和 secret,见下图:

然后打开机器人,将其设置为 Stream 模式,随后将机器人发布。如下图:

创建完毕之后,就可以在对应企业的钉钉组织内搜索到这个机器人,这个时候既可以和该机器人单独对话,也可以将机器人加入到群聊,艾特机器人对话。

当前机器人交互时,需要添加卡片相关的权限,如下图,给对应两个权限即可:

最后点击最下边的版本管理与发布,把应用发布一个版本,就能在钉钉企业中搜索到对应机器人了。

然后点击最上边的开放能力,选择卡片平台,新建一个卡片模板

然后只保留一个标题,其余的内容删除,注意开启流式组件,然后保存卡片。

如果不想自己折腾,也可以直接导入我的卡片 json。地址:点我下载 (opens new window)

然后保存上图右上角的 ID,即卡片模板的 ID。

# 启动应用

项目提供了二进制以及 docker 镜像,可根据自己的喜好选择对应的部署方式。

首先在本地完善配置文件,如下内容是为了演示精简的配置,完整配置见:点我查看 (opens new window)

$ cat config.yaml

# 云服务提供商配置
providers:
  # 腾讯云账号配置(支持多账号)
  tencent:
    - name: "default"
      enabled: true
      ak: "xxxxxxx"
      sk: "xxxxxxxxxxx"
      regions:
        - "ap-nanjing"
dingtalk:
  enabled: true
  app_key: "xxxx"
  app_secret: "xxxxxxxxx"
  card_template_id: "xxxxxxx"  # AI 流式卡片模板 ID
  enable_llm_conversation: true  # 是否启用 LLM 智能对话模式
llm:
  enabled: true
  model: "glm-4.6"
  base_url: "https://open.bigmodel.cn/api/paas/v4"
  api_key: "xxxxxxxxxxxxxxxxx"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

我这里选择使用 docker 部署,把配置文件挂载到容器启动服务:

$ docker run -itd --name zenops -p 8080:8080 -p 8081:8081 -v ./config.yaml:/app/config.yaml docker.cnb.cool/opsre/zenops

1

启动之后,会监听两个端口,8080 是 http 请求使用,8081 是 mcp 监听端口。

# 调试 MCP

这个就比较简单了,这里用 Cherry studio 来调试,进入设置,找到 MCP,添加如下配置:

{
  "mcpServers": {
    "test": {
      "isActive": true,
      "name": "zenops",
      "type": "sse",
      "description": "🧘 运维数据智能化查询工具",
      "baseUrl": "http://localhost:8081/sse",
      "command": "",
      "args": [],
      "env": {},
      "provider": "eryajf",
      "providerUrl": "https://github.com/opsre/zenops",
      "logoUrl": "https://raw.githubusercontent.com/opsre/ZenOps/main/src/zenops.png",
      "tags": [],
      "longRunning": true,
      "timeout": 300,
      "installSource": "unknown"
    }
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

如果服务不是运行在本地,则可以将 baseUrl 地址改为对应的服务器地址。

保存并启用,如果看到工具列表有数据,则说明配置成功:

然后来到对话框,随便来问一下:

如此便完成了当前工具的简易交互流程。

# 钉钉对话

同理,当我们应用启动之后,默认用 Stream 模式监听,即可在钉钉私聊或者群聊中与机器人对话:

# 最后

我想,这应该是一个值得大家去尝试的小工具,我也将持续打磨工具底层框架,让模型层面交互更加准确更加丝滑,剩下的就是完善更多的运维领域的数据查询,争取打造一个用自然语言交互的运维数据智能化查询工具。

欢迎大家部署体验(觉得不错别忘了给项目点个 star),欢迎交流思路,提交问题与建议,也欢迎有想法的开发者贡献代码,让我们一起进入禅意运维之境。

# 补充:飞书智能机器人的配置方式

因为上文已经介绍过钉钉机器人的配置方式,这里就不多废话,直接进入主题,介绍飞书的配置方式。

访问飞书开发平台 (opens new window) 选择对应组织,新建一个应用。

拿到 APP ID 和 Secret,复制好,配置到应用的 config.yaml 配置中。

点击 添加应用能力,选择添加机器人,不需要其他配置。

点击权限管理,开通相对应的权限,上图框起来的几项即是需要开通的权限。

点击左侧 事件与回调订阅方式 中选择 长连接,然后右侧 添加事件 中选择 接收消息

最后就是点击 版本管理与发布,发布版本,即可使如上配置生效,接着就是启动服务,然后在飞书中搜索机器人名称,即可与之对话。

# 补充:企微智能机器人的配置方式

要注意:钉钉和飞书均支持本地启动即可与机器人互动的模式,企微则需要将服务暴漏到公网可回调才能进行交互。

登陆企微后台 (opens new window),点击可以直接进入创建应用界面。进入创建应用界面之后,滑到最底下,点击 API 模式创建

按照上图的标号顺序,注意:前四步完成之后,要先手动点击 5 号和 6 号的随机获取,然后可以拿到对应的 TokenEncoding-AESKey 信息,此时将这两项内容,配置到项目的 config.yaml 中,然后启动服务,需要将服务暴漏出来,能够被企微回调到。

然后把可访问的地址 http://your_ip:8080/api/wecom/callback 填写到 7 号输入框,再点击保存,即算配置完毕。

接着到企业微信,搜索机器人名称,即可与之对话。