需要关注一下,才可以观看。
灵感来源于:我想知道并且查看用户登陆交换机进行了哪些操作而已。比如我想知道你登陆了交换机做了什么配置,删除还是增加配置等等全部的操作命令。再比如别的同事登陆了交换机不知道做了什么配置,把网络搞出问题来了,你也不知道他操作了什么,所以有了这个方法你就可以快速知道了,然后解决问题。
最简单快捷的命令就是 display history-command all-users 所以你没有其他要求的话就不用往后面看了。

操作环境,如图所示。因为我办公室只有一根网线到弱电井的交换机,所以拿来接路由器了,当然你也可以直接加个傻瓜交换机然后分别再接电脑和无线路由器。其次如果你的办公室当中有多个网口到弱电井的交换机的话,也是可以的,原理一样的。因为我这里的服务器是接在办公室的无线路
由下的,所以操作的话,需要在无线路由器进行二层的端口映射才可以,虽然有点难度,但是非常具有挑战性。

这是我Zabbix的服务器版本,虚拟机创建的。


因为我这里的环境有限,所以说只能通过虚拟机创建zabbix的服务器了。当然如果你能够直接用物理机来安装那就是最好的了。Zabbix服务器开启SSH远程登陆,这样你用软件SSH远程操作就行了的,再者这样可以直接复制粘贴命令行

办公室的路由器进行端口映射,交换机的Syslog 协议的默认端口是 UDP 514。


交换机的日志配置和交换机的型号信息。

info-center source default channel 4 log level informational
info-center loghost source Vlanif254
info-center loghost 172.18.27.18 这个IP地址是你zabbix服务器的IP地址。
info-center timestamp log format-date
全部命令解读:
把交换机所有模块的、常规级别以上的日志,都通过 "发送到日志服务器" 的通道发出去。
发送日志时,我用管理 VLAN(Vlanif254)的 IP 地址作为 "发件人地址",这样日志服务器能知道是那个交换机发的。
把日志发给 IP 地址为 172.18.27.18 的服务器
设置交换机日志的时间戳格式。( 后面有说明!!! )
注意: 华为交换机最多支持配置 8 个不同的 Loghost 可以同时向多个服务器发送日志 。 添加另外一个服务器的话就再填写那个服务器的IP地址就行了的。所以如果你原本的交换机上有配置了的话,你直接添加上去你的服务器的IP地址就行了,不用删除别人配置的。

Zabbix服务器安装 网络工具包
yum install -y net-tools nmap-ncat tcpdump nc --version #验证安装成功

代码的话,你们直接复制粘贴的话可能是会报错的,因为格式不一样的。所以你复制或者是截图给AI让他给你生成就可以直接复制使用了的。
1 创建rsyslog配置文件
cat > /etc/rsyslog.d/huawei_switch.conf << EOF
module(load="imudp")
input(type="imudp" port="514")
if \$fromhost-ip startswith "172.18.254." then {
/var/log/zabbix/huawei_switches.log
stop
}
EOF
2 创建日志目录并设置权限
mkdir -p /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix
4 重启rsyslog服务
systemctl restart rsyslog
Zabbix服务器查看交换机的日志信息 tail -f /var/log/zabbix/huawei_switches.log
测试/验证
登陆交换机

zabbix服务器上查看到日志信息。

在交换机上随意操作,比如创建VLAN,修改端口VLAN,保存配置,等操作,在zabbix服务器上都是可以看得清清楚楚的。基本上你干了什么都是有痕迹的。
我在交换机上的操作
1

2

Zabbix服务器上查看日志就知道用户干了什么操作。
如图所示



退出的话,就是按ctrl和c就可以退出日志查看了

因此测试验证全部通过,你可以直接知道用户对交换机进行了那些操作了。
再者你也可以通过这条命令直接知道用户在交换机上干了什么。这个是最简单方便的了。
dis history-command all-users

在网络运维当中的话,基本上网络规模稍微大一点的都是有日志服务器的,当然这也是非常有必要的。用来日志审计或者是其他用途。
补充一下,有没有发现前面的交换机的日志信息的时间是不对的?所以还要再加一条命令才可以完美。 info-center timestamp log format-date

May 25 17:40:21 Zabbix 服务器写入日志的本地时间 May=五月
2026-5-25 09:40:21 交换机发送的原始 Syslog 时间戳(UTC 时间)

原因如图所示

再挣扎一下
vi /etc/rsyslog.d/huawei_switch.conf

代码如下:
1. 加载UDP模块,监听514端口,声明收到的日志是UTC时间
module(load="imudp")
input(type="imudp" port="514" TimeZone="UTC")
2. 定义输出模板,格式:【转换后的北京时间】 【设备IP】 【日志内容】
template(name="SW_BEIJING_LOG" type="string"
string="%timegenerated% %fromhost-ip% %msg%\n"
)
3. 匹配你的交换机网段,按模板写入日志文件
if $fromhost-ip startswith "172.18.254." then {
action(
type="omfile"
file="/var/log/zabbix/huawei_switches.log"
template="SW_BEIJING_LOG"
)
stop
}
如果你的交换机的管理网段不是172.18.254.0/24的话,那么你就改代码当中的#3里面的IP地址就行了的。
重启 rsyslog服务 systemctl restart rsyslog
清空历史日志,只看新的 echo "" > /var/log/zabbix/huawei_switches.log
服务器查看日志:
tail -f /var/log/zabbix/huawei_switches.log

交换机上的时间跟服务器上的日志时间是一致的,所以只能达到这种的效果了。但是这里的日志的日期是交换机上的,所以如果你的交换机的日期不对的话,所以日志的日期也会跟着不对的。所以要配置NTP时间同步才可以。介意的话你就用前面的方法就行了,不用改了。可以看到交换机上的时间和zabbix服务器写入交换机的日志的时间。

最后你如果成功了的话, 你别着急全部配置上你管理的所有交换机,你要考虑到你的服务器的硬盘的容量才可以的,如果你也是像我一样用虚拟机的话,给的硬盘容量最好 是大一些。