2017-08-20 5 views
0

Pour l'instant j'utiliser la configuration ci-dessous pour le serveur hôte Icinga2 au travail:Comment déclarer une variable et la réutiliser dans la section hosts de icinga2?

vars.health_check["my_module1"]={ 
    host = "HEALTH_CHECK_SERVER_URL" 
    module = "my_module1" 
} 

vars.health_check["my_module2"]={ 
    host = "HEALTH_CHECK_SERVER_URL" 
    module = "my_module2" 
} 

Le problème que vous voyez est que je dois redéclarer la même adresse hôte. Quand je mets l'adresse hôte en dehors du service comme ci-dessous, il ne fonctionne pas et le rechargement de Icinga2 échoue:

end_url = "HEALTH_CHECK_SERVER_URL" 
    vars.health_check["my_module1"]={ 
     host = "$end_url$" 
     module = "my_module1" 
    } 

    vars.health_check["my_module2"]={ 
     host = "$end_url$" 
     module = "my_module2" 
    } 

J'ai même essayé d'utiliser vars.end_url mais encore une fois le même scénario. Comment dois-je déclarer une variable dans Icinga2.

Répondre

0

Vous pouvez utiliser l'adresse de l'hôte avec adresse $ $ si l'adresse de l'hôte est ce que l'URL décide de travailler comme il faut:

end_url = "HEALTH_CHECK_SERVER_URL" 
    vars.health_check["my_module1"]={ 
     host = "$address$" 
     module = "my_module1" 
    } 

    vars.health_check["my_module2"]={ 
     host = "$address$" 
     module = "my_module2" 
    } 

Avez-vous regardé dans Icinga2 Director?. C'est pratique et les configs de l'hôte sont plus faciles à gérer. En outre, monitoring-portal.org Est une bonne ressource pour la communauté d'Icinga. Si vous utilisez Director, vous pouvez créer un clone de la commande, puis définir les arguments sur des variables comme $ end_url $, puis créer le champ. Ensuite, vous pouvez ajouter le champ à votre modèle (importation) et l'entrer une fois là.

Par exemple, nous utilisons cette méthode pour les chaînes de communauté SNMP. Nous avons un champ pour $ snmp_community $ attaché à nos modèles. Donc, dans toute commande où nous avons besoin de la communauté, nous utilisons simplement cette variable. C'est ainsi que Icinga2 connaît toutes les chaînes de la communauté de LAN Distro, et si nous avons besoin de la changer, nous la changeons une seule fois.

enter image description here

enter image description here

enter image description here

+1

'adresse $ $ 'fait référence à l'hôte adresse du fichier de configuration. Ce que je veux, c'est une variable avec une valeur différente comme 'example.com'. Merci pour 'Icinga2 director' c'était génial mais encore une fois ça ne résout pas mon problème. J'ai déplacé la section config to commands pour le moment. +1 – ALH

+0

Avez-vous besoin que l'URL de fin soit toujours la même? – cflinspach

+0

Oui, pour l'instant je l'ai déplacé dans la section des commandes pour l'utiliser une fois. – ALH