{#FNAME}Trigger Macro in Discovery Rule

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    {#FNAME}Trigger Macro in Discovery Rule

    Hallo zusammen,

    ich habe eine Template mit Discovery Rule und folgendem Item Prototype erstellt:
    Code:
    vfs.fs.size[{#FSNAME},free]
    Ein Trigger feuert wenn der Speicherplatz von {#FSNAME} unter {$T_MIN_HDD_SPEICHERPLATZ} GB ist.
    {$T_MIN_HDD_SPEICHERPLATZ} ist ein Macro im Template welches per Default 5G als Wert hat
    Code:
    {t_profile_w01s001:vfs.fs.size[{#FSNAME},free].last()}<{$T_MIN_HDD_SPEICHERPLATZ}
    Der 5GB Wert kann von jedem zugewiesenem Host über den Punkt "Inherited and Host Macros" angepasst werden. So kann pro Host ein variabler Schwellwert eingestellt werden.
    Soweit so gut.. allerdings gilt dieser Schwellwert ja für alle ermittelten Laufwerke des Hosts.
    Bei Laufwerk C: mit einer 50GB Partition passen die 5GB.
    Bei Laufwerk D: mit einer 1TB Partition sind die 5GB viel zu gering.

    Nun hatte ich mir vorgestellt, dass ich im Template Macros für die Typischen Laufwerk erstelle und den Trigger um {#FSNAME} erweitere.
    Dadurch hätte ich für jedes Laufwerk einen Default Wert, den ich für jeden Host und dessen Laufwerk entsprechend überschreiben könnte.
    Code:
    {$T_MIN_C:_HDD_SPEICHERPLATZ} = 5GB
    {$T_MIN_D:_HDD_SPEICHERPLATZ} = 5GB
    {$T_MIN_E:_HDD_SPEICHERPLATZ} = 5GB
    Der angepasste Trigger sieht so aus:
    Code:
    {t_profile_w01s001:vfs.fs.size[{#FSNAME},free].last()}<
    {$T_MIN_{#FSNAME}_HDD_SPEICHERPLATZ}
    Zabbix gefällt meine Idee scheinbar nicht.
    Die Fehlermeldung dazu:
    Code:
    Incorrect trigger expression. Check expression part starting from "<
    {$T_MIN_{#FSNAME}_HDD_SPEICHERPLATZ}".
    Hat jemand eine Idee, wie ich das gelöst bekomme ohne die Trigger pro Host zu konfigurieren?


    Gruß
    Daniel

    #2
    Schau dir die Kontext-bezogenen Macros an: https://www.zabbix.com/documentation...ros/usermacros

    Du nutzt im Prototyp {$T_MIN_HDD_SPEICHERPLATZ:"{#FSNAME}"} als Macro und definierst {$T_MIN_HDD_SPEICHERPLATZ} mit einem Standard-Wert.

    Am Host kann dann {$T_MIN_HDD_SPEICHERPLATZ:"C:"} individuell überschrieben werden. Wenn {$T_MIN_HDD_SPEICHERPLATZ:"C:"} nicht definiert ist, greift automatisch der Wert von {$T_MIN_HDD_SPEICHERPLATZ}

    Comment


      #3
      Vielen Dank für den Hinweis.

      So funktioniert es!

      Comment

      Announcement

      Collapse
      No announcement yet.
      Working...
      X