Zabbix 7.4 自定义Logo 4小时前 评论
Zabbix 7.4 自定义Logo

在 Zabbix 7.0 系列中包含 7.4 版本中,更换 Logo 的推荐方法是通过官方配置文件 brand.conf.php 来实现。它比直接修改SVG源文件更标准、稳定,能同时替换登录页、侧边栏等多个位置的Logo。

Zabbix 7.4 自定义Logo
查看完整文章 评论

1. 简要介绍

在 Zabbix 7.0 系列中包含 7.4 版本中,更换 Logo 的推荐方法是通过官方配置文件 brand.conf.php 来实现。它比直接修改SVG源文件更标准、稳定,能同时替换登录页、侧边栏等多个位置的Logo。

37C05179-95D7-4572-AC53-BC47C50E8771.png

AA4724A3-C275-4FDF-8108-00BA381AF559.png

2. 配置步骤

2.1 准备你的 Logo 文件

将你需要使用的 Logo 图片(如PNG、SVG格式)上传到 Zabbix 服务器的/usr/share/zabbix/ui/assets/img/目录下。确保你有这些文件的访问权限,并记下它们的完整路径(sy1和cb1是我的自定义Logo名称)。

[root@appliance conf]# cd /usr/share/zabbix/ui/assets/img/
[root@appliance img]# ls -l
total 100
-rw-r--r--. 1 root root   930 Dec 17 14:01 apple-touch-icon-120x120-precomposed.png
-rw-r--r--. 1 root root  1126 Dec 17 14:01 apple-touch-icon-152x152-precomposed.png
-rw-r--r--. 1 root root  1343 Dec 17 14:01 apple-touch-icon-180x180-precomposed.png
-rw-r--r--. 1 root root   652 Dec 17 14:01 apple-touch-icon-76x76-precomposed.png
-rw-r--r--. 1 root root 32453 Dec 17 14:01 browser-sprite.png
-rw-r--r--  1 root root 21711 Jan 28 04:47 cb1.png
-rw-r--r--. 1 root root   981 Dec 17 14:01 ms-tile-144x144.png
-rw-r--r--  1 root root 17426 Jan 28 04:47 sy1.png
-rw-r--r--. 1 root root  1334 Dec 17 14:01 touch-icon-192x192.png

2.2 创建并编辑配置文件

要找到配置文件(通常位于Zabbix Web前端的 /conf/ 目录),需先确定其安装路径,并查看当前是由 Nginx 还是 Apache 提供网页服务。

# 查看Nginx是否在运行
systemctl status nginx | grep Activ
# 查看Apache是否在运行(Apache在部分系统上叫httpd)
systemctl status apache2 | grep Active   # 适用于Debian/Ubuntu
systemctl status httpd | grep Active     # 适用于RHEL/CentOS

如果是Nginx(本文使用的Nginx):

配置文件通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/、/etc/nginx/sites-enabled/ 目录下。使用 grep 搜索:

grep -r "root.*zabbix" /etc/nginx/
5BA59063-4A94-47C3-891A-B46C051CA6EE.png

如果是 Apache:

配置文件通常位于 /etc/apache2/sites-enabled/(Debian/Ubuntu)或 /etc/httpd/conf.d/(RHEL/CentOS)。同样使用 grep 搜索:

# Debian/Ubuntu
grep -r "DocumentRoot.*zabbix" /etc/apache2/

# RHEL/CentOS
grep -r "DocumentRoot.*zabbix" /etc/httpd/

找到目录后,请进入该目录,确认其包含以下 Zabbix Web 前端文件结构:

  • index.php (主入口文件)

  • conf/ 目录(内含 zabbix.conf.php 主配置文件)

  • assets/, include/, local/ 等目录

cd /usr/share/zabbix/ui/
7D574B04-43DB-4E96-89E0-83C562306CB1.png

进入/usr/share/zabbix/ui/local/conf 新建 brand.conf.php

touch local/conf/brand.conf.php

复制以下内容:

<?php
return [
    // 登录页面上的Logo
    'BRAND_LOGO' => '/assets/img/sy1.png',
    // 侧边栏展开时显示的Logo
    'BRAND_LOGO_SIDEBAR' => '/assets/img/cb2.png',
    // 侧边栏收起时显示的Logo
    'BRAND_LOGO_SIDEBAR_COMPACT' => '/assets/img/cb1.png',
    // 自定义页脚文本(可选)
    'BRAND_FOOTER' => '© 机房监控平台',
    // 自定义帮助链接(可选)
    'BRAND_HELP_URL' => 'https://baidu.com',
];
2FD8858F-5AE8-4EB3-A46C-E3C5467DAD57.png

注意:

每行'BRAND_LOGO_SIDEBAR' => '这里面的路径就是所在Logo图片的位置,此处基于Web根目录的相对URL路径。'

如果图片不显示可尝试以下步骤:

  • 确定正确的图片访问URL:

  • 在浏览器中尝试 http://IP地址/ui/assets/img/sy1.png 或 http://IP地址/assets/img/sy1.png。

  • 清除浏览器缓存并刷新Zabbix页面。

3. 总结

你可能在网上看到过许多直接修改 icon-sprite.svg 文件的旧教程。这是Zabbix 5.0甚至更早版本普遍采用的方法。自Zabbix 5.0引入 brand.conf.php 机制后,官方推荐使用配置文件的方式,因为它更灵活,能同时管理多个位置的Logo和品牌信息,且在升级时配置文件通常会被保留,而直接修改源文件可能会被覆盖。简单来说,Zabbix 7.4(及7.0)更换Logo的核心就是用 brand.conf.php 配置文件。

USG6000E系列防火墙万兆口切换千兆方法 4小时前 评论
USG6000E系列防火墙万兆口切换千兆方法

USG6000E系列防火墙通过命令行进入接口配置模式后,无法使用speed、negotiate等命令切换光口的协商速率。

USG6000E系列防火墙万兆口切换千兆方法
查看完整文章 评论

1. 问题描述

USG6000E系列防火墙通过命令行进入接口配置模式后,无法使用speed、negotiate等命令切换光口的协商速率。

2. 原因分析

USG6000E系列防火墙在端口速率切换的配置方式上与交换机存在差异,交换机的速率配置逻辑并不适用于防火墙,因此需通过SET命令方式进行配置。

3. 处理步骤

注意:此操作会进行接口重启,请在业务低峰期执行!

3.1 进入系统视图配置接口模式为千兆接口(切换10GE按照相同方式执行即可)

system-view
Enter system view, return user view with Ctrl+Z.
[USG6525E]set device port-config-mode ge
Warning: XGigabitEthernet0/0/0 and XGigabitEthernet0/0/1 will switch to the 1Gbit/s eSFP optical module mode.
This operation may cause the port status to change between Up and Down once. Continue?[Y/N]y
选择Y

3.2 进入系统视图配置接口模式为40GE接口(切换100GE按照相同方式执行即可)

system-view
Enter system view, return user view with Ctrl+Z.
[USG6680E]set device port-config-mode 40g-port enable
Warning: The interface 40GE0/0/2 and 40GE0/0/3 will be available, and XGE0/0/20 ~ XGE0/0/27 will be unavailable.
The original interface and configuration will be lost, and the device will reboot right now. Continue? [Y/N] y
选择Y

Ubuntu启用root用户远程登录 5小时前 评论
Ubuntu启用root用户远程登录

Ubuntu默认情况下不允许使用root用户进行远程登录。

Ubuntu启用root用户远程登录
查看完整文章 评论

1. 问题描述

Ubuntu默认情况下不允许使用root用户进行远程登录。

2. 处理过程

Ubuntu 安装完成之后默认是没有 root 账户登录权限,以普通用户登录系统,创建root用户的密码,输入命令:

sudo passwd root

进入sshd配置文件,输入命令:

vi /etc/ssh/sshd_config

修改sshd配置文件,找到以下内容:

30B20287-D25C-42A2-98D3-3EAD3225A0F8.png

按 i 键进入编辑模式,移动光标至该行,删除行首的 # 号取消注释,然后进行修改。

PermitRootLogin yes
A3095013-B39F-4D29-9CFC-AFFE55457F59.png

按 ESC 键返回普通模式,接着输入 :wq 并回车,即可保存文件并退出编辑器。

AA2BFD3A-3560-4D91-9585-189713183EF2.png

重启ssh服务

Systemctl restart ssh

Ubuntu22.04网卡配置静态IP地址 5小时前 评论
Ubuntu22.04网卡配置静态IP地址

查看所有网卡详细信息

Ubuntu22.04网卡配置静态IP地址
查看完整文章 评论

1. 查看网卡名称

ip addr #查看所有网卡详细信息

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000

    link/ether 00:0c:29:3b:15:79 brd ff:ff:ff:ff:ff:ff

    altname enp3s0

    inet 192.168.1.100/24 metric 100 brd 192.168.1.255 scope global dynamic ens160

       valid_lft 46974sec preferred_lft 46974sec

    inet6 fe80::20c:29ff:fe3b:1579/64 scope link

       valid_lft forever preferred_lft forever

2. 进入网卡配置文件

#进入网卡配置文件,50-cloud-init.yaml根据实际情况修改
sudo nano /etc/netplan/50-cloud-init.yaml 

3. 配置网卡静态地址

#以下所有内容均要配置,配置时注意格式否则会报错

network:

  version: 2

  renderer: networkd

  ethernets:

    ens160:

      dhcp4: no

      addresses: [192.168.1.100/24]

      routes:

        - to: 0.0.0.0/0

          via: 192.168.1.254

      nameservers:

        addresses: [8.8.8.8, 8.8.4.4]

4. 应用配置

sudo netplan apply  #应用最新网卡配置文件

5. 重启网卡

systemctl restart network #务必执行此命令,否则配置不生效

MUX VLAN配置案例 18小时前 评论
MUX VLAN配置案例

MUX VLAN(Multiplex VLAN,多路复用VLAN)就像是一个聪明的"分群大师",它能让你用最少的VLAN资源实现精细的访问控制。它就是个“权限分类器”,用1个主VLAN圈定公共资源(比如服务器),再划分子VLAN控制谁能互通、谁该隔离

MUX VLAN配置案例
查看完整文章 评论

1. MUX VLAN是什么

MUX VLAN(Multiplex VLAN,多路复用VLAN)就像是一个聪明的"分群大师",它能让你用最少的VLAN资源实现精细的访问控制。它就是个“权限分类器”,用1个主VLAN圈定公共资源(比如服务器),再划分子VLAN控制谁能互通、谁该隔离,最终实现:

  • 该通的(比如同事传文件)随便通

  • 该断的(比如外包/访客互访)彻底断

  • 公共资源(比如打印机/云盘)全员共享

VLAN类型

接口类型

通信方式

绑定要求

技术实现

主VLAN

主端口

- 允许与所有从VLAN(隔离型/互通型端口)通信

- 默认承载核心资源(服务器/网关)

- 配置为默认广播域

- 建议启用广播风暴抑制

隔离型从VLAN

隔离端口

- 仅允许与主端口通信

- 无法与其他隔离型/互通型端口交互(隔离型组内禁止互访需要手动开启端口隔离)

必须绑定一个主VLAN

- 启用端口隔离

- MAC地址表限制仅指向主端口

互通型从VLAN

组端口

- 允许同组内互通

- 可访问主端口

- 禁止跨组通信

必须绑定一个主VLAN

- 组内启用标准转发

- 跨组流量通过VLAN映射策略拦截

2. 案例背景

某中型公司搬新办公楼时,被网络需求搞到崩溃:

  • 研发部:30人需高频互传代码/测试包(部门内完全互通)

  • 外包团队:50人只能提交代码到Git,禁止互相访问(防代码泄露)

  • 全公司:200+人共用云盘(公共资源开放)

按传统套路操作:

  • 给每个外包人员单独开VLAN → 瞬间用掉50个VLAN号

  • 研发部单独划1个VLAN → 配置部门内互通策略

  • 在核心交换机写80条ACL规则 → 控制外包访问权限

最后的结果:

  • VLAN号超标(公司总配额仅300个,光外包就占1/6)

  • 某次ACL配置失误,导致外包能互访业务

  • 每次新人入职都要手动改交换机

3. 如何应用

主VLAN(VLAN 10):

  • 只放云盘、Git服务器(公共资源专属区)

  • 全员(研发+外包)都能访问

互通型从VLAN(VLAN 101):

  • 绑定研发部所有设备

  • 部门内随便传数据,像内部聊天群

隔离型从VLAN(VLAN 103):

  • 所有外包人员的设备强制归类到此

  • 每人独立“单间”,只能和主VLAN的Git服务器通信

实际效果:

  • VLAN号从51个暴减到3个(直接释放48个配额)

  • 交换机配置从300+行缩到15行(删光所有ACL规则)

4. 配置步骤

4.1 拓扑图

A877DC2A-C512-4FDE-B2CA-FAC87C423961.png

4.2 Core 配置

创建VLAN10、101、103,并配置VLAN10的VLANIF接口,该IP地址是研发、外包、服务器的网关IP。

[Core]vlan batch 10 101 103
[Core]interface Vlanif 10
[Core-Vlanif10]ip address 192.168.1.254 24
[Core-Vlanif10]quit

配置MUX VLAN中的互通型VLAN101和隔离型VLAN103。

[Core]vlan 10
[Core-vlan10]mux-vlan
[Core-vlan10]subordinate separate 103        
[Core-vlan10]subordinate group 101
[Core-Vlan10]quit

配置接口加入VLAN并使能MUX VLAN功能。

[Core]interface  GE 1/0/1
[Core-GE1/0/1]port link-type trunk 
[Core-GE1/0/1]port trunk allow-pass vlan 101
[Core-GE1/0/1]port mux-vlan enable vlan 101
[Core-GE1/0/1]quit
[Core]interface  GE 1/0/2
[Core-GE1/0/2]port link-type trunk 
[Core-GE1/0/2]port trunk allow-pass vlan 101
[Core-GE1/0/2]port mux-vlan enable vlan 101
[Core-GE1/0/2]quit
[Core]interface  GE 1/0/3
[Core-GE1/0/3]port link-type trunk 
[Core-GE1/0/3]port trunk allow-pass vlan 103
[Core-GE1/0/3]port mux-vlan enable vlan 103
[Core-GE1/0/3]quit
[Core]interface  GE 1/0/4
[Core-GE1/0/4]port link-type access 
[Core-GE1/0/4]port default vlan 10
[Core-GE1/0/4]port mux-vlan enable vlan 10
[Core-GE1/0/4]quit
[Core]interface  GE 1/0/5
[Core-GE1/0/5]port link-type trunk 
[Core-GE1/0/5]port trunk allow-pass vlan 103
[Core-GE1/0/5]port mux-vlan enable vlan 103
[Core-GE1/0/5]quit

4.3 JRswitch1 配置

[JRswitch1]interface GE 1/0/1
[JRswitch1-GE1/0/1]port link-type trunk
[JRswitch1-GE1/0/1]undo port trunk allow-pass vlan 1
[JRswitch1-GE1/0/1]port trunk allow-pass vlan 101
[JRswitch1-GE1/0/1]quit
[JRswitch1]interface GE 1/0/2
[JRswitch1-GE1/0/2]port link-type access
[JRswitch1-GE1/0/2]port default vlan 101
[JRswitch1-GE1/0/2]quit
[JRswitch1]interface GE 1/0/3
[JRswitch1-GE1/0/3]port link-type access
[JRswitch1-GE1/0/3]port default vlan 101
[JRswitch1-GE1/0/3]quit

4.4 JRswitch2 配置

[JRswitch2]interface GE 1/0/1
[JRswitch2-GE1/0/1]port link-type trunk
[JRswitch2-GE1/0/1]undo port trunk allow-pass vlan 1
[JRswitch2-GE1/0/1]port trunk allow-pass vlan 101
[JRswitch2-GE1/0/1]quit
[JRswitch2]interface GE 1/0/2
[JRswitch2-GE1/0/2]port link-type access
[JRswitch2-GE1/0/2]port default vlan 101
[JRswitch2-GE1/0/2]quit

4.5 JRswitch3 配置

[JRswitch3]interface GE 1/0/1
[JRswitch3-GE1/0/1]port link-type trunk
[JRswitch3-GE1/0/1]undo port trunk allow-pass vlan 1
[JRswitch3-GE1/0/1]port trunk allow-pass vlan 103
[JRswitch3-GE1/0/1]quit
[JRswitch3]interface GE 1/0/2
[JRswitch3-GE1/0/2]port link-type access
[JRswitch3-GE1/0/2]port default vlan 103
[JRswitch3-GE1/0/2]quit

4.6 JRswitch4 配置

[JRswitch4]interface GE 1/0/1
[JRswitch4-GE1/0/1]port link-type trunk
[JRswitch4-GE1/0/1]undo port trunk allow-pass vlan 1
[JRswitch4-GE1/0/1]port trunk allow-pass vlan 103
[JRswitch4-GE1/0/1]quit
[JRswitch4]interface GE 1/0/2
[JRswitch4-GE1/0/2]port link-type access
[JRswitch4-GE1/0/2]port default vlan 103
[JRswitch4-GE1/0/2]quit

4.7 验证测试

研发区PC1/PC2/PC3都可互访

PC1> ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=10.2 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=7.09 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=10.7 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=11.3 ms
--- 192.168.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 7.087/9.813/11.269/1.616 ms

PC1> ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=9 ttl=64 time=59.4 ms
64 bytes from 192.168.1.3: icmp_seq=10 ttl=64 time=18.2 ms
64 bytes from 192.168.1.3: icmp_seq=11 ttl=64 time=30.3 ms
64 bytes from 192.168.1.3: icmp_seq=12 ttl=64 time=22.4 ms
--- 192.168.1.3 ping statistics ---
12 packets transmitted, 4 received, 66.6667% packet loss, time 11233ms
rtt min/avg/max/mdev = 18.171/32.576/59.419/16.096 ms

研发区PC1/PC2/PC3无法访问外包区PC5/PC6

P1> ping 192.168.1.4
PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data.
From 192.168.1.1 icmp_seq=1 Destination Host Unreachable
From 192.168.1.1 icmp_seq=2 Destination Host Unreachable
From 192.168.1.1 icmp_seq=3 Destination Host Unreachable
From 192.168.1.1 icmp_seq=4 Destination Host Unreachable
From 192.168.1.1 icmp_seq=5 Destination Host Unreachable
From 192.168.1.1 icmp_seq=6 Destination Host Unreachable
--- 192.168.1.4 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6154ms
pipe 4

PC1> ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
From 192.168.1.1 icmp_seq=1 Destination Host Unreachable
From 192.168.1.1 icmp_seq=2 Destination Host Unreachable
From 192.168.1.1 icmp_seq=3 Destination Host Unreachable
From 192.168.1.1 icmp_seq=4 Destination Host Unreachable
From 192.168.1.1 icmp_seq=5 Destination Host Unreachable
From 192.168.1.1 icmp_seq=6 Destination Host Unreachable
--- 192.168.1.5 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6145ms
pipe 3

外包区PC5/PC6无法互访

PC5> ping 192.168.1.5
PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data.
From 192.168.1.4 icmp_seq=1 Destination Host Unreachable
From 192.168.1.4 icmp_seq=2 Destination Host Unreachable
From 192.168.1.4 icmp_seq=3 Destination Host Unreachable
From 192.168.1.4 icmp_seq=4 Destination Host Unreachable
From 192.168.1.4 icmp_seq=5 Destination Host Unreachable
From 192.168.1.4 icmp_seq=6 Destination Host Unreachable
From 192.168.1.4 icmp_seq=7 Destination Host Unreachable
--- 192.168.1.5 ping statistics ---
7 packets transmitted, 0 received, +7 errors, 100% packet loss, time 6149ms
pipe 4

研发区与外包区均可访问服务器

PC4> ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=38.1 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=20.8 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=64 time=12.5 ms
64 bytes from 192.168.1.10: icmp_seq=4 ttl=64 time=13.3 ms
64 bytes from 192.168.1.10: icmp_seq=5 ttl=64 time=18.6 ms
--- 192.168.1.10 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 12.471/20.654/38.074/9.257 ms

PC1> ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=38.1 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=20.8 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=12.5 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=13.3 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=18.6 ms
--- 192.168.1.10 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4016ms
rtt min/avg/max/mdev = 12.471/20.654/38.074/9.287 ms

5. MUX VLAN注意项

分类

注意项

适用对象

处理建议

VLAN复用冲突

主VLAN不可用于Super-VLAN/Sub-VLAN架构

主VLAN

规划时独立分配VLAN ID

从VLAN(组/隔离型)不可创建VLANIF接口

群组VLAN、隔离VLAN

三层通信需通过主VLAN网关

接口功能冲突

同一接口禁止同时启用MUX VLAN与端口安全/MAC认证/802.1X

所有MUX VLAN接口

优先保留MUX VLAN功能

启用MUX VLAN的接口禁止配置VLAN映射/堆叠

所有MUX VLAN接口

检查现有配置,移除冲突功能

地址与流量控制

静态MAC表项禁止指向MUX VLAN

所有MUX VLAN

清理冲突的静态MAC表

关闭MAC学习或限制学习数量会导致功能异常

所有MUX VLAN接口

保持默认MAC学习模式

DHCP兼容性

若DHCP Server在从VLAN侧,主VLAN侧Client无法获取IP

主VLAN、从VLAN

强制Server部署在主VLAN侧