1 Wykrywanie zamontowanych systemów plików

Przegląd

Możliwe jest wykrywanie zamontowanych systemów plików i ich właściwości:

  • nazwa punktu montowania
  • typ systemu plików
  • rozmiar systemu plików
  • statystyki inode
  • opcje montowania

Aby to zrobić, można użyć połączenia:

  • pozycji agent vfs.fs.get jako pozycji nadrzędnej
  • zależnej reguły wykrywania niskiego poziomu oraz prototypów pozycji

Konfiguracja

Główna pozycja

Utwórz pozycję agenta Zabbix, używając następującego klucza:

vfs.fs.get

Ustaw typ informacji na „Tekst” dla potencjalnie dużych danych JSON.

Dane zwracane przez tę pozycję będą zawierać coś podobnego do poniższego dla zamontowanego systemu plików:

[
  {
    "fsname": "/",
    "fstype": "ext4",
    "bytes": {
      "total": 249405239296,
      "free": 24069537792,
      "used": 212595294208,
      "pfree": 10.170306,
      "pused": 89.829694
    },
    "inodes": {
      "total": 15532032,
      "free": 12656665,
      "used": 2875367,
      "pfree": 81.487503,
      "pused": 18.512497
    },
    "options": "rw,noatime,errors=remount-ro"
  }
]
Zależna reguła LLD

Utwórz regułę wykrywania niskiego poziomu typu „Dependent item”:

Jako pozycję nadrzędną wybierz utworzoną przez nas pozycję vfs.fs.get.

Na karcie „LLD macros” zdefiniuj własne makra z odpowiadającymi im ścieżkami JSONPath:

Na karcie „Filters” możesz dodać wyrażenie regularne, które odfiltruje tylko systemy plików do odczytu i zapisu:

Zależna pozycja prototypu

Utwórz prototyp pozycji z typem „Dependent item” w tej regule LLD. Jako pozycję nadrzędną dla tego prototypu wybierz utworzoną przez nas pozycję vfs.fs.get.

Zwróć uwagę na użycie własnych makr w nazwie i kluczu prototypu pozycji:

  • Nazwa: Wolne miejsce na dysku na {#FSNAME}, typ: {#FSTYPE}
  • Klucz: Free[{#FSNAME}]

Jako typ informacji użyj:

  • Numeric (unsigned) dla metryk takich jak „free”, „total”, „used”
  • Numeric (float) dla metryk takich jak „pfree”, „pused” (procent)

Na karcie „Preprocessing” prototypu pozycji wybierz JSONPath i użyj następującego wyrażenia JSONPath jako parametru:

$.[?(@.fsname=='{#FSNAME}')].bytes.free.first()

Po rozpoczęciu wykrywania zostanie utworzona jedna pozycja dla każdego punktu montowania. Ta pozycja będzie zwracała liczbę wolnych bajtów dla danego punktu montowania.