概述
在使用zabbix-proxy进行网络监控时,需要使用到局域网地址。
步骤
一、创建网络
使用以下命令创建一个docker macvlan的网络
docker network create -d macvlan \
--subnet=10.137.121.0/24 \
--gateway=10.137.121.254 \
--ip-range=10.137.121.0/24 \
-o parent=enp2s0 macnet
释义:
二、创建容器
使用以下命令创建一个zabbix-proxy的容器,和正常创建容器的区别在于,增加了—network 及 –ip 选项,—network用于指定上面创建的网络,—ip用于设置容器的ip地址。
docker run --name zabbix-proxy -t \
-e ZBX_HOSTNAME="zabbix-proxy-01" \
-e ZBX_TIMEOUT=30 \
-e ZBX_PROXYMODE=0 \
-e ZBX_CACHESIZE=500M \
-e ZBX_SERVER_HOST=10.137.121.250 \
-e TZ="Asia/Shanghai" \
-p 10051:10051 \
--network macnet \
--ip=10.137.121.249 \
--restart=always \
-d zabbix/zabbix-proxy-sqlite3
三、解决容器和宿主的通信问题
完成第二步后,已经可以和局域网内部主机进行通信了。但是和宿主机无法通信
# 添加一个虚拟接口桥接到物理网卡
ip link add macvlan-proxy link enp2s0 type macvlan mode bridge
# 给虚拟接口配置ip
ip addr add 10.137.121.248/32 dev macvlan-proxy
# 启用虚拟接口
ip link set macvlan-proxy up
# 添加到容器网络的静态路由规则
ip route add 10.137.121.249/32 dev macvlan-proxy
执行完以上命令后,即可进行通信了。
可能通过以下命令查看是否执行成功。
使用 ifconfig 查看是否有 macvlan-proxy 的网卡出现。
使用 route -n 查看是否有相关路由出 10.137.121.249 0.0.0.0 255.255.255.255 UH 0 0 0 macvlan-proxy
使用 ping 直接测试
四、解决重启后,路由网卡失效问题。
目前解决方法是把命令添加至rc.local文件里面,开机自动执行。rc.local源文件需要添加执行权限。路径为/etc/rc.d/rc.local。
借鉴资料
https://blog.csdn.net/qq_34777982/article/details/130736402
评论区