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 ...
入了一台 GPD Pocket3
最近入了一台 GPD 的模块电脑,GPD Pocket3,i7-1195G7 版本,16G/1TSSD。
据说这个电脑是的设计定位是专业运维,确实能吸引我的就是原生串口和 KVM 模块了。
8 吋,手写翻转屏幕,带雷电 4 接口,2.5G 以太网接口和 WiFi6,确实不像其他品牌的小电脑,阉割了配置。
转,官网:http://www.softwincn.com/gpdpocket3
上图新旧电脑比较,旧电脑是 DELL 的移动工作站 M6800,一比较就知道 8 吋是真的小。
预装 Win11。
哎,又是一个默认竖屏的机器。
运维神器(不是
真·巴掌大
使用感受1、小巧轻便,性能强大。日常办公娱乐足够用,这点是真的没得说。
2、拓展性能强。雷电 4(兼容 TypeC)扩展,我加了一个拓展坞,双屏 + 一个投影机,工作、投影刷剧切换自如。
3、原生串口,这个兼容性比 USB 转的要强得多,不会因为 USB 串口芯片和设备不兼容捣麻烦。
4、KVM 模块,其实就是个 1080P 的采集卡,不当 KVM 的时候,可以挂个 IPTV 盒子啥的,用 OBS 录个视频,也算解 ...
“批量请求”导致 Zabbix“Value has unknown type 0x05”
问题引入有一台 Ruijie 的 S2910 交换机在做我 HomeLab 的 TOR。因为 Ruijie 私有 MIB 的原因,Zabbix 这边一直缺一个完整的模板,五一期间抽空完善了一下模板,采集的信息趋于完善。接口自动发现,触发器自动配置,风扇,接口,温度啥的信息终于都全了。
但 Zabbix 在采集数据时,有些监控值会周期性不可用,提示“Value has unknown type 0x05”。日志如下,/var/log/zabbix_server.log。
12345672137444:20220504:232103.943 item "HomeLab-TOR-S2910:net.if.in[ifHCInOctets.15]" became not supported: Value has unknown type 0x052137444:20220504:232103.943 item "HomeLab-TOR-S2910:net.if.out.discards[ifOutDiscards.9]" became not suppor ...
GitHub Copilot 初体验
GitHub 去年联合 OpenAI,推出了一款“GitHub Copilot”工具,可以根据上下文自动写代码,将程序员从重复的编写中解放出来。目前正在做技术预览,近期我申请到了 Copilot 的 Technical Preview 资格,就准备迫不及待地去体验一下,看一看到底是智能还是**。
官方网站:https://copilot.github.com/
官方非常简洁,核心思想就是 Don’t fly solo,希望这个工具能成为程序员的 Copilot(副驾驶)。
体验一把,PHP 环境,例如我直接写中文注释,让他自动生成代码,如果觉得代码没有问题,可以按 TAB 键接受建议。
通过 SQL 直接生成 ORM 代码。
多种解决方案,可自行选择代码。
总体感觉也是挺智能的,甚至能根据前后文自动生成规范的变量名。但是在一些情况下,Copilot 还是出现了生成的代码中有未使用的变量或代码逻辑不正确的情况。当然这可以理解,毕竟作为一个得力助手是完全没问题的。
那如何申请技术预览呢?
打开官网,使用 GitLab 账号登录即可申请资格,一般需要排队,我是用了 3 天左右的时间收到 ...
Zabbix 企业微信内部应用发送告警
我有一个 Zabbix 是收 HomeLab 告警的,之前注册了一个企业微信拉了个群通过 Bot 去发告警,但是因为工作也是使用企业微信,基本上我都在我的主企业里,企业微信有个特性是不提醒其他企业的具体消息,搞得我上周漏掉了服务器硬盘挂了告警,本来是周四就告警预故障了,结果周六才看到。好在网上能买到备件,周日到货完成了更换,才没有出现两块硬盘接连“寄”掉的事情发生。
从这件事情之后,我就想如何换一种告警渠道,避免看不到告警的情况出现。最后发现可以在企业微信中添加内部应用,结合微信企业号去推送告警。
添加企业微信应用应用管理创建一个应用,并获取到 Secret 和 AgentId。这里的 Secret 对应后面的 Corpsecret。
微信添加微信插件(原企业号)之前以为企业号=企业微信,最近再翻管理后台发现企业号变成了微信插件。我们可以在我的企业->微信插件中获得二维码并关注。
增加报警媒介类型增加一种报警媒介,类型是 WebHook,参数如下填写:
参数
参数说明
值
Agentid
应用的 ID
Corpid
企业 ID
术语说明-corpid ...
用 Zabbix Debug 工具辅助二次开发
我们在做 Zabbix 二次开发的时候,离不开 Zabbix 的 API 文档,这里会以 Zabbix 6.0 API Documentation 为例子,我们在实现某些复杂的功能时,往往需要调用多个接口,其实 Zabbix WebUI 提供了一个观察 API 调用方式的方法,就是 Debug 模式。在 Debug 模式下,我们可以清楚的看到 Zabbix 的 WebUI 是如何调用 API 为我们展示数据的。
快速开始在 Zabbix 中,Debug 模式是按用户组开启的,我们可以到 管理->用户群组 中针对某个用户组开启 Debug 模式。
当开启 Debug 模式后,在页面的右下角将有“调试”按钮出现。
点击“调试”按钮可以看到详细的请求过程。如下图,是 API 接口的调用情况。
除了 API 接口,我们还能看到 SQL 执行情况,如下图。
调用演示以获取主机列表为例子。
响应如下:
使用 API Token 简化 Zabbix API 调用
我们知道 Zabbix 提供了丰富的 API,供二次开发使用,在老版本的 Zabbix 中(Zabbix 5.4 之前),需要我们手工通过user.login方法,使用用户名密码登录从而换取 API Token。而且 API Token 的有效期关联 API 用户的会话时间,当用户退出或超时后,我们需要重新user.login去申请新的 API Token。
从 Zabbix5.4 开始,我们可以直接在管理端申请一个 API Token,在它到期前都可以任意调用,极大方便了后期开发。
申请 Token以 Zabbix6.0 为例,我们可以在管理端的【管理】->【一般】->【API Tokens】中创建一个 Token。
你可以选择,是否需要过期时间。
点击添加,即可获得 API Token,请牢记生成的 API Token,这个 Token 只展示一次,如果你忘记了 API Token,则需要重新生成一个新的。
同样的,生成的 API Token 会关联你选择的用户,你可以通过该用户对 API Token 进行权限控制。
Enjoy :)
MikroTik 设备如何做抓包和流量记录
RouterOS 为我们提供了一个工具用于抓取设备中的流量数据,可以灵活的过滤接口(子接口)、MAC、协议、甚至是 CPU,并可以生成标准的数据流数据包文件或发送到远端设备,供我们进行分析使用。
工具位置Winbox –> Tools > Packet Sniffer
使用方法当我们配置好过滤器之后,我们有两种方式处理抓到的数据包。
配置过滤器在 Filter 中配置过滤器。你可以对接口、MAC、协议、IP 地址、端口、CPU、目的地址进行过滤,还可以组合过滤项。
保存到文件在 General 中填写 File Name 并指定文件的大小,要注意一下你的设备磁盘有足够的空间存放 pacp。
最好的方法还是将抓取的数据包直接发给第三方设备上。
发送到 WireShark在 Streaming 中添加 Server 和端口,打勾 Streaming Enable 和 Filter Stream,如果不需要流量过滤,则不需要勾选 Filter Stream。
在远端电脑,也就是 Server IP 的电脑,打开 WireShark,选择有线网卡,并添加、启用 udp port ...
Monit 监控你的 ZabbixServer
Monit 是一个用于管理和监视 Unix 系统的小型开源实用程序。使用 Monit 对进程进行自动维护管理,能在进程出现错误情况下执行有意义的操作。
我们使用 Monit 来监控 ZabbixServer 及其一些依赖的服务,例如 Nginx、MySQL、PHP-FPM。
安装 Monit下载地址:https://mmonit.com/monit/#download
你可以下载已经编译好的二进制包,或自行编译。我的系统环境是 Debian11。
二进制文件放到/usr/bin,配置文件放到/etc,创建一个/etc/monit.d/文件夹,用来存放监控脚本。
配置注册服务:vim /lib/systemd/system/monit.service
123456789101112[Unit]Description=A small Open Source utility for managing and monitoring Unix systemsAfter=network.target[Service]Type=simple ...