Ad Widget

Collapse

Zabbix ping TOS

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sergey69
    Junior Member
    • Nov 2015
    • 16

    #1

    Zabbix ping TOS

    Уважаемые форумчане, прошу помощи, нигде не нашёл информации о том умеет ли заббикс пинговать с определенным значением tos. Может знаете каки-либо решения? Заранее спасибо за ответы.
  • astrix89
    Senior Member
    • Jun 2017
    • 149

    #2
    Originally posted by sergey69
    Уважаемые форумчане, прошу помощи, нигде не нашёл информации о том умеет ли заббикс пинговать с определенным значением tos. Может знаете каки-либо решения? Заранее спасибо за ответы.
    Видимо только через скрипт.

    Comment

    • Sergey69
      Junior Member
      • Nov 2015
      • 16

      #3
      Originally posted by astrix89
      Видимо только через скрипт.
      Может кто поделиться таким скриптом и как его кормить Заббиксу, не селен в программировании.

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Кормить заббиск через external check

        Пример скрипта (это конечно не нужным вам пинг, этот скрипт считает колво хостов в группе, переданной ему из самого заббикса, мониторю им автоматически зарегистрированных клиентов)
        Code:
        #!/usr/bin/env perl 
        #===============================================================================
        #
        #         FILE: groupHostCont
        #
        #        USAGE: ./groupHostCont "Group name"
        #
        #  DESCRIPTION:
        #
        #      OPTIONS: ---
        # REQUIREMENTS: ---
        #         BUGS: ---
        #        NOTES: ---
        #       AUTHOR: yukra
        # ORGANIZATION:
        #      VERSION: 1.0
        #      CREATED: 10.03.2017 09:03:46
        #     REVISION: ---
        #===============================================================================
        
        use strict;
        use warnings;
        use utf8;
        use Data::Dumper;
        use lib '/opt/Perl5/libs';
        use Monitoring::Zabipi qw(zbx);
        
        Monitoring::Zabipi->new('https://zabbix.example.name/zabbix/api_jsonrpc.php');
        zbx( 'auth', 'login', 'password' ) or die "$!";
        
        die "Must be one parameter\n" if scalar(@ARGV) != 1;
        
        my $gid = zbx(
            'hostgroup.get',
            {
                'filter' => {
                    'name' => shift(@ARGV),
                },
                'output' => ['groupid'],
            }
        )->[0]->{'groupid'};
        
        die "Group not found\n" unless defined ($gid);
        
        my $c = zbx(
            'host.get',
            {
                'groupids'    => $gid,
                'output'      => 'count',
                'countOutput' => '1,'
            }
        );
        
        print "$c\n";

        Comment

        • Sergey69
          Junior Member
          • Nov 2015
          • 16

          #5
          Originally posted by yukra
          Кормить заббиск через external check

          Пример скрипта (это конечно не нужным вам пинг, этот скрипт считает колво хостов в группе, переданной ему из самого заббикса, мониторю им автоматически зарегистрированных клиентов)
          Code:
          #!/usr/bin/env perl 
          #===============================================================================
          #
          #         file: Grouphostcont
          #
          #        usage: ./grouphostcont "group name"
          #
          #  description:
          #
          #      options: ---
          # requirements: ---
          #         bugs: ---
          #        notes: ---
          #       author: Yukra
          # organization:
          #      version: 1.0
          #      created: 10.03.2017 09:03:46
          #     revision: ---
          #===============================================================================
          
          use strict;
          use warnings;
          use utf8;
          use data::dumper;
          use lib '/opt/perl5/libs';
          use monitoring::zabipi qw(zbx);
          
          monitoring::zabipi->new('https://zabbix.example.name/zabbix/api_jsonrpc.php');
          zbx( 'auth', 'login', 'password' ) or die "$!";
          
          die "must be one parameter\n" if scalar(@argv) != 1;
          
          my $gid = zbx(
              'hostgroup.get',
              {
                  'filter' => {
                      'name' => shift(@argv),
                  },
                  'output' => ['groupid'],
              }
          )->[0]->{'groupid'};
          
          die "group not found\n" unless defined ($gid);
          
          my $c = zbx(
              'host.get',
              {
                  'groupids'    => $gid,
                  'output'      => 'count',
                  'countoutput' => '1,'
              }
          );
          
          print "$c\n";
          Эхх хотелось бы пример пинга с Тосом, но все равно спасибо!

          Comment

          • yukra
            Senior Member
            • Apr 2013
            • 1359

            #6
            Originally posted by sergey69
            Эхх хотелось бы пример пинга с Тосом, но все равно спасибо!
            У меня хрустальный шар на данный момент забрали на плановое тех. обслуживание, не могу угадать что именно вы хотите получить на выходе (задержки, потери, бинарный ответ в виде "прошел пинг или нет", или еще что-то).

            Comment

            • Sergey69
              Junior Member
              • Nov 2015
              • 16

              #7
              Originally posted by yukra
              У меня хрустальный шар на данный момент забрали на плановое тех. обслуживание, не могу угадать что именно вы хотите получить на выходе (задержки, потери, бинарный ответ в виде "прошел пинг или нет", или еще что-то).
              Да, верное замечание )
              Нужно
              1) Двустороння задержка в ms
              2) потери пакетов
              3) jitter

              Comment

              • yukra
                Senior Member
                • Apr 2013
                • 1359

                #8
                Originally posted by Sergey69
                Да, верное замечание )
                Нужно
                1) Двустороння задержка в ms
                2) потери пакетов
                3) jitter
                Что-то типа такого
                Code:
                #!/usr/bin/env bash
                
                if [[ -z ${1} || -z ${2} ]] 
                then 
                	echo -e "run ${0} <time|loss|jitter> <destination>\nExample:\n\t${0} time 127.0.0.1\n\t${0} jitter ya.ru" ; exit 1
                fi
                
                case ${1} in 
                	time) fping ${2} -c 5 -q -O 0xh 2>&1 | awk 'BEGIN{FS="%|/| "} {print $17}';;
                	loss) fping ${2} -c 5 -q -O 0xh 2>&1 | awk 'BEGIN{FS="%|/| "} {print $10}' ;;
                	jitter) fping ${2} -c 5 -q -O 0xh 2>&1 | awk 'BEGIN{FS="%|/| "} {print $18-$16}' ;;
                	*    ) echo "run ${0} <time|loss|jitter> <destination>"
                esac

                Comment

                Working...