Ad Widget

Collapse

Lancement de script avec zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • wick
    Member
    • May 2017
    • 57

    #1

    Lancement de script avec zabbix

    Bonjour tout le monde,

    Alors je vais commencer par vous situer mon architecture:

    -J'ai un serveur Zabbix 3.2 sur chaque site et un proxy
    -J'ai un serveur central Zabbix 3.2 qui récupère à l'aide de script et de requêtes SQL uniquement les informations qui me sont nécessaire sur chacun des sites. C'est à dire le nombre de trigger actif par site le statut du firewall du zabbix proxy etc ...

    Mais voila il me manque certaines informations sur le serveur central comme par exemple la liste des trigger actifs sur site.
    Pour cela j'ai fais un script qui est le même sur tous les sites et fonctionne très bien à l’exécution en root mais quand c'est le serveur centrale de zabbix qui l’exécute il a des problèmes d’exécutions car il l’exécute en utilisateur zabbix ....

    Code:
    rm: impossible de supprimer « xxxxxx.csv »: Permission non accordée
    ERROR 1086 (HY000) at line 1: File 'xxxxxx.csv' already exists
    /xxxxx/name_trigger.sh: ligne 23: /xxxxxx.csv: Permission non accordée
    Avez vous une solution à me proposer ?

    Je désespère ...

    Merci d'avance
  • tiramiseb
    Senior Member
    • Sep 2012
    • 427

    #2
    Salut,

    Comment fais-tu pour qu'il soit exécuté en root en dehors du "serveur central" ? Es-tu sûr qu'il s'exécute en root ?

    Moi tout ce que je vois c'est une permission manquante sur un fichier, pas un problème d'exécution de script.
    Es-tu sûr que le problème sur ton serveur central n'est pas simplement que ce fichier existe déjà et a été créé en root (peut-être car tu as manuellement exécuté le script) ?
    Si tu supprimes manuellement le fichier en question, puis que tu fais lancer le script par zabbix, ça fonctionne pas ?
    Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

    Comment

    • wick
      Member
      • May 2017
      • 57

      #3
      Salut,

      Déjà je te remercie pour ta réponse rapide

      L’exécution fonctionne uniquement sur mon serveur central en root mais dés que je fais un :

      Code:
      zabbix_get -s xxx.xxx.xxx.xxx -k custom.lescript
      ou 
      zabbix_get -s 127.0.0.1 -k custom.lescript
      il me retourne le message ci-dessus..

      le script à bien les droits d’exécution zabbix :

      Code:
      # ll | grep script.sh
      -rwxr-x--- 1 zabbix zabbix 1312 juin  30 16:25 script.sh*
      le fichier que j'essaie de supprimer est créer par une requête SQL export csv dans ce même script

      Le script fonctionne uniquement en lancement root sur la machine centrale

      Comment

      • tiramiseb
        Senior Member
        • Sep 2012
        • 427

        #4
        le fichier que j'essaie de supprimer est créer par une requête SQL export csv dans ce même script
        Pas logique.
        Si ton script a pu créer un fichier, alors il doit avoir le droit de le supprimer.

        Es-tu sûr que ce fichier .csv n'existe pas déjà avant exécution du script ?
        Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

        Comment

        • wick
          Member
          • May 2017
          • 57

          #5
          Lors de l’exécution du script que le fichier existe ou non le script me retourne ce message d'erreur :

          Code:
          rm: impossible de supprimer «*/var/lib/mysql-files/outfile.csv*»: Permission non accordée
          /xxxxx/name_trigger.sh: ligne 23: /var/lib/mysql-files/outfile.csv: Permission non accordée
          Je crois avoir trouvé d'où venait le problème ... le fichier que le script crée via la requête SQL se met en utilisateur et en groupe mysql ...

          Code:
          # ll /var/lib/mysql-files/
          -rw-rw-rw- 1 mysql mysql 61 juil.  3 13:18 outfile.csv
          As tu une solution à ça ? faire un chown -R zabbix:zabbix du fichier ?
          Last edited by wick; 03-07-2017, 13:43.

          Comment

          • tiramiseb
            Senior Member
            • Sep 2012
            • 427

            #6
            le fichier que le script crée via la requête SQL ce met en utilisateur et en groupe mysql
            Ok donc c'est un fichier créé par MySQL à la demande de ton script, ce n'est pas un fichier créé par ton script. Ça change tout.

            as tu une solution à ça ? faire un chown -R zabbix:zabbix du fichier ?
            Pour ça, il faut être root.
            Dead-end.

            -----------

            Bon, par contre, en réfléchissant un peu à ta problématique, je me demande si ton approche est la bonne !

            Ton objectif est d'interroger le contenu du serveur Zabbix, pour cela tu passes par un export SQL. Ma question est alors : pourquoi exporter des données de la base SQL dans un fichier CSV ?
            Les informations que tu cherches sont a priori disponibles via l'API Zabbix, qui d'une part ne poserait pas de problème de droits et d'autre part n'a aucune dépendance à une quelconque base de données (si tu changes de base, les requêtes à l'API restent les mêmes).
            Je te conseille donc d'explorer la piste de l'API Zabbix plutôt que de bidouiller dans la base de données...
            Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

            Comment

            • wick
              Member
              • May 2017
              • 57

              #7
              Donc je n'ai pas de solution à priori ... Je suis un peu déçu

              Mon approche était de faire un export à l'aide d'une requête SQL récupérant les Triggers actif sur chacun des sites et de les injecter sur une base de données central nommée trigger qui posséderai ainsi une table par site. Il n'aurait plus eu qu'a faire la lecture des tables par des Database Monitor... ou par grafana mais bon...

              Mais bon c'est pas grave j'avais déjà survolé l'API de Zabbix je vais donc commencer à l'approfondir

              Après je sais pas si grafana peut posséder plusieurs Data sources Zabbix ce qui faciliterais l'affichage des triggers actif ?

              Encore merci de tes réponses claire qui m'ont été très utiles

              Comment

              • wick
                Member
                • May 2017
                • 57

                #8
                Pour information Grafana peut posséder plusieurs Data Sources Zabbix du coup l'affichage des Triggers actif par site peut être simplifié ^^

                Grafana serais tu un outils de centralisation de serveur zabbix ? une version évolué du serveur Zabbix 2.2 ?

                Je vais quand même explorer l'API zabbix elle m'a l'air très intéressante

                Comment

                • tiramiseb
                  Senior Member
                  • Sep 2012
                  • 427

                  #9
                  Grafana permet d'afficher des graphes de données en provenance de différentes sources.
                  C'est un tableau de bord qui peut en effet se baser sur un ou plusieurs serveurs Zabbix. Mais ça ne se substitue pas à un serveur Zabbix avec ses remontées d'information, ses événements, ses déclencheurs, ses alertes...
                  Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                  Comment

                  • wick
                    Member
                    • May 2017
                    • 57

                    #10
                    Je l'avais biens compris mais en tant que centralisateur d'information il est plutôt bon couplé avec un serveur Zabbix central qui monitore les zabbix de site via les agent et les firewall ça donne une très bonne recette je trouve

                    Comment

                    • tiramiseb
                      Senior Member
                      • Sep 2012
                      • 427

                      #11
                      C'est en effet une approche très intéressante.
                      Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                      Comment

                      • Rush
                        Junior Member
                        • Aug 2017
                        • 4

                        #12
                        Originally posted by tiramiseb
                        Ok donc c'est un fichier créé par MySQL à la demande de ton script, ce n'est pas un fichier créé par ton script. Ça change tout.



                        Pour ça, il faut être root.
                        Dead-end.
                        Sinon tu "sudo chown" avec un fichier /etc/sudoers.d/zabbix qui contient :

                        Defaults:zabbix !requiretty

                        # Cmnd alias specification
                        Cmnd_Alias CHOWN = /bin/chown path/ton_fichier

                        # User privilege specification
                        zabbix ALL=(ALL:ALL) NOPASSWD: CHOWN

                        Comment

                        Working...