Ad Widget

Collapse

Проблемы с icmping

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • goga
    Junior Member
    • Apr 2016
    • 6

    #1

    Проблемы с icmping

    netstat -rn | egrep "192.168|10.90.90"
    10.90.90.0/24 link#1 U bce0
    10.90.90.207 link#1 UHS lo0
    192.168.10.0/24 link#1 U bce0
    192.168.10.113 link#1 UHS lo0

    cat zabbix_server.conf | grep SourceIP
    SourceIP=БЕЛЫЙ_IP

    Шлюз: ДРУГОЙ_БЕЛЫЙ_IP

    Суть проблемы:
    Устройства из подсетей 10.90.90.0/24 и 192.168.10.0/24 недоступны для zabbix-server'а.

    Каким образом можно заставить это дело работать при условиях, что:
    1. fping модифицировать не будем (zabbix использует опцию -S(?));
    2. без zabbix-proxy;
    3. Шлюзов в "проблемных подсетях" нет.

    ?

    zabbix_server -V
    Zabbix server v2.4.7 (revision 56694) (12 November 2015)
    Compilation time: Feb 25 2016 08:25:01

    fping -v
    fping: Version 3.10
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Originally posted by goga
    Каким образом можно заставить это дело работать при условиях, что:
    Какое дело-то? В двух словах - цель какая?

    Comment

    • goga
      Junior Member
      • Apr 2016
      • 6

      #3
      Originally posted by sadman
      Какое дело-то? В двух словах - цель какая?
      Цель - мониторить узлы в указанных подсетях.

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #4
        Originally posted by goga
        Цель - мониторить узлы в указанных подсетях.
        по icmp? На агента, который уже есть в данной сети или может до нее достучатся, повесить Userparameter с ping, например.

        Comment

        • goga
          Junior Member
          • Apr 2016
          • 6

          #5
          Originally posted by sadman
          по icmp? На агента, который уже есть в данной сети или может до нее достучатся, повесить Userparameter с ping, например.
          А можно где-нибудь в настройках сервера указать, чтобы он (сервер) не использовал параметр -S для fping?
          т.к. fping с хоста заббикса от имени заббикса без опции -S выводит, что узлы в указанных подсетях доступны.
          Добавление узлов сети, как элементов данных не есть гуд, имхо. Но, если иного варианта не будет, придется делать так.

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #6
            Originally posted by goga
            А можно где-нибудь в настройках сервера указать, чтобы он (сервер) не использовал параметр -S для fping?
            т.к. fping с хоста заббикса от имени заббикса без опции -S выводит, что узлы в указанных подсетях доступны.
            Добавление узлов сети, как элементов данных не есть гуд, имхо. Но, если иного варианта не будет, придется делать так.
            В 2.4.7 делается так:

            Code:
            static void	get_source_ip_option(const char *fping, const char **option, unsigned char *checked) {
            
            	zbx_snprintf(tmp, sizeof(tmp), "%s -h 2>&1", fping);
            	while (NULL != fgets(tmp, sizeof(tmp), f))
            	{
                       ...
            		if ('-' == p[0] && 'S' == p[1] && isspace(p[2]))
            		{
            			*option = "-S";
            			break;
            		}
            	}
            ...
            	*checked = 1;
            }
            ...
            	if (NULL != CONFIG_SOURCE_IP)
            	{
            ...
            		if (NULL != source_ip_option)
            			zbx_snprintf(params + offset, sizeof(params) - offset,
            					" %s%s", source_ip_option, CONFIG_SOURCE_IP);
            ....
            	zbx_snprintf(filename, sizeof(filename), "%s/%s_%li.pinger", CONFIG_TMPDIR, progname, zbx_get_thread_id());
            ...
            Насколько я понял - сначала проверяется поддерживает ли fping опцию -S. Если да, то при условии определенности CONFIG_SOURCE_IP эта опция используется.

            В конфиге сервера какой-то SourceIP должен быть.
            Last edited by sadman; 06-04-2016, 19:11.

            Comment

            • goga
              Junior Member
              • Apr 2016
              • 6

              #7
              Originally posted by sadman
              В 2.4.7 делается так:
              Т.е., предлагается изменить исходные коды самого заббикса?
              В таком случае наверняка возникнут проблемы при обновлении.
              Является ли более простым способом сделать обертку вокруг fping, которая будет игнорировать опцию S?

              Какие параметры zabbix передает в fping?

              Comment

              • sadman
                Senior Member
                • Dec 2010
                • 1611

                #8
                Для начала предлагается закомментить SourceIP. Или придать ему значение 0.0.0.0 - аннигилирует такое значение действие опции -S?

                Взаимодействие с fping размазано по нескольким функциям, так что нужно посидеть и повтыкать в код. Но определенно заббикс делает fping -h, и целенаправленно ищет в ответе -S и -I, так что создание fping-враппера, который не показывал бы -S при вызове с -h - неплохая идея.

                Comment

                • goga
                  Junior Member
                  • Apr 2016
                  • 6

                  #9
                  Originally posted by sadman
                  Для начала предлагается закомментить SourceIP. Или придать ему значение 0.0.0.0 - аннигилирует такое значение действие опции -S?
                  Увы, не прокатит.
                  Code:
                  root@zabbix:/ # fping -S 0.0.0.0 192.168.10.245
                  fping: cannot bind source address : Can't assign requested address


                  Originally posted by sadman
                  Взаимодействие с fping размазано по нескольким функциям, так что нужно посидеть и повтыкать в код. Но определенно заббикс делает fping -h, и целенаправленно ищет в ответе -S и -I, так что создание fping-враппера, который не показывал бы -S при вызове с -h - неплохая идея.
                  Я попробую либо оберткой fping "исправить" либо "пофиксить" выхлоп fping -h.

                  Позже отпишусь, если необходимо.


                  UPD 19:12 7.4.16 KRAT:

                  Хотя задание SourceIP=0.0.0.0 помогло. Извиняюсь за дезу.
                  По крайней мере, теперь узлы заббикс видит.
                  Так же стоит отметить, что закомменчивание строки с параметром S выхлопа -h фпинга тоже помогло.

                  Думаю, вопрос можно считать закрытым.
                  Спасибо за помощь.
                  Last edited by goga; 07-04-2016, 14:14. Reason: Исправление

                  Comment

                  • goga
                    Junior Member
                    • Apr 2016
                    • 6

                    #10
                    И снова дезинформация.
                    Граффики пинга на все узлы перестали рисоваться. Я верну оригинальный SourceIP и исправлю выхлоп -h фпинга.

                    UPD:
                    Также при SourceIP=0.0.0.0 элементы данных icmp* перешли в состояние "не поддерживается" с сообщением
                    fping failed: /usr/sbin/fping: cannot bind source address : Can't assign requested address
                    Таким образом, необходимо сохранить оригинальный SourceIP и удалить/закомментировать строку вида
                    fprintf(out, " -S addr set source address\n" );
                    в файле fping.c с послудующими make; make install

                    Теперь тему можно считать закрытой.
                    Last edited by goga; 07-04-2016, 14:26. Reason: Добавление инфы

                    Comment

                    Working...