告别手忙脚乱!三台主机WireGuard打流,我用Zabbix画出了最真实的性能心电图

在前面测试WireGuard的传输性能时(隐形杀手:0.1%的微小丢包,如何吞噬你的一半带宽?),传输带宽的起伏波动可谓是一场肉眼可见的过山车,着实让人心头一紧。其实,对于WireGuard这种加密隧道,还有一个可能影响传输带宽的因素就是主机性能。
比较直观的方式就是使用TOP命令进行查看,但是打流时iperf进程已经霸占了一个终端,虽然我们可以另起炉灶新开一个TTY来运行top命令,但终归要东张西望地在多个终端间切换,手忙脚乱不说,数据也难以同步对比。
这时,我们之前。
这时,我们之前布下的天罗地网——Zabbix监控系统(Zabbix实战第一步:完成在Ubuntu Server的安装部署),就该大显身手了。正所谓工欲善其事,必先利其器,用Zabbix这把尺子去丈量打流时系统的脉搏(CPU)、体力(内存)和吞吐(网络),我们就能精准评估WireGuard这台性能跑车到底对硬件引擎提出了多高的要求。
首先,我们要在打流的Ubuntu系统中导入Zabbix的GPG密钥和官方存储库,并安装最新版的Zabbix Agent。
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
apt update
apt install -y zabbix-agent

然后,我们修改Zabbix Agent的配置文件/etc/zabbix/zabbix_agentd.conf,设置Zabbix Server的IP地址、端口号等信息。
nano /etc/zabbix/zabbix_agentd.conf
ListenPort=10050
Server=192.168.1.78
ServerActive=192.168.1.78:10051
Hostname=wg22
一般情况下,只需要配置Server参数为Zabbix Server的IP地址或域名即可。此外,还可以调整Zabbix Agent的监听端口,调整之后,服务端侧也要对应调整。如果需要使用Agent主动发送数据的主动监控模式,需要配置ServerActive参数,默认情况下配置的是127.0.0.1,建议配置为Zabbix Server的IP地址或域名保证功能可用。如果主机数量比较多,也建议配置Hostname为希望在Zabbix Server UI中显示的主机名称。其他高级配置,我们就不做过多研究了。
修改之后,保存配置文件并退出,然后重新启动zabbix-agent服务即可。
systemctl restart zabbix-agent
systemctl status zabbix-agent

一般情况下,Zabbix Agent默认是使能了开机自启的,如果没有显示enabled,建议设置为自启动。
systemctl enable zabbix-agent
如果系统开启了UFW防火墙(ufw命令简介),还需要单独放行通过ListenPort设置的Zabbix Agent监听端口,默认为端口10050/tcp。

ufw allow 10050/tcp
ufw reload

接下来,我们就可以回到Zabbix Server的Web界面,继续配置Zabbix Server的监控项了。
首先,在导航栏的【数据采集】模块下,单击【主机】,进入到主机列表页面。

然后,单击页面右上角的【创建主机】按钮。

配置好主机名称、主机群组和接口等关键配置,然后单击【模板】后面的【选择】按钮,进入到模板选择界面。针对Ubuntu主机,我们可以选择Templates/Operating systems下的Linux by Zabbix agent active或Linux by Zabbix agent,区别就是是否启用了Agent主动发送数据的主动监控模式。

最后,单击【添加】按钮完成添加主机,即可开始对新客户端的监控。

此时,我们可以看到这个主机下默认有84个监控项部分监控项数据如下:

可以看到,默认模板中几乎包含了所有常见的监控项,包括我们所需的CPU利用率、内存利用率、网卡速率等信息。
同样的,我们在另外两台主机上也部署好Zabbix Agent。

看到主机的监控项数量不一致无需担心,监控项刷新需要时间,一般等个一分钟左右,支持的监控项就全部刷新出来了。
然后,我们回到仪表盘页面,将这几台主机的CPU、内存和网卡流量的监控项图标都添加上。

这样,我们就得到了一个汇总所有数据的仪表盘,可以通过图形清晰地观察到 CPU、内存和网卡的变化趋势了。

接下来,让我们再次打流测试一下。

这样对比来看,就能看到每台主机在打流过程中的资源使用情况了。不过,现在的采样间隔还是1分钟,不够精确,我们可以将采样间隔调整为5秒,再试一下。

一番调校之后,数据图表顿时眉清目秀起来!我们可以清晰地看到,对比主机作为数据接收端和发送端的负载情况,CPU在解密工作上花费的力气远大于加密。这好比收信人解读密文比写信人加密要更费神一样。内存使用量倒是没什么变化,所以提升CPU性能应该也是一个提升传输带宽加解密性能的关键因素。
与此同时,我发现MobaXterm这个性能监控好像误差还是挺大的,1 Gbps左右的传输带宽,它竟然监控到2200 Mbps,误差足有一倍了。

至此,我们成功给测试环境装上了Zabbix这副火眼金睛。以后再探究性能问题,就如同有了仪表盘的赛车手,一切数据尽在掌握,真正做到洞若观火,了然于胸。同时也请记住,WireGuard接收端解密数据时的CPU消耗要大于发送端加密数据时的CPU消耗,如果有需要,记得提高CPU性能哦!

声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/3980.html

铁军哥的头像铁军哥

相关推荐

关注我们
关注我们
购买服务
购买服务
返回顶部