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 "Text" 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 jako typ Dependent item:

Jako element nadrzędny wybierz utworzony przez nas element vfs.fs.get.

Na karcie LLD macros zdefiniuj niestandardowe makra z odpowiednim JSONPath:

Na karcie Filters możesz dodać wyrażenie regularne, które odfiltruje tylko systemy plików read-write:

Prototyp pozycja zależnej

Utwórz prototyp pozycji typu "Dependent item" w tej regule LLD. Jako pozycję nadrzędną dla tego prototypu wybierz pozycję vfs.fs.get, którą utworzyliśmy.

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

  • Name: Free disk space on {#FSNAME}, type: {#FSTYPE}
  • Key: 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 zwróci liczbę wolnych bajtów dla danego punktu montowania.