Ad Widget

Collapse

Zabbix script

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • titar
    Junior Member
    • Nov 2009
    • 20

    #1

    Zabbix script

    Появилось желание сделать скрипт, чтобы щелкая по узлу сети на карте в выподающем меню появлися пункт info, щелкая по которому можно было получить информацию по данному хосту.
    Administration -> Scripts -> Add script добавляю новый скрипт с именем info и командой /bin/echo "Адрес" {HOST.CONN} Добавилась строчка info в меню. Щелкаю по ней, и получаю: Адрес 10.16.111.1 - Все нормально, но хотелось бы чтобы здесь же отображалось месторасположение этого устройства. При его добавлении указывал использовать профиль и в поле Location заносил данные. Использую версию zabbix 1.6.7, в мануале написано, что интересующие меня данные - {PROFILE.LOCATION}, но если добавляю это в скрипт, на выводе получаю тот же {PROFILE.LOCATION}
    Подскажите, что делаю не так?
  • Sloth
    Junior Member
    • Feb 2010
    • 6

    #2
    Rtfm, как говорится!
    В скриптах можно пользовать только {host.conn}, {host.dns} и {ipaddress}.

    А вывод информации по хосту меня самого интересует, но пока глубоко в этом направлении не копал ...

    Comment

    • titar
      Junior Member
      • Nov 2009
      • 20

      #3
      Да, в мануале я уже позже вычитал, что для GUI Script доступно только три переменные.
      Проблему решил так:
      Administration -> Script Name: info, Command: /bin/echo {HOST.CONN} > /home/zabbix/host.txt; /home/zabbix/info.sh
      Ну и
      cat /home/zabbix/info.sh
      #!/bin/sh
      /bin/echo 'Месторасположение: '
      export SQL_QUERY="select location from hosts_profiles where hostid in (select hostid from hosts where ip=\""`/bin/cat /home/zabbix/host.txt`"\")"
      /usr/bin/mysql -u root zabbix -N -B -e "$SQL_QUERY"
      /bin/rm -f /home/zabbix/host.txt

      Теперь, щелкая в меню по info получаю инфу по том, где этот хост расположен.

      Comment

      • mschedrin
        Senior Member
        • Jun 2009
        • 179

        #4
        À ÿ ïðîñòî çàëèâàþ â hostname ìåñòîïîëîæåíèå õîñòîâ. Íàìíîãî óäîáíåå ïîëó÷àåòñÿ.

        Comment

        • Sloth
          Junior Member
          • Feb 2010
          • 6

          #5
          Originally posted by mschedrin
          А я просто заливаю в hostname местоположение хостов. Намного удобнее получается.
          Хм, а если у меня информация о хосте помимо местоположения содержит: тип устройства, версию ОС, серийный номер, адрес местоположения, контактные данные (телефон, имя человека) - это все тоже в имя хоста писать?

          titar, а как на счет безопасности? Я так понимаю пользователь root имеет пустой пароль или может "ходить по базам" с localhost без авторизации?

          Хочу глянуть, что есть Zabbix API ... Может там сыщу ответа ...

          Comment

          • titar
            Junior Member
            • Nov 2009
            • 20

            #6
            О безопасности особо не задумывался, у меня сеть без связи с внешним миром. В скрипте можно писать и так:
            /usr/bin/mysql -u user --password=password zabbix -N -B -e "$SQL_QUERY"
            Работать будет, но с другой стороны, пароль в открытом виде находится в скрипте.

            Comment

            • Sloth
              Junior Member
              • Feb 2010
              • 6

              #7
              Originally posted by titar
              ...
              В скрипте можно писать и так:
              /usr/bin/mysql -u user --password=password zabbix -N -B -e "$SQL_QUERY"
              Работать будет, но с другой стороны, пароль в открытом виде находится в скрипте.
              Оно все понятно Про пароль в скрипте в открытом виде можно сказать только то, что информация о пользователе БД для доступа к базе zabbix храниться в открытом виде, как минимум в двух местах! "Так шта ..." (с) Рулить здесь только правами доступа к скрипту, либо "забирать" информацию о пользователе БД из конфигов zabbix-а ...

              Как-то так ...

              Comment

              • Sloth
                Junior Member
                • Feb 2010
                • 6

                #8
                Написал себе скриптик на питоне, "вываливает" все не пустые позиции профиля хоста ...
                Если есть интерес, могу выложить ...

                Comment

                • costas
                  Senior Member
                  • Aug 2009
                  • 201

                  #9
                  Originally posted by Sloth
                  Оно все понятно Про пароль в скрипте в открытом виде можно сказать только то, что информация о пользователе БД для доступа к базе zabbix храниться в открытом виде, как минимум в двух местах! "Так шта ..." (с) Рулить здесь только правами доступа к скрипту, либо "забирать" информацию о пользователе БД из конфигов zabbix-а ...

                  Как-то так ...
                  Никто не мешает создать пользователя только на чтение для базы zabbix например zabbixuser, далее ложите в /etc/zabbix файлик /etc/zabbix/.zabbixuser c паролем и делаете пермишины на чтение только для пользователя из под которого выполняете свой скрипт
                  и в скрипте:

                  Code:
                  /usr/bin/mysql -u user --password=`cat /etc/zabbix/.zabbixuser` zabbixuser -N -B -e "$SQL_QUERY"
                  и всё у Вас с безопасностью в порядке и пароль в одном месте для всех скриптов, лишний пользователь на чтение в БД никому не вредил.
                  CentOS-5.5 i386, Zabbix 1.8.4 (stable), MySQL 5.0.92, PHP 5.2.17 (cli)

                  ...эта проверка бесполезная, вредная, и она зло.

                  Comment

                  • Horror777
                    Member
                    • Jun 2009
                    • 36

                    #10
                    Ãîñïîäà, âñ¸ ïðîùå è ëàêîíè÷íåå.

                    Íàäî äîáàâèòü â ôàéë â âåá èíòåðôåéñå /include/blocks.inc.php ñðàçó ïîñëå 477 ñòðîêè ñëåäóþùåå
                    $menus.= "['".Info."',\"javascript: redirect('hostprofiles.php?groupid=0&hostid=".$tri gger['hostid']."')\", null,{'outer' : ['pum_o_item'],'inner' : ['pum_i_item']}],";

                    Ñïàñèáî çà èäåþ.

                    Comment

                    Working...