如何减小 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。
定义一个地址池,然后找个接口从这个地址 ...
yum update 异常退出后常见报错的解决方法
我们在 yum update 更新异常退出了,例如 Ctrl+C 掉,网络中断等,会有很多软件包留在仓库,引起各种各样的问题。这里简单记录一些常见的问题和解决方法。但温馨提示,最好不要中断 yum update 过程,这十分危险,可能会导致 RPMDB 损坏。
常见问题
Q1:yum update 提示软件已经被安装了,但 rpm -e 却提示仍然未安装
此时可以定位一下引发报错的软件包的名字和版本号,使用 rpm -e –nodeps 来卸载保存的软件包。
Q2: There are unfinished transactions remaining
安装 yum-utils 并使用 yum-complete-transaction 清理未完成事务。
yum install yum-utilsyum clean allyum-complete-transaction –cleanup-only
Q3: Package A conflicts with Package B
这个提示是包冲突了,只能使用 rpm 命令手动解除冲突。rpm -e 或者必要时候使用 –nodeps 参数。 ...
openEuler 搭建 SeaTable 小记(2)Runner & FAAS
这是openEuler 搭建 SeaTable 小记(1)的第二篇,主要介绍如何部署 SeaTable Python 运行器。
架构SeaTable 的 Python 脚本运行环境包括 Python Runner 和 SeaTable FAAS Scheduler。
FAAS 是调度器,主要负责调度 SeaTable 运行脚本请求、安排定时任务和保存/统计脚本运行结果等。相当于一个 master 节点。Python Runner 是脚本的执行者,Python Runner 在收到一个脚本运行请求后,会下载脚本内容并启动一个 docker 容器来运行这个脚本。脚本运行结束后,容器自动销毁,以此保证安全性。相当于是一个 worker 节点。
Python Runner 可以和 SeaTable FAAS Scheduler 部署到一台机器上。
准备我准备了一台最小化安装的 OpenEuler 操作系统虚拟机,并安装了 Docker,DockerCompose 以及 Python3(因为 SeaTable Python Runner 依赖 Python3)。
部署 Python R ...