Skydive â avatud lĂ€htekoodiga reaalaja vĂ”rgu- ja protokollianalĂŒsaator. See on suunatud sellele, et pakkuda ammendavat viisi mĂ”ista, mis toimub vĂ”rgu-infrastruktuuris.
Teie huvi Àratamiseks toon vÀlja mÔned ekraanipildid Skydive'ist. Allpool on postitus Skydive'i tutvustamiseks.


Postitus ââ Habr's.
Skydive kuvab vĂ”rgu topoloogiat, saades vĂ”rgu sĂŒndmusi Skydive'i agentidelt. Kas olete kunagi mĂ”elnud, kuidas lisada vĂ”i kuvada topoloogia diagrammil vĂ”rgu komponente, mis asuvad vĂ€ljaspool Skydive'i agendi vĂ”rku, vĂ”i mitte-vĂ”rgu objekte, nagu TOR, andmemĂ€lu jne? Te ei pea enam muretsema, tĂ€nu Node rule API-le.
Alates versioonist 0.20 pakub Skydive Node rule API-d, mida saab kasutada uute sÔlmede ja servade loomiseks ning olemasolevate sÔlmede metaandmete uuendamiseks. Node rule API on jagatud kaheks API-ks: sÔlme reegli API ja serva reegli API. SÔlme reegli API-d kasutatakse uue sÔlme loomiseks ja olemasoleva sÔlme metaandmete uuendamiseks. Serva reegli API kasutatakse piiri loomiseks kahe sÔlme vahel, st seob kaks sÔlme.
Selles blogis vaatleme kahte kasutusjuhtumit, millest ĂŒks on vĂ”rgu komponent, mis ei kuulu Skydive'i vĂ”rku. Teine variant on mitte-vervĂ”rk komponent. Enne seda kĂ€sitleme mĂ”ningaid pĂ”hiviise topoloogia reeglite API kasutamiseks.
Skydive'i sÔlme loomine
SĂ”lme loomiseks tuleb mÀÀrata unikaalne sĂ”lme nimi ja lubatud sĂ”lme tĂŒĂŒp. Samuti vĂ”ite anda mĂ”ned tĂ€iendavad parameetrid.
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": ""
}Skydive'i sÔlmede metaandmete uuendamine
Kuna olemasoleva sĂ”lme metaandmeid uuendada, tuleb esitada gremlini keeles pĂ€ring, et valida sĂ”lmed, mille metaandmeid soovite uuendada. Teie pĂ€ringu alusel saate ĂŒhte vĂ”i mitut sĂ”lme metaandmeid uuendada ĂŒhe sĂ”lme reegli abil.
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')"
}Skydive serva loomine
Serva loomiseks tuleb mÀÀrata algus- ja lĂ”pp-sĂ”lmed ning serva seose tĂŒĂŒp. Lapse sĂ”lme loomiseks peab seose tĂŒĂŒp olema ownership, samal moel, kui loote layer2 tĂŒĂŒpi seose, peab seose tĂŒĂŒp olema layer2. Saate luua kahe sĂ”lme vahel rohkem kui ĂŒhe seose, kuid seose tĂŒĂŒp peab olema erinev.
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"
}
}Esimene kasutusnÀide
Sel juhul kÀsitleme, kuidas nÀidata mitteversioonilist seadmeid skydive'i topoloogias. Vaatame, et meil on andmesalvestus, mis peab olema esitatud skydive'i topoloogilises diagrammis koos kasulike metaandmetega.
Me peame lihtsalt looma sĂ”lme reegli, et lisada seade topoloogiasse. Saame seadme metaandmed lisada kas create kĂ€su osana vĂ”i hiljem luua ĂŒhe vĂ”i mitu update node rule kĂ€sku.
KÀivitage allolev sÔlme reegli kÀsk, et lisada salvestusseade topoloogia skeemi.
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"KÀivitage allolev serva reegli kÀsk, et siduda loodud sÔlm hostisÔlmiga.
skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"PĂ€rast ĂŒlaltoodud kĂ€ske saate nĂŒĂŒd nĂ€ha seadet, mis on nĂ€htav skydive'i topoloogias, koos mÀÀratud metaandmetega, nagu on nĂ€idatud alloleval joonisel.

Teine kasutusviis
Selles nĂ€ites nĂ€eme, kuidas lisada vĂ”rgu seade, mis ei kuulu skydive'i vĂ”rgusse. Vaatame seda nĂ€idet. Meil on kaks skydive agenti, mis töötavad kahe erineva hosti peal, ja nende kahe hosti ĂŒhendamiseks on meil vaja TOR lĂŒlitit. Isegi kui saame selle saavutada, mÀÀrates struktuuri ja linkide sĂ”lmed konfiguratsioonifailis, vaatame, kuidas me saame sama teha, kasutades topoloogia API reegleid.
Ilma TOR lĂŒlitita nĂ€evad kaks agenti vĂ€lja nagu kaks erinevat sĂ”lme ilma ĂŒhegi lingita, nagu on nĂ€idatud alloleval joonisel.

NĂŒĂŒd kĂ€ivitage jĂ€rgmised sĂ”lme reegli kĂ€sud, et luua TOR lĂŒliti ja port.
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"Nagu nĂ€ete, on TOR lĂŒliti ja port loodud ning lisatud skydive'i topoloogiasse, ja nĂŒĂŒd nĂ€eb topoloogia vĂ€lja nagu on nĂ€idatud alloleval joonisel.

NĂŒĂŒd kĂ€ivitage allpool toodud Edge Rule kĂ€sud, et luua ĂŒhendus TOR lĂŒliti, port 1 ja host 1 avaliku liidese vahel.
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"TĂ€ida jĂ€rgmised kĂ€sud, et luua seos TOR-lĂŒliti, port 2 ja host 2 avaliku liidese vahel.
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"NĂŒĂŒd luuakse seosed ownership ja layer2 TOR-lĂŒliti ja porta vahel ning layer2 seosed agentide ja portide vahel. NĂŒĂŒd nĂ€eb lĂ”plik topoloogia vĂ€lja nagu alloleval joonisel.

NĂŒĂŒd on kaks hosti/agentti Ă”igesti ĂŒhendatud ning saate kontrollida ĂŒhendust vĂ”i luua lĂŒhiĂŒhenduse kahe hosti vahel.
P.S. Link
Ootsitakse inimesi, kes vÔiksid kirjutada postitusi teiste Skydive vÔimaluste kohta.
skydive.network-i kohta.
Allikas: habr.com
