Tīkla interfeisu atklāšana

Ir iespējams atklāt tīkla interfeisus un to īpašības:

  • interfeisa nosaukumu
  • interfeisa aizstājvārdu
  • interfeisa MAC adresi
  • interfeisa tipu
  • saites ātrumu
  • interfeisa jaunāko vai pašreizējo dupleksa vērtību
  • konfigurēto un RFC2863 darbības stāvokli
  • fiziskas saites esamību
  • reižu skaitu, kad saite ir kļuvusi aktīva vai neaktīva, un kopējo reižu skaitu, kad saites stāvoklis ir mainījies
  • ienākošo un izejošo trafiku

Lai to izdarītu, varat izmantot šādu kombināciju:

  • net.if.get aģenta vienumu kā galveno vienumu
  • atkarīgu zema līmeņa atklāšanas noteikumu
  • atkarīgu vienumu prototipus

Konfigurācija

Galvenais vienums

Izveidojiet Zabbix aģenta vienumu, izmantojot šādu atslēgu:

net.if.get[enp.*]

Iestatiet Informācijas tipu uz Teksts, ja iespējami lieli JSON dati.

Vēsturi var iestatīt uz Nesaglabāt, jo tas tiek izmantots tikai kā galvenais vienums. Var konfigurēt salīdzinoši īsu atjaunināšanas intervālu, piemēram, 1m, lai nodrošinātu biežu datu aptauju.

Vienums atrod tīkla saskarnes, kuru nosaukumi atbilst enp.*, un atgriež to konfigurāciju un statistiku.

Šī vienuma atgrieztie dati saturēs informāciju, kas tīkla saskarnēm ir līdzīga šādai:

{
  "config": [
    {
      "name": "enp0s3",
      "mac": "08:00:27:9a:8f:bb",
      "type": "physical",
      "speed": 1000,
      "duplex": "full",
      "administrative_state": "up",
      "operational_state": "up",
      "carrier": 1
    }
  ],
"values": [
    {
      "name": "enp0s3",
      "mac": "08:00:27:9a:8f:bb",
      "carrier": 1,
      "carrier_changes": 2,
      "carrier_up_count": 1,
      "carrier_down_count": 1,
      "in": {
        "bytes": 98241651,
        "packets": 72754,
        "errors": 0,
        "dropped": 0,
        "overruns": 0,
        "frame": 0,
        "compressed": 0,
        "multicast": 17
      },
    "out": {
        "bytes": 1299650,
        "packets": 11380,
        "errors": 0,
        "dropped": 0,
        "overruns": 0,
        "collisions": 0,
        "carrier": 0,
        "compressed": 0
      }
    }
  ]
}
Atkarīgais LLD noteikums

Izveidojiet zema līmeņa atklāšanas noteikumu kā Atkarīgais vienums tipu:

Kā galveno vienumu atlasiet izveidoto net.if.get vienumu.

Cilnē Priekšapstrāde pievienojiet:

  • JSONPath soli ar $.config parametru.
  • Discard unchanged with heartbeat soli ar pietiekami lielu heartbeat, piemēram, 1h, lai izvairītos no nevajadzīgas LLD izpildes. Tas ļauj galveno vienumu aptaujāt bieži, kamēr zema līmeņa atklāšana tiek veikta tikai tad, kad mainās config vai kad beidzas heartbeat periods.

Cilnē LLD makro definējiet pielāgotus makro ar tiem atbilstošajām JSONPath izteiksmēm.

Piemēram, izmantojot net.if.get[enp.*], var izmantot šādas JSONPath izteiksmes:

{#IFNAME} - $.name

Atkarīgā vienuma prototips

LLD noteikumā izveidojiet vienuma prototipu ar tipu Atkarīgais vienums. Kā šī prototipa galveno vienumu atlasiet izveidoto net.if.get vienumu.

Ņemiet vērā pielāgoto makro izmantošanu vienuma prototipa nosaukumā un atslēgā. Šajā piemērā atslēga ir pielāgota un lietotāja definēta.

  • Nosaukums: Saskarne {#IFNAME}: darbības stāvoklis
  • Atslēga: net.if.oper.state[{#IFNAME}]

Kā informācijas tipu izmantojiet Teksts.

Vienuma prototipa cilnē Priekšapstrāde atlasiet JSONPath un kā parametru izmantojiet šādu JSONPath izteiksmi:

$.config[?(@.name=='{#IFNAME}')].operational_state.first()

Papildu vienuma prototipus var izveidot tādā pašā veidā, piemēram:

  • Nosaukums: Saskarne {#IFNAME}: nesēja izmaiņas
  • Atslēga: net.if.carrier.changes[{#IFNAME}]
  • Priekšapstrāde: JSONPath - $.values[?(@.name=='{#IFNAME}')].carrier_changes.first()
  • Nosaukums: Saskarne {#IFNAME}: ātrums
  • Atslēga: net.if.speed[{#IFNAME}]
  • Priekšapstrāde: JSONPath - $.config[?(@.name=='{#IFNAME}')].speed.first()

Kad sākas atklāšana, tiks izveidots viens vienums katrai tīkla saskarnei.