Monitorování síťové komunikace s ntopng ve Fedoře 31
Jak spustit ntopng v kontejneru pod Fedorou 31 pro monitorování lokálního síťového rozhraní s použitím docker-compose.
1) Instalace Dockeru na Fedorě 31
Instalace balíčků:
$ sudo dnf install docker docker-compose
Konfigurace systemd aby používalo cgroups v1 namísto v2 (protože Docker v2 zatím nepodporuje [Březen 2020]):
$ sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
$ sudo reboot
Spuštění docker démona:
$ sudo systemctl start docker
(Volitelné) Pokud chcete aby se docker démon spouštěl automaticky:
$ sudo systemctl enable docker
2) Připrava docker-compose.yml
Vytvořte soubor “docker-compose.yml” s tímto obsahem:
version: '3'
services:
ntopng:
image: vimagick/ntopng
command: --community -d /var/lib/ntopng -i wlp3s0 -r 127.0.0.1:6379@0 -w 0.0.0.0:3000
volumes:
- ./data/ntopng:/var/lib/ntopng:z
network_mode: host
restart: unless-stopped
redis:
image: redis:alpine
command: --save 900 1
ports:
- "6379:6379"
volumes:
- ./data/redis:/data:z
restart: unless-stopped
Důležité:
- Nastavte správné síťové rozhraní, které chcete monitorovat. Já mám nastaveno “wlp3s0” (parametr “-i” v “command:” pro ntopng container).
- Všimněte si suffixu “:z” pro mapování oddílů – ten se postará o to, že namapované lokální adresáře budou mít správný SELinux kontext.
3) Vytvoření adresářů
Adresáře, které se namapují do kontejneru a zajistí persistentní uložení dat mezi spuštěními.
$ mkdir -m 777 -p data/{ntopng,redis}
4) Spuštění ntopng
$ sudo docker-compose up -d
Tento příkaz se postará o spuštění obou dvou nakonfigurovaných kontejnerů (ntopng a redis).
5) Webové rozhraní ntopng
Webové rozhraní ntopng bude dostupné na: http://127.0.0.1:3000
Při prvním přihlášení budete muset použít výchozí uživatelské jméno a heslo (bude uvedeno přímo na přihlašovací stránce) a následně budete vyzvání ke změně hesla.
Ve webovém rozhraní pak můžete sledovat aktivní toky:
Nebo upozornění:
X) Tipy pro debugování kontejnerů
Seznam běžících kontejnerů:
$ sudo docker ps
Logy z konkrétního kontejneru:
$ sudo docker logs -f CONTAINER_ID
Zastavení všech běžících kontejnerů:
$ sudo docker stop $(sudo docker ps -a -q)
Zastavení kontejnerů spuštěných v rámci docker-compose:
$ sudo docker-compose stop