Ad Widget

Collapse

как добавить новый столбец в "Последние 20

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • spector
    Junior Member
    • Apr 2010
    • 7

    #1

    как добавить новый столбец в "Последние 20

    Добрый день,

    облазил весь форум но так и не нашел подобной темы,

    хочу добавить столбец ip в "Последние 20 Событий"
    но в каком файле копать не знаю, кто сталкивался с подобным,
    поделитесь опытом

    zabbix 2.0.3
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    чей ip? у хостов в 2.0 нету IP, теперь это связь многие к одному (много интерфейсов у одного хоста), так что тебе сдорово попотеть прийдется что бы сформулировать какой именно IP ты хочешь показать

    в любом случае это хачить php надо и фича будет чисто "под себя"

    Comment

    • spector
      Junior Member
      • Apr 2010
      • 7

      #3
      ip адрес устройства интерфейса snmp, так как почти всё у меня мониторится через snmp
      я согласен что надо ковырять в php, но в каких файлах ?

      хочу немного доработать dashboard под себя.

      Comment

      • Ponser2000
        Junior Member
        • Jan 2013
        • 2

        #4
        Есть такой файлик include/blocks.inc.php. В этом файле формриуется необходимый виджет, за который отвечает следующая функция make_latest_issues. Там все правится.

        Comment

        • spector
          Junior Member
          • Apr 2010
          • 7

          #5
          спасибо
          нашел файлик include/blocks.inc.php
          нашел функцию make_latest_issues
          нашел место куда надо добавлять
          PHP Code:
                  $table = new CTableInfo();
                  
          $table->setHeader(
                          array(
                                  
          is_show_all_nodes() ? _('Node') : null,
                                  
          $options['sortfield'] === 'hostname' ? array($hostHeaderDiv$sortDiv) : _('Host'),
          // ip                   _('ip address'),
                                  
          $options['sortfield'] === 'priority' ? array($issueHeaderDiv$sortDiv) : _('Issue'),
                                  
          $options['sortfield'] === 'lastchange' ? array($lastChangeHeaderDiv$sortDiv) : _('Last change'),
                                  
          _('Age'),
                                  
          _('Info'),
                                  
          $config['event_ack_enable'] ? _('Ack') : null,
                                  
          _('Actions')
                                )
                     ); 
          тут соответственно вывод данных

          PHP Code:
                                  $table->addRow(array(
                                          
          get_node_name_by_elid($trigger['triggerid']),
                                          
          $hostSpan,
          //                              ip,
                                          
          $description,
                                          
          $clock,
                                          
          zbx_date2age($event['clock']),
                                          
          $unknown,
                                          
          $ack,
                                          
          $actions
                                 
          ));
                          }
                          unset(
          $trigger$description$actions);
                } 
          я нашел таблицу в которой находятся ip адреса устройств
          таблица называется interface

          но как добавить чтобы в функции make_latest_issues, имя хоста и ip адрес выводились вместе
          незнаю как, кто поможет справится с этой задачей

          Comment

          • Ponser2000
            Junior Member
            • Jan 2013
            • 2

            #6
            В этой функции идет вся привязка от таблицы тригеров, соответственно нужно парралельно сочинить массивчик, в котором будут id тригеров и ip хостов. Как пример могу привести следующее: добавление колонги с именем группы.

            diff blocks.inc.php.orig blocks.inc.php.work
            756a757,787
            >
            > // get new host groups
            > $options = array(
            > 'nodeids' => get_current_nodeid(),
            > 'groupids' => $filter['groupids'],
            > 'monitored_hosts' => 1,
            > 'output' => API_OUTPUT_EXTEND
            > );
            > $groups_new = API::HostGroup()->get($options);
            > $groups_new = zbx_toHash($groups_new, 'groupid');
            >
            >
            > foreach($groups_new as &$group)
            > {
            > $group['nodename'] = get_node_name_by_elid($group['groupid']);
            > $group_name[$group['groupid']]=$group['name'];
            > }
            > unset($group);
            >
            >
            >
            >
            > // we need natural sort
            > $sortFields = array(
            > array('field' => 'nodename', 'order' => ZBX_SORT_UP),
            > array('field' => 'name', 'order' => ZBX_SORT_UP)
            > );
            > CArrayHelper::sort($groups_new, $sortFields);
            >
            >
            >
            775c806
            < $options['sortfield'] = isset($filter['sortfield']) ? $filter['sortfield'] : 'lastchange';
            ---
            > $options['sortfield'] = isset($filter['sortfield']) ? $filter['sortfield'] : 'priority';
            806a838
            > 'groupids' => zbx_objectValues($groups_new, 'groupid'),
            829a862
            > $options['sortfield'] === 'hostgroup' ? array($hostHeaderDiv, $sortDiv) : _('Group'),
            927a961
            > $group_name[$host['groups'][0]['groupid']],

            Comment

            • spector
              Junior Member
              • Apr 2010
              • 7

              #7
              спасибо за пример, я не как немогу понять как взять значения из другой таблицы interface
              что бы они совпадали по hostid

              Comment

              • igoreha311
                Member
                • Sep 2011
                • 99

                #8
                У меня отображаемое имя состоит из адреса и IP-адреса, например, 11m-11-11_192.168.0.11, таким образом, видно, что узел с конкретным IP находится там-то...

                О переименовании: здесь
                Last edited by igoreha311; 24-01-2013, 15:50.

                Comment

                • spector
                  Junior Member
                  • Apr 2010
                  • 7

                  #9
                  я думал об этом, но пришел к выводу, что удобнее сделать дополнительный столбец в "последние 20 событий"

                  начал разбираться с кодом, и набрел на ссылку

                  где тоже человек столкнулся с подобным, выдергивание ip адреса из таблицы interface
                  Last edited by spector; 25-01-2013, 07:34.

                  Comment

                  • vic283031
                    Junior Member
                    • Feb 2012
                    • 25

                    #10
                    Здравствуйте.
                    Добавление колонки ГРУППЫ ( ответ Ponser2000 ) работает на zabbix 2.0.
                    Однако для zabbix 2.4.3 -- не работает.
                    Подскажите скрипт добавления колонки ГРУППЫ для zabbix 2.4.3.
                    Спасибо.
                    Last edited by vic283031; 10-02-2015, 06:53.

                    Comment

                    • Strategist
                      Member
                      • Sep 2013
                      • 54

                      #11
                      Доброго времени суток, я тоже сейчас хочу в make_latest_issues, добавить ip адрес, на версии 2.0.9. У кого-нибудь есть на эту или на более позднюю версию решение?

                      Comment

                      Working...