[comment]: # ({329cfecd-e49a61f3})
# 14 Bloku ierīču atklāšana

[comment]: # ({/329cfecd-e49a61f3})

[comment]: # ({b3342fcd-fe14cbff})
#### 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`](/manual/config/items/itemtypes/zabbix_agent#vfs.dev.get) vienumu kā galveno vienumu
-   atkarīgu zema līmeņa atklāšanas noteikumu
-   atkarīgus vienumu prototipus

[comment]: # ({/b3342fcd-fe14cbff})

[comment]: # ({5d32b87c-5d32b87c})
#### Konfigurācija

[comment]: # ({/5d32b87c-5d32b87c})

[comment]: # ({ccd1bc1c-194f3d7a})
##### Master vienums

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

```default
vfs.dev.get[device_stats,.*]
```

![](../../../../../assets/en/manual/discovery/low_level_discovery/dev_get_item.png){width="600"}

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:

```java
{
  "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ā.

[comment]: # ({/ccd1bc1c-194f3d7a})

[comment]: # ({bbca4e44-85b6a3b1})
##### Atkarīgais LLD noteikums

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

![](../../../../../assets/en/manual/discovery/low_level_discovery/dev_get_lld.png){width="600"}

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:

![](../../../../../assets/en/manual/discovery/low_level_discovery/dev_get_lld_b.png){width="600"}

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:

```default
{#DEVNAME} - $.name
```

![](../../../../../assets/en/manual/discovery/low_level_discovery/dev_get_lld_c.png){width="600"}

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

![](../../../../../assets/en/manual/discovery/low_level_discovery/dev_get_lld_d.png){width="600"}

[comment]: # ({/bbca4e44-85b6a3b1})

[comment]: # ({17b1184e-481f2c83})
##### 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.

![](../../../../../assets/en/manual/discovery/low_level_discovery/dev_get_prototype.png){width="600"}

Ņ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:

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

![](../../../../../assets/en/manual/discovery/low_level_discovery/dev_get_prototype_b.png){width="600"}

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.

[comment]: # ({/17b1184e-481f2c83})
