Ad Widget

Collapse

Массовое добавление хостов

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Polkovnikiv
    Member
    • Sep 2013
    • 71

    #1

    Массовое добавление хостов

    Добрый день!

    С программой пока на Вы, поэтому возникают вопросы... и много..
    Но главное на данный момент: КАК ДОБАВИТЬ НЕСКОЛЬКО СОТЕН ХОСТОВ (КОММУТАТОРЫ) В БАЗУ ZABBIX).
    Перерыл много чего-и самое простое казалось ьы, воспользоваться xml импортом. Но как запихать свои хосты, которые перечислены в Excel в виде двух столбцов: Ip и Имя хоста в таблицу XML ума не приложу.
    Возможно есть более простой способ добавление узлов с параметром IP и Имя хоста...
    Автообнаружение-вещь хорошая, но имя хоста не оприделяется. И прописывать сотни названий заходя в каждый узел-то ещё занятие.

    Прошу помидорами не закидывать.
    Надеюсь на Вашу помощь.

    Спасибо.
  • sersad
    Senior Member
    • May 2009
    • 518

    #2
    Автодисковери надо настраивать, но это в случае того что ip адресация была продумана заранее.

    Comment

    • srusv
      Member
      • Nov 2010
      • 31

      #3
      Если у вас нормально настроены прямые и реверсные зоны ДНС, то имена определяются. Как вариант можно работать напрямую с базой заббикс.

      Comment

      • Polkovnikiv
        Member
        • Sep 2013
        • 71

        #4
        Автоопределение не поможет. Имя хоста на самом хосте никак не прописано, точнее оно не информативно совсем.
        А вот работа напрямую с базой Zabbix можно попробовать.
        Должен же быть файл в базе с описанием хостов, их ip и имен.
        Но где находится этот файлик. Подскажите...

        Comment

        • srusv
          Member
          • Nov 2010
          • 31

          #5
          Originally posted by Polkovnikiv
          А вот работа напрямую с базой Zabbix можно попробовать.
          Должен же быть файл в базе с описанием хостов, их ip и имен.
          Но где находится этот файлик. Подскажите...
          Если вас интересует где файлик - могу сказать что это полностью зависит от используемой вами СУБД и ее настроек. В последних версиях я смотрю структура базы поменялась, но навскидку вам надо смотреть на таблицы hosts, hosts_group, interfaces. В принципе имена полей довольно информативны, так что разобраться вполне можно. Не знаю все ли таблицы я учел. Возможно имеет смысл посмотреть в сторону API Заббикс.

          Comment

          • Polkovnikiv
            Member
            • Sep 2013
            • 71

            #6
            Вот и поддержка советует работать через api.
            Но опыта нет никакого. Может есть скриптик api с подробным разжеванным порядком действий при работе с ним?

            Comment

            • igoreha311
              Member
              • Sep 2011
              • 99

              #7
              Почитайте https://www.zabbix.com/forum/showthr...148#post117148 там я занимался переименованием...
              Массово добавлял хосты с помощью автодискавери (несколько значений по SNMP). Сперва необходимо создать группы...а потом создать действия, чтобы при получении каких-либо значений, узел помещался в определенную группу. Ещё использую такое - при замене оборудования в действии узел удаляется из всех групп и снова привязывается + открепляется/привязывается шаблон.

              Comment

              • Polkovnikiv
                Member
                • Sep 2013
                • 71

                #8
                Все хосты добавил автообнаружением.
                остается открытым вопрос об изменении имени хостов в базе zabbix.
                Их много... Нужен скрипт который будет из файлика брать имя хоста и прописывать его в zabbix.(по умолчанию имя хоста совпадает с ip если не ошибаюсь).
                SNMP не вариант-имя хоста на самом хосте не прописано. Поэтому через OID не выйдет.

                Comment

                • igoreha311
                  Member
                  • Sep 2011
                  • 99

                  #9
                  Originally posted by Polkovnikiv
                  Все хосты добавил автообнаружением.
                  остается открытым вопрос об изменении имени хостов в базе zabbix.
                  Их много... Нужен скрипт который будет из файлика брать имя хоста и прописывать его в zabbix.(по умолчанию имя хоста совпадает с ip если не ошибаюсь).
                  SNMP не вариант-имя хоста на самом хосте не прописано. Поэтому через OID не выйдет.
                  Так у меня изначально был файл с IP-адресами и физическими адресами...используя эти данные, я по SNMP прописывал на коммутаторах их location, а потом дергал по SNMP эти значения и записывал в БД. Если сможете сразу из файла в БД записать, то молодцы. Мне это не требовалось. Заполненное поле location использую в автообнаружении - группы с адресами (микрорайон, квартал).

                  Comment

                  • Polkovnikiv
                    Member
                    • Sep 2013
                    • 71

                    #10
                    Итак, скрипты заработали... С железки по SNMP имя дёргается и в базу записывается. Хорошо.

                    #!/bin/bash

                    mysql="mysql --connect_timeout 10 zabbix -h 127.0.0.1 -u root --password=admin --skip-column-names -b -e"

                    $mysql "select host from hosts where host like '172.16.53.152'" | while read line
                    do
                    arr=($line)
                    x=`snmpwalk -Ou -Oq -v2c -c public ${arr[0]} 1.3.6.1.2.1.1.6.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " | tr $
                    [[ -n $x ]] && $mysql "update hosts set name = '$x' where host ='${arr[0]}'"
                    done

                    Но может есть у грамотных людей идея, как строчку:
                    x=`snmpwalk -Ou -Oq -v2c -c public ${arr[0]} 1.3.6.1.2.1.1.6.0 2> /dev/null | awk '{print$2}' | tr "[:upper:]" "[:lower:] " | tr $

                    заменить на другую, чтобы из файлика например ip.txt вида:

                    Ленина,16 172.16.53.153
                    Ленина,34 172.16.53.152

                    дёрнуть название адреса (Ленина, 16 например) и подставить в

                    update hosts set name = '$x' where host ='${arr[0]}'"

                    вместо '$x'.

                    Просто нужны русские названия адресов. А оборудование поддерживает только английский язык.

                    Буду очень признателен за помощь!!!

                    Comment

                    Working...