将 ChatGPT 接入 Zabbix 为告警提供修复建议
ChatGPT 是最近很火的 AI 智能机器人程序,2 个月活跃用户突破 1 亿,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。
Zabbix 开源社区推文 实测|ChatGPT 对 Zabbix 用户有什么影响? 展示了将一些 Zabbix 相关的问题丢给 ChatGPT 处理来提升工作效率。
既然都说到这里了,那我们能不能将 Zabbix 告警信息丢给 ChatGPT,在告警的第一时间先给出一份可以参考的建议呢?
所以,基于 Zabbix 能力,我们将告警发给了 ChatGPT,并通过企业微信内部应用的方式给出告警信息和修复建议。效果如下图:
准备
注册 ChatGPT 账号
注册 AirCode 账号
准备 Zabbix 企业微信内部应用
因为需要接入 ChatGPT,必须要现有一个 OpenAI 的账号,AirCode 是一个 nodejs 运行时的 Serverless 平台,主要做 OpenAI 的 APIProxy,因为毕竟是国际服务,网络抖动会影响服务质 ...
硬刚 IPTV(1) - ROS 实现 IPoE 认证
主要就是解决如何在任意地方优雅看电视的问题。
内容比较多,计划分几个部分来搞,一实现 IPoE 认证,二实现 ACS 认证,三阶段能自动拿节目单,四阶段能看直播和回看。
案例:河北电信 IPTV(非 OTT 业务)
IPoE河北电信的 IPTV 采用的是 IPoE 方式进行设备认证的。IPoE 与 PPPoE 一样,都是接入认证技术,与 PPPoE 不同的是,IPoE 可以将用户的 IP 报文封装在以太网上,组织成 IPoE 报文,在该报文中携带用于认证的信息,配合其他认证协议,就可以实现高效的接入认证。
因为 IPoE 无需像 PPPoE 一样建立 PPP 会话和封装 PPP 报文,减小了一定的网络开销,传输效率要更高,特别适合承载一对多的视频业务,所以越来越多的 IPTV 业务改造成了 IPoE 认证。
IPoE 认证过程需要先对 IPoE 认证的过程有一些初步了解,方便我们进一步分析数据包。
这个图涉及到了很多设备,用户终端就是我们的盒子,和盒子有直接交互的就是 BRAS 设备,盒子和 BRAS 通过 DHCP 协议进行交互。那我们就要额外关注一下数据包中的 DHCP 报文。
...
如何减小 Docker 容器的日志文件大小
有一台跑 docker 的服务器,系统告警磁盘满了,经过排查,发现 /var/lib/docker/containers/ 占用了过多的磁盘空间,需要清理一下。
检查/var/lib/docker/containers/ 目录是 Docker 容器的日志目录,我们可以通过以下的命令,来查看每个容器的日志大小。
1docker ps -aq | xargs -I '{}' docker inspect --format='{{.LogPath}}' '{}' | xargs ls -lh
可以看到类似的内容。
1234-rw-r----- 1 root root 300G Feb 2 12:01 /var/lib/docker/containers/10cbdaa6640bfdd065ee4a192f5f455751f36938c0bbac870d ...
入了一台 Windows 开发工具包 2023
本文撰写、Cover 图片处理以及发布,均在 Windows DevKit 2023 中完成。
今年 10 月底,微软为进一步推进 Arm 生态,发布了一款基于 Arm 的 Windows Dev Kit 2023,也就是 Windows 开发工具包 2023。恰好我 GPD 的本子寄了,返修去了,考虑入手一台新设备。恰好这会正是双十一,各大笔记本都在调价(++),价格就不大合适了。我买笔记本一般也是发挥一个台式机的作用,因为往哪一放基本也不动。干脆这回直接看个台式设备吧。衡量了一下价格和性能,感觉这个 DevKit 刚刚能满足我的需求。
其实我对 Arm 当桌面机器的印象并不是特别好,也能也是先入为主。大概在几年前接触过智慧厂的一款 MatePad,跑的 Arm Win10,当时 Arm 的生态还很差,只能运行 Arm 和 x86(转义)应用,想装个 64 位的 JDK 都不行。最后木的任何办法,还是换回了 x64 的设备。
好了,还是回来说 DevKit 吧。本文大概会包含以下几个方面,包括:购买途径和价格,开箱,日常使用体验等。
购买途径DevKit 在国内是一个 toB 的设备 ...
网站 IPv6 改造小记 — 为什么我的网站不支持 IPv6 授权体系?
我国正在大力发展 IPv6 网络,对于网站管理员来说,肯定对 IPv6 改造不陌生,在做 IPv6 改造的过程中,需要通过国家 IPv6 发展监测平台(以下简称平台)进行检测,并达到平台的标准。平台目前共包含 7 项指标,DNS 记录、首页可达、域名授权体系、域名解析时延、TCP 时延、服务器响应首包时延、首页响应时延、下载速度。
根据这 7 项的测评结果,平台会给出网站是否支持 IPv6 访问的结论。
一般情况下,只要域名可以解析出 AAAA 记录,且 AAAA 记录所指向的服务器可正常访问(即首页可达),就可以得到网站支持 IPv6 的结论。
如下图,本站的测试结论是 支持 IPv6 访问,但不支持 IPv6 授权体系。
这个问题纠结我好久,不对啊我的权威域的 NS 是有 AAAA 记录的呀。
最后终于搞清楚了为什么我的网站会提示不支持 IPv6 授权体系了。
什么是 IPv6 授权体系先说到底啥是 IPv6 授权体系。IPv6 授权体系是指在 DNS 递归过程中,所有环节都使用了支持 IPv6 的 DNS 服务。可能这句话并不是很好理解,换言之,就是说如果我们的域名可以在纯 IP ...
家庭网络改造之入手了一个开放式机架 —— TL-EN0553R
因为房子结构的原因,没有弱电箱,入户光纤直接从沙发后面穿进来了,家里的光猫和路由器都甩在了沙发旁边,之前没用架子,就直接丢在地上,因为家里是地暖,到冬天就烤起来了。我也想过办法,用主机托架将光猫和路由器托起来,但是显得沙发旁边特别凌乱。偶然机会看到 TP-LINK 家新品 5U 开放式机架。就打算入手一个,来改造一下家庭网络这个接入角。
当然,毫无疑问这是一个开箱大水文~。
改造前:俩光猫,一个 RB4011,一个 PDU。
今日主角,TP-LINK TL-EN0553R 5U 开放式机架。
当时以为到货是个散件,开箱即用还是惊喜一丢丢。规格尺寸:5U,276mm * 500mm * 240mm
开箱啦,一个铁框框,挺沉的。官方说是 SPCC 冷轧钢板。全家福:机架,卡扣,脚垫,说明书。需要注意的是,这不是一个双面机架,只有 logo 面是可以上设备的。
信仰の logo(逃
这玩意居然有说明书,浅看一下。(请忽略小胖手)看起来很和谐,就是建议下次把线画上。。。你就知道这个走线有多难受了。。。
OK,开箱结束,321 上架。不得不说,4011 这个上机架是真的漂亮。
把之前 1KVA ...
NGINX 反向代理导致客户端缓存标记丢失的两种情况
问题引入遇到一个很奇怪的问题,后端站点使用 etag 和 last-modified 为静态资源增加了客户端缓存,经过 NGINX 代理之后,etag 和 last-modified 标记到客户端就消失了,导致客户端无法使用浏览器缓存。
排查和结论1、是否因为 gzip 导致 etag 丢失,在某些版本(1.3.3~1.7.3)的 NGINX 中,当开启 gzip 时,会导致 etag 头丢失。
官方给出的解释是压缩以后,文件大小可能被修改,会导致文件发生变化,故考虑将 etag 头丢掉。
源码分析:./release-1.3.3/src/http/modules/ngx_http_gzip_filter_module.c
12345678ngx_str_set(&h->key, "Content-Encoding");ngx_str_set(&h->value, "gzip");r->headers_out.content_encoding = h;r-> ...
扩展!为 Zabbix 增加动环能力 —— 以 Modbus 采集温湿度为例
Zabbix Agent 主机变身 FSU,可以通过 RS485 以 Modbus 协议读取温湿度,充分扩展 Zabbix 的动环监控能力。
工作原理
串口读 Modbus 协议数据,将其写入 Redis 中,Zabbix Server 请求 Zabbix Agent 读 Redis 中数据。引入 Redis 主要为了解耦,避免多个进程同时读串口造成冲突。
这里 Zabbix Agent 作为 Modbus RTU 主站,每个传感器作为一个单独的 Modbus RTU 从站,在一条 485 总线上,站号唯一,所以主站可以通过轮询的方式向从站读取数据。
材料准备硬件准备
树莓派或其他开发板,甚至是 x86 工控机,只要有多路串口就行(我以树莓派 3B+为例)
RS485 温湿度模组(我以 2 个模组为例)
TTL 转 485 转接板(树莓派默认是 TTL 电平,需要转换成 485 电平)
USB 转 485 调试器(主要方便调试)
线缆若干,485 通信线建议为双绞线
软件准备
树莓派系统选择 RPIOS,即为 Debian11
安装 Zabbix Agent 6.0 LTS
安装 ...
将博客迁移到了 COS 上...
之前博客一直是放在 CloudBase 云开发上的。主要用了云开发的静态网站托管和云函数功能。自从评论系统维护之后,云函数也不再使用了。
前几天收到了腾讯云的通知,云开发计费方式调整,将于 8 月后使用“基础套餐 + 按量付费”模式,需先购买带有一定配额的基础套餐,超出配额部分再按使用量付费。
虽然仍然有免费版本,但静态网站托管必须使用按量计费套餐才能使用,换言之,免费用户就不能再使用云开发做静态网站托管了。
在我理解下,CloudBase 是一个能力集合服务,静态网站托管依赖于 COS 和 CDN,云函数依赖于 Serverless,云托管依赖于容器服务。其它服务都可以非常灵活的按量计费的,为什么到云开发这打包之后就有了门槛了。。。
最后决定还是迁移吧。迁到 COS 去。
本次调整
原站迁移到腾讯云 COS 成都节点
全站支持 IPv6 访问
调整了打包流程,增加了对静态网站的制品管理
CODING Jenkinsfile还是放一个 CODING 的 Jenkinsfile,如果有一样想迁移的小伙伴,可以简单改改就能用了。
1234567891011121314151617181 ...
RouterOS GREv6 实现跨地域快速组网
随着 IPv4 地址紧张,越来越多的运营商已经不对普通用户开放公网 IP 了。很多时候,我们又需要做跨地域的网络互联。除了使用服务器做中转,其实我们还可以把目光聚焦到 IPv6 上,IPv6 原生就为我们提供了端到端的连接,现在很容易就能拿到运营商的 IPv6 地址,也为这个方案的实施提供了必要基础。
今天,我们要聊的是使用 RouterOS 的 GREv6 隧道,进行跨地域组网。
前提
两端都是 RouterOS 设备,建议使用 6.x 版本的 ROS 系统,目前 v7 还是 BUGOS。。。
两端都有 IPv6 地址
拓扑实验拓扑:Cloud 为互联网。
操作方法需要使用 WinBox 连接 ROS。
如图,启用 ROS 的 IPv6 功能。
需要先启用 IPv6 支持,如果没有安装 ipv6 软件包,可以去官网下载导入进行安装。
给 ROS 配一个 IPv6 地址。以我中国移动宽带为例,光猫可以 DHCPv6 下发前缀,我这边起一个 DHCPv6 Client 收一下就好了。操作位置是 IPv6->DHCPv6 Client。
定义一个地址池,然后找个接口从这个地址 ...