【虹科分享】在容器上使用 ntop 工具的最佳实践

许多人使用软件容器来简化应用程序的部署。如你所知,ntop工具也可在docker hub上使用Docker或其他容器管理工具(如Portainer或Kubernetes)快速部署。在使用容器时,有几件事需要注意:

服务的持续性

ntopng依赖于第三方服务,如Redis(必需)和InfluxDB(可选)来运行。为了不在容器重启时丢失信息,你需要持续地存储数据或配置ntopng工具,使其依赖于外部容器上的此类服务,这些容器持久地提供此类服务。

文件系统的持续性

ntopng数据通常存储在/var/lib/ntopng/上,这个目录必须在重新启动时是持续的。你可以用-v把它映射到一个本地目录 “docker run -it -v /var/lib/ntopng/:/var/lib/ntopng/:rw ntop/ntopng:stable -i eth0”

PF_RING

容器中,内核是共享的,因此PF_RING必须在主主机上加载,并由容器访问。请确保PF_RING的版本在主机和容器之间是相同的,否则在启动容器时你会看到如下错误

root@dell:/home/ntop# docker run -it ntop/ntopng:stable -v /etc/ntopng.license:/etc/ntopng.license:ro

Starting redis-server: redis-server.

[PF_RING] Wrong RING version: kernel is 20, libpfring was compiled with 18

 

当内核PF_RING和容器应用程序(使用PF_RING)不是同一版本时。

数据包采集

容器网络接口无法看到主机流量。如果你打算在容器上部署ntop工具并监控主机流量,请考虑在启动容器时使用”-network=host”。

许可证

来自主机的许可证在所有运行的容器中共享(即用一个许可证可以运行 “n “个容器)。为了做到这一点,你需要映射许可证文件,如下 “-v /etc/nprobe.license:/etc/nprobe.license:ro”