14 Bloku ierīču atklāšana

Pārskats

Ir iespējams atklāt bloku ierīces un to īpašības:

  • bloku ierīces nosaukumu un tipu
  • ierīces identifikatorus un tādas īpašības kā ceļš, modelis, sērijas numurs, WWN un bloku izmēri
  • nodalījumu informāciju
  • bloku ierīces statistiku

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

  • vfs.dev.get vienumu kā galveno vienumu
  • atkarīgu zema līmeņa atklāšanas noteikumu
  • atkarīgus vienumu prototipus

Konfigurācija

Master vienums

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

vfs.dev.get[device_stats,.*]

Iestatiet informācijas tipu uz Text, ja iespējami lieli JSON dati.

Šim vienumam var atspējot vēsturi, jo tas tiek izmantots tikai kā master vienums. Var konfigurēt salīdzinoši īsu atjaunināšanas intervālu, piemēram, 1m, lai bieži aptaujātu datus.

Šī vienuma atgrieztie dati bloka ierīcei saturēs, piemēram, šādu informāciju:

{
  "config": [
    {
      "name": "sda",
      "devid": "ata-ST1000LM024_HN-M101MBB_S2R8NX0J123456",
      "type": "disk",
      "size_bytes": 1000204886016
    },
    {
      "name": "sda1",
      "devid": "ata-ST1000LM024_HN-M101MBB_S2R8NX0J123456-part1",
      "type": "partition",
      "size_bytes": 536870912
    }
  ],
  "values": [
    {
      "name": "sda",
      "stats": {
        "reads_completed": 1284,
        "writes_completed": 312,
        "bytes_read": 104857600,
        "bytes_written": 16777216,
        "io_time_ms": 204
      }
    },
    {
      "name": "sda1",
      "stats": {
        "reads_completed": 12,
        "writes_completed": 3,
        "bytes_read": 1048576,
        "bytes_written": 262144,
        "io_time_ms": 8
      }
    }
  ]
}

Masīvs config satur bloka ierīču inventāru un metadatus, kas parasti mainās reti. Masīvs values satur bloka ierīču statistiku, kas tiek atjaunināta katrā aptaujā.

Atkarīgais LLD noteikums

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

Kā galveno vienumu izvēlieties vfs.dev.get vienumu, ko izveidojām.

Cilnē Priekšapstrāde pievienojiet JSONPath soli ar parametru $.config. Lai izvairītos no nevajadzīgas LLD izpildes, pievienojiet soli Discard unchanged with heartbeat ar pietiekami lielu heartbeat, piemēram, 1h. Tas ļauj galvenajam vienumam tikt aptaujātam bieži, kamēr zema līmeņa atklāšana tiek palaista tikai tad, kad mainās config vai kad beidzas heartbeat periods:

Cilnē LLD makro definējiet pielāgotus makro ar atbilstošu JSONPath.

Piemēram, izmantojot vfs.dev.get[device_stats,.*], var izmantot šādas JSONPath izteiksmes:

{#DEVNAME} - $.name

Cilnē Filtri varat pievienot regulāro izteiksmi, kas filtrē tikai diska ierīces.

Atkarīgā vienuma prototips

Izveidojiet vienuma prototipu ar tipu Atkarīgais vienums šajā LLD noteikumā. Kā galveno vienumu šiem prototipiem atlasiet vfs.dev.get vienumu, ko izveidojām.

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

  • Nosaukums: Bloka ierīces {#DEVNAME} izmērs
  • Atslēga: dev.block.size[{#DEVNAME}]

Kā informācijas tipu izmantojiet Skaitlisks (bez zīmes).

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

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

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

  • Nosaukums: Nolasītie baiti uz {#DEVNAME}
  • Atslēga: dev.block.read_bytes[{#DEVNAME}]
  • Priekšapstrāde: JSONPath $.values[?(@.name=='{#DEVNAME}')].stats.bytes_read.first()
  • Nosaukums: I/O laiks uz {#DEVNAME}
  • Atslēga: dev.block.io_time_ms[{#DEVNAME}]
  • Priekšapstrāde: JSONPath $.values[?(@.name=='{#DEVNAME}')].stats.io_time_ms.first()

Kad sākas atklāšana, tiks izveidots viens vienums katrai bloka ierīcei.