Comment faire pour exécuter une commande sur les agents?
À configurer sur le serveur et rieuses. Mais à exécuter sur les agents:
- Simples commandes unix, afin d'obtenir notre présentation des données.
- Lorsqu'il existe un traitement nécessaire sur le côté de l'agent.
Il semble y avoir une variété d'approches d'être parlé. Alors, comment exécuter des commandes sur un zabbix agent?
OriginalL'auteur Dreamcat4 | 2014-06-14
Vous devez vous connecter pour publier un commentaire.
Exécuter des commandes à partir du serveur directement à partir d'un nouvel élément.
Tout d'abord, définissez:
EnableRemoteCommands=1
dans le fichier conf de l'agent (pour l'ensemble de vos agents). Pour activer cette fonctionnalité.Créer un nouvel élément. Un champ sur la "nouvel élément" à la page dit "clé". Entrée:
Comme la " clé " de la chaîne. Où commande est la commande que vous souhaitez télécharger et exécuter sur l'agent. Voici un exemple:
Peut-être vous avez besoin pour exécuter quelque chose de beaucoup plus complexe qui est trop long pour tenir dans là? Ensuite, vous aurez besoin de faire un script personnalisé. Mettre vos scripts sur un serveur web local, ou quelque part sur le web.
Puis vous pouvez définir l'élément clé pour:
De chercher et de télécharger le script manquant à l'agent que la première fois qu'il est exécuté. Cependant c'est assez brut hack. Pas très élégant.
Une meilleure façon est d'aller à "l'Administration" --> "Scripts" dans le menu. À partir de là, vous pouvez créer un nouveau script pour l'utiliser dans un élément qui peut être configuré pour s'exécuter sur l'un de vos agents.
Faire un élément personnalisé pour ré-exécuter votre script périodiquement (comme une tâche cron). Le travail du script spécial de l'élément de mise à jour de l'agent avec une collection de vos autres scripts personnalisés.
Bien sûr, vous pourriez écrire tous vos scripts personnalisés directement dans zabbix la base de données MYSQL. Et il est très tentant de le faire. Mais sachez qu'ensuite il serait perdu et vulnérable si votre base de données zabbix est frit ou endommagé, perdu. Zabbix bases de données ont toujours l'habitude de la croissance importante, difficile et hors de contrôle. Afin de ne pas le faire. Stocker séparément ailleurs et sous contrôle de version (git ou subversion).
Une fois que tout est trié, on peut enfin aller de l'avant et créer des éléments personnalisés pour l'exécution de vos scripts personnalisés. En utilisant à nouveau:
comme l'élément clé de tout comme avant. Où 'script' est la commande (ainsi que tous les arguments), pour l'exécution de votre script personnalisé localement sur l'agent.
EnableRemoteCommands=1
doit être défini dans le fichier conf de l'agent. Sinonsystem.run[command]
ne marchera pas!Je vous voter contre
EnableRemoteCommand
. C'est pour moi un no-go du point de vue de sécurité. Ce que nous faisons est que nous utilisons le contrôle externe, tel que décrit ici.2 points: 1) À l'exception de Windows, EnableRemoteCommand autorise uniquement les commandes à exécuter comme le "zabbix" utilisateur. L'utilisateur qui zabbix_agentd doit être exécuté. Et pas de racine. La sorcière de la configuration correcte dans "sudoers" fichier, le "zabbix" l'utilisateur peut être autorisé à exécuter seulement choisi commandes avec n'importe quel type d'autorisation plus élevée. 2) La question est "comment exécuter des commandes sur l'agent". La zabbix page de documentation sur le contrôle externe et la fonctionnalité dit qu'ils ne peuvent être exécutés sur le serveur (et non pas l'agent).
1) Être en mesure d'accéder à d'autres serveurs est déjà la façon d'obtenir un accès root sur d'autres serveurs. 2) en Effet, désolé. J'ai mélangé le contrôle externe avec UserParameters. C'est ce que nous utilisons et ce qui réduit le nombre de commandes qui peuvent être exécutées.
Ah en effet UserParameters est généralement plus populaire méthode de
system.run[]
. Mais 1) sonne un peu au sujet cependant. Pouvez-vous préciser à ce sujet, ou de donner un lien particulier en ce qui concerne à zabbix_agent? Merci beaucoup.OriginalL'auteur
Définir le paramètre utilisateur sur le client (où zabbix agent est
situé) dans /etc/zabbix/zabbix_agentd.conf. La clé doit être
unique. Je suis à l'aide de lsof comme un exemple.
UserParameter=open_file,lsof | wc-l
Redémarrer l'agent de service de "zabbix-agent de redémarrage”
Test si la clé est de travailler à l'aide de zabbix_get utilitaire. À partir de la zabbix
serveur invoquer la suite. Elle doit retourner un certain nombre dans ce cas.
/usr/local/bin/zabbix_get -s -k
open_file
Créer un élément avec la clé sur le serveur zabbix dans le template
niveau. Le type de retour doit être correctement défini, sinon zabbix
ne l'acceptera pas :
Type : Zabbix Agent (Active) , de la clé : open_file, le Type d'Information :
Numérique (non signé), le Type de Données : décimal
Vous pouvez créer un graphique à l'aide de l'élément à surveiller la valeur à
intervalle régulier.
Ici est la langue officielle de la documentation.
OriginalL'auteur Arnab Biswas