使用 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...
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...
Raspbian 扩容 SWAP 分区的正确姿势
树莓派装好 Raspbian 系统后,默认的 SWAP 分区是 100M,用着用着 ZABBIX 就告警 SWAP 分区不足,网上许多资料都是增加个 SWAP 文件,然后在 fstab 挂盘。其实我们发现在编辑树莓派 fstab 文件的时候,就发现有两句话。 12# a swapfile is not a swap partition, no line here# use dphys-swapfile swap[on|off] for that 这其实已经说明了,官方推荐使用 dphys-swapfile 挂载 SWAP。 编辑配置文件1sudo vim /etc/dphys-swapfile 修改 CONF_SWAPFILE 和 CONF_SWAPSIZE 12CONF_SWAPFILE=/var/swapCONF_SWAPSIZE=2048 一般 SWAP 大小就给 2 倍物理内存就好了。 使 SWAP 生效1systemctl restart dphys-swapfile 划分空间需要一点时间,等他一会,free -h 就可以看到 SWAP 分区已经 2G 了。
ZABBIX 升级小记(5.0LTSto6.0LTS)
近日 ZABBIX 发布了其 6.0 的 LTS 版本,增强了业务服务监控、数据可视化的能力,也为我们带来了期待很久的 HA、K8S 等新功能。 抽个周末,给自己 HomeLAB 原来的 5.0LTS 升级到 6.0LTS 版本。如果想了解 ZABBIX 新功能,可以转向 6.0 What’s New 了解详情。 我的 ZABBIX 是运行在树莓派 3B+(1G 内存 +64G 存储)上的,能满足我对全家网络设备、服务器以及其他基础设施的监控和管理。其操作系统是 Debian11。 整个升级包含:升级条件判断,备份,升级软件包,验证业务,四个部分。 升级条件判断升级前你需要判断一下你的系统,基础组件,例如 PHP-FPM 版本,数据库版本,是否支持最新版本的 ZABBIX。 如图,以我当前情况下,从 5.0LTS 到 6.0,只要保证 PHP-FPM 版本>7.2 即可。 备份停掉现有的 Zabbix-Server,并备份数据库,备份相关配置文件。 12345service zabbix-server stopmysqldump zabbix >...
RouterOS GREv6 隧道做 OSPF
整体思路是两个 ROS 路由器做 GREv6 隧道,然后通过 OSPF 互宣路由。因为只有一个 OSPF 区域,所以直接放在 Area0 了,在 ROS 里叫 Backbone。 前提条件: 两边 GRE 隧道已经拉起来了。 ROS1:GRE 接口-> gre6-r2 业务接口:br_main ROS2: GRE 接口-> gre6-r1 业务接口:br_main、br_vm 操作步骤: 1、修改 R1 的 RouterID:Routing/OSPF/Instances 2、为 R1 添加 OSPF 接口,把 GRE 接口和业务接口都加进去:Routing/OSPF/Interface注意网络类型是 Broadcast 3、为 R1 添加要宣告的网络:Routing/OSPF/Networks 4、启用 R1 的 Area:Routing/OSPF/Areas 5、R2 需要重复 1-4 5、查看 R1...
RouterOS HE.NET DDNSv6 脚本
RouterOS 的 Cloud 其实是支持 Push IPv6 地址的,会很“智能”的推送默认 IPv6 的前缀地址,但如果网络环境是多线的情况下,这个智能就显得比较鸡肋。所以我们一般把 Cloud 的 IPv6 Support 关掉,找第三方的服务去做 DDNS。 如何干掉 ROS 原生的 DDNSv6 以下脚本可以帮助你将 ROS 某个接口的 IPv6 地址,推送给 HE.NET 的 DDNS 上。这是完全依赖 ROS 命令和 HE.NET 官方接口的,无需借助第三方服务器,安全可靠。 1234567891011121314151617181920212223:global hostname "xxxx.ddns6.16iot.cn":global password "p@ssw0rd2022":global intv6 "pppoe-out":log info ("[ipv6_ddns]" . $intv6 . " is running."):global...
GitLab 迁移和升级小记
记录一下最近做的 GitLab 迁移和升级的事情。 高危操作警告升级及迁移存在风险,若您在操作生产环境,请提前做好升级计划和升级方案,以防升级失败造成服务不可用或数据丢失。 要做什么1、从裸机 CentOS6 GitLab-Omnibus 迁移到 Docker 环境中。2、跨版本升级 GitLab 版本,从 11.x 到 13.x。 准备怎么做根据需求,计划先做同版本迁移,再做跨版本升级。 迁移在新机器上准备一个 Docker 环境,因为是通过 Docker Compose 拉起容器的,所以还需要安装 Docker Compose。 根据 GitLab Docs 中提及的 Install GitLab using Docker Compose 准备好 docker-compose.yml。注意文件中的 image 版本应该和原机器 GitLab 版本保持一致。 以 CE 版本(GitLab 社区版,非极狐版)为例,具体的 Tag 可以在 DockerHub...
openEuler 搭建 SeaTable 小记(1)
众所周知的 Seafile 老用户了,家里的私有云盘一直在使用 Seafile。有时候收集或分享文件时也会直接甩 Seafile 链接,Seafile 可以很好的存储和分享文件。 最近一直再找一个笔记软件(要求是啥都能存),有事没事打算记录点啥东西,试过 Typora,试过 OneNote,试过 MyBase,甚至是为知笔记(私有部署版),总觉得差点什么。 突然发现 Seafile 团队搞的一个新产品叫 SeaTable,按照官方的说法: SeaTable 是一款新型的在线协同表格和信息管理工具。它支持“文件”、“图片”、“单选项”、“协作人”、“计算公式”等丰富的数据类型。它帮助你用表格的形式来方便的组织和管理各类信息,同时又和专门的软件系统一样强大。它还可以按照你的需要进行扩展,实现数据处理的自动化和业务流程的自动化。 咦,这不就是我要找的可以啥都能存的小工具么,好像还能写脚本自动化的搞一些事情。看起来不错哦~ 于是花了点时间上了一台 SeaTable 打算使用一下。CentOS 更新策略变了,是时候选择一个“下一代”的服务器操作系统了,不打算再新装 CentOS7...
解决 Ubuntu 20.04 ROOT 用户无法本地登录的问题
问题描述新装一台 Ubuntu 20.04 系统,改了 root 密码,想用 root 用户登录系统。确定自己已经使用了正确的 root 密码,系统还是提示 Sorry,无法登录。 排查过程使用普通用户登录系统,查 root 用户是否被锁定。 cat /etc/shadow | grep root 如果出现 root:!!$6$CG (注意!!)则说明 root 用户被锁定,不能登陆。若被锁定,则可使用passwd -u root 解除用户锁定。 本环境没有 root 用户并没有被锁定,继续排查。 su 到 root,安装 ssh 服务,开启 root 的远程连接。 SSH 远程登录系统,看一下 journalctl 日志。journalctl -f 本地使用 root 用户登录,看日志是否报错。 发现报错:requirement “user != root” not met by user “root” 原来是 PAM 拦截了 root 用户的登录。 解除 PAM 限制,cd /etc/pam.d/...