Ruční přidání uzlu do topologie Skydive pomocí klienta Skydive

Skydive je open source síťová topologie a analyzátor protokolů v reálném čase. Jeho cílem je poskytnout komplexní způsob, jak porozumět tomu, co se děje v síťové infrastruktuře.

Aby vás to zaujalo, dám vám pár screenshotů o Skydive. Níže bude příspěvek o úvodu do Skydive.

Ruční přidání uzlu do topologie Skydive pomocí klienta Skydive

Ruční přidání uzlu do topologie Skydive pomocí klienta Skydive

Pošta "Úvod do skydive.network» na Habré.

Skydive zobrazuje topologii sítě přijímáním síťových událostí od agentů Skydive. Přemýšleli jste někdy o tom, jak přidat nebo zobrazit v topologickém diagramu síťové komponenty, které jsou mimo síť agentů Skydive nebo nesíťové objekty, jako je TOR, úložiště dat atd. Díky API pro pravidlo uzlů se o to již nemusíte starat.

Od verze 0.20 poskytuje Skydive rozhraní API pro pravidlo uzlů, které lze použít k vytváření nových uzlů a hran a k aktualizaci metadat stávajících uzlů. Rozhraní API pro pravidlo uzlů se dělí na dvě rozhraní API: rozhraní API pro pravidlo uzlů a rozhraní API pro pravidlo okrajů. Rozhraní API pro pravidlo uzlu se používá k vytvoření nového uzlu a aktualizaci metadat existujícího uzlu. Hranové pravidlo API slouží k vytvoření hranice mezi dvěma uzly, tzn. spojuje dva uzly.

V tomto blogu uvidíme dva případy použití, z nichž jeden je síťová komponenta, která není součástí sítě skydive. Druhou možností je nesíťová komponenta. Předtím se podíváme na některé základní způsoby použití API pravidel topologie.

Vytvoření uzlu Skydive

Chcete-li vytvořit uzel, musíte zadat jedinečný název uzlu a platný typ uzlu. Můžete také poskytnout některé další možnosti.

skydive client node-rule create --action="create" --node-name="node1" --node-type="fabric" --name="node rule1"
{
  "UUID": "ea21c30f-cfaa-4f2d-693d-95159acb71ed",
  "Name": "node rule1",
  "Description": "",
  "Metadata": {
    "Name": "node1",
    "Type": "fabric"
  },
  "Action": "create",
  "Query": ""
}

Aktualizujte metadata uzlů Skydive

Chcete-li aktualizovat metadata existujícího uzlu, musíte zadat dotaz gremlin pro výběr uzlů, na kterých chcete aktualizovat metadata. Podle vašeho požadavku můžete aktualizovat metadata jednoho nebo více uzlů pomocí pravidla pro jeden uzel.

skydive client node-rule create --action="update" --name="update rule" --query="G.V().Has('Name', 'node1')" --metadata="key1=val1, key2=val2"
{
  "UUID": "3e6c0e15-a863-4583-6345-715053ac47ce",
  "Name": "update rule",
  "Description": "",
  "Metadata": {
    "key1": "val1",
    "key2": "val2"
  },
  "Action": "update",
  "Query": "G.V().Has('Name', 'node1')"
}

Vytvoření Skydive Edge

Chcete-li vytvořit hranu, musíte zadat zdrojový a cílový uzel a typ vazby hrany; pro vytvoření podřízeného uzlu musí být hodnotou typu vazby vlastnictví; podobně pro vytvoření typu vazby vrstva2 musí být hodnota typu vazby vrstva2. Mezi dvěma uzly můžete vytvořit více než jednu vazbu, ale typ vazby se musí lišit.

skydive client edge-rule create --name="edge" --src="G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')" --dst="G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')" --relationtype="both"
{
  "UUID": "50fec124-c6d0-40c7-42a3-2ed8d5fbd410",
  "Name": "edge",
  "Description": "",
  "Src": "G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')",
  "Dst": "G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')",
  "Metadata": {
    "RelationType": "both"
  }
}

První případ použití

V tomto případě se podíváme na to, jak zobrazit nesíťové zařízení v topologii skydive. Uvažujme, že máme datový sklad, který je třeba zobrazit v diagramu topologie skydive s některými užitečnými metadaty.

Potřebujeme pouze vytvořit pravidlo uzlu pro přidání zařízení do topologie. Můžeme přidat metadata zařízení jako součást příkazu create nebo později vytvořit jeden nebo více příkazů pravidla aktualizace uzlu.

Spuštěním následujícího příkazu pravidla hostitele přidejte úložné zařízení do diagramu topologie.

skydive client node-rule create --action="create" --node-name="sda" --node-type="persistentvolume" --metadata="DEVNAME=/dev/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727"

Spusťte příkaz pod pravidlem hrany a přidružte vytvořený uzel k hostitelskému uzlu.

skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"

Po výše uvedených příkazech nyní můžete vidět zařízení viditelné v diagramu topologie seskoku s danými metadaty, jak je znázorněno na obrázku níže.

Ruční přidání uzlu do topologie Skydive pomocí klienta Skydive

Druhý případ použití

V tomto případě uvidíme, jak přidat síťové zařízení, které není součástí sítě skydive. Podívejme se na tento příklad. Máme dva skydive agenty běžící na dvou různých hostitelích, k propojení těchto dvou hostitelů potřebujeme přepínač TOR. I když toho můžeme dosáhnout definováním uzlů a vazeb struktury v konfiguračním souboru, podívejme se, jak můžeme udělat totéž pomocí API pro pravidla topologie.

Bez přepínače TOR se dva agenti objeví jako dva různé uzly bez jakýchkoli odkazů, jak je znázorněno na obrázku níže.

Ruční přidání uzlu do topologie Skydive pomocí klienta Skydive

Nyní spusťte následující příkazy pravidel hostitele a vytvořte přepínač a porty TOR.

skydive client node-rule create --node-name="TOR" --node-type="fabric" --action="create"
skydive client node-rule create --node-name="port1" --node-type="port" --action="create"
skydive client node-rule create --node-name="port2" --node-type="port" --action="create"

Jak můžete vidět, přepínač TOR a porty byly vytvořeny a přidány do topologie skydive a topologie nyní bude vypadat jako na obrázku níže.

Ruční přidání uzlu do topologie Skydive pomocí klienta Skydive

Nyní spusťte následující příkazy Edge Rule k vytvoření spojení mezi přepínačem TOR, portem 1 a veřejným rozhraním hostitele 1.

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"

Spuštěním následujících příkazů vytvořte propojení mezi portem 2 přepínače TOR a veřejným rozhraním hostitele 2

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"

Mezi přepínačem TOR a portem se nyní vytváří přidružení vlastnictví a vrstvy2, stejně jako přidružení vrstvy2 mezi agenty a porty. Nyní bude konečná topologie vypadat jako na obrázku níže.

Ruční přidání uzlu do topologie Skydive pomocí klienta Skydive

Nyní jsou dva hostitelé/agenti správně připojeni a můžete otestovat připojení nebo vytvořit zachycení nejkratší cesty mezi dvěma hostiteli.

PS Odkaz na původní příspěvek

Hledáme lidi, kteří by mohli psát příspěvky o dalších funkcích Skydive.
Telegramový chat přes skydive.network.

Zdroj: www.habr.com

Přidat komentář