Перейти к содержимому
Калькуляторы

EMR 3.0 График загрузки QAM RRD, Perl

Привет.

 

В порыве безделия набросал скриптик, отрисовывающий загрузку QAM на EMR.

На скорую руку, если есть желание - допилите до нормального пересчета в мегабиты, добавьте цикл. Ну и конечно же, поделитесь результатом и кодом с остальными ;)

 

post-5594-073478300 1413468261_thumb.png

 

#!/usr/bin/perl
#
use RRDs;

my $rrddbname = 'qamrrd';
my $rrd = '/var/www/mrtg/rra';
my $img = '/var/www/mrtg/qamrrd';
my $snmp_host = '10.20.30.40';
my $snmp_community = 'public';
my $snmp_oid = '.1.3.6.1.4.1.32285.2.2.1.3004.101.1.6.1';

my $qama = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.1 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qama);
my $qamb = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.2 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qamb);
my $qamc = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.3 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qamc);
my $qamd = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.4 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qamd);
my $qame = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.5 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qame);
my $qamf = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.6 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qamf);
my $qamg = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.7 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qamg);
my $qamh = `snmpwalk -Os -c $snmp_community -v2c $snmp_host $snmp_oid.8 | sed 's/\"//g' | cut -f 4 -d " "`; chomp ($qamh);

# if rrdtool database doesn't exist, create it
if (! -e "$rrd/$rrddbname.rrd") {
   RRDs::create "$rrd/$rrddbname.rrd",
   "-s 60",
"DS:qama:GAUGE:600:0:60000",
"DS:qamb:GAUGE:600:0:60000",
"DS:qamc:GAUGE:600:0:60000",
"DS:qamd:GAUGE:600:0:60000",
"DS:qame:GAUGE:600:0:60000",
"DS:qamf:GAUGE:600:0:60000",
"DS:qamg:GAUGE:600:0:60000",
"DS:qamh:GAUGE:600:0:60000",
"RRA:AVERAGE:0.5:1:2880",
"RRA:AVERAGE:0.5:30:672",
"RRA:AVERAGE:0.5:120:732",
"RRA:AVERAGE:0.5:720:1460";
}

# insert values into rrd database
RRDs::update "$rrd/$rrddbname.rrd",
"-t", "qama:qamb:qamc:qamd:qame:qamf:qamg:qamh",
"N:$qama:$qamb:$qamc:$qamd:$qame:$qamf:$qamg:$qamh";

# Generate graphs
CreateGraphs("day");
CreateGraphs("week");
CreateGraphs("month");
CreateGraphs("year");

#------------------------------------------------------------------------------

sub CreateGraphs($){
my $period = shift;

RRDs::graph "$img/$rrddbname-$period.png",
"-s -1$period",
"-r",
"-t Sumavision QAM Load",
"-h", "200", "-w", "600",
"-l 0",
"-u 50000",
"-a", "PNG",
"-v Kbps",
"DEF:qamag=$rrd/$rrddbname.rrd:qama:AVERAGE",
"DEF:qambg=$rrd/$rrddbname.rrd:qamb:AVERAGE",
"DEF:qamcg=$rrd/$rrddbname.rrd:qamc:AVERAGE",
"DEF:qamdg=$rrd/$rrddbname.rrd:qamd:AVERAGE",
"DEF:qameg=$rrd/$rrddbname.rrd:qame:AVERAGE",
"DEF:qamfg=$rrd/$rrddbname.rrd:qamf:AVERAGE",
"DEF:qamgg=$rrd/$rrddbname.rrd:qamg:AVERAGE",
"DEF:qamhg=$rrd/$rrddbname.rrd:qamh:AVERAGE",

"LINE2:qamag#FF0000:QAM-1",
"GPRINT:qamag:LAST:      Current\\: %8.0lf",
"GPRINT:qamag:MIN: Min\\: %8.0lf",
"GPRINT:qamag:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qamag:MAX: Max\\: %8.0lf\\n",

"LINE2:qambg#FFA500:QAM-2",
"GPRINT:qambg:LAST:      Current\\: %8.0lf",
"GPRINT:qambg:MIN: Min\\: %8.0lf",
"GPRINT:qambg:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qambg:MAX: Max\\: %8.0lf\\n",

"LINE2:qamcg#FF00FF:QAM-3",
"GPRINT:qamcg:LAST:      Current\\: %8.0lf",
"GPRINT:qamcg:MIN: Min\\: %8.0lf",
"GPRINT:qamcg:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qamcg:MAX: Max\\: %8.0lf\\n",

"LINE2:qamdg#008000:QAM-4",
"GPRINT:qamdg:LAST:      Current\\: %8.0lf",
"GPRINT:qamdg:MIN: Min\\: %8.0lf",
"GPRINT:qamdg:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qamdg:MAX: Max\\: %8.0lf\\n",

"LINE2:qameg#0000FF:QAM-5",
"GPRINT:qameg:LAST:      Current\\: %8.0lf",
"GPRINT:qameg:MIN: Min\\: %8.0lf",
"GPRINT:qameg:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qameg:MAX: Max\\: %8.0lf\\n",

"LINE2:qamfg#0000A0:QAM-6",
"GPRINT:qamfg:LAST:      Current\\: %8.0lf",
"GPRINT:qamfg:MIN: Min\\: %8.0lf",
"GPRINT:qamfg:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qamfg:MAX: Max\\: %8.0lf\\n",

"LINE2:qamgg#800080:QAM-7",
"GPRINT:qamgg:LAST:      Current\\: %8.0lf",
"GPRINT:qamgg:MIN: Min\\: %8.0lf",
"GPRINT:qamgg:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qamgg:MAX: Max\\: %8.0lf\\n",

"LINE2:qamhg#808080:QAM-8",
"GPRINT:qamhg:LAST:      Current\\: %8.0lf",
"GPRINT:qamhg:MIN: Min\\: %8.0lf",
"GPRINT:qamhg:AVERAGE: Avg\\: %8.0lf",
"GPRINT:qamhg:MAX: Max\\: %8.0lf\\n",

"HRULE:45000#FF0000",
"HRULE:40000#00FF00",
"HRULE:0#000000";

   if ($ERROR = RRDs::error) {
print "$0: unable to generate $period graph: $ERROR\n";
   }
}

Изменено пользователем Ninja

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот скоро закончу и выложу скрипт и шаблоны для zabbix:C508,C515CI,C545.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот скоро закончу и выложу скрипт и шаблоны для zabbix:C508,C515CI,C545.

 

Если поделитесь для c508 было бы супер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот скоро закончу и выложу скрипт и шаблоны для zabbix:C508,C515CI,C545.

 

Вы справились с шаблоном? Я используя заббикс получаю от шасси и карт только текстовые данные. И поэтому не получается нарисовать график

 

Пример

linux-xxbr:~ # snmpwalk -v 2c -c public 192.168.1.100 iso.3.6.1.4.1.32285.2.2.1.2009.101.1.7.1.1

SNMPv2-SMI::enterprises.32285.2.2.1.2009.101.1.7.1.1 = STRING: "66353 Kbps"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mugurИспользуйте внешнюю проверку и возможно - низкоуровневый поиск. Там ничего сложного. Мне пока просто немного некогда этим заниматься.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mugurИспользуйте внешнюю проверку и возможно - низкоуровневый поиск. Там ничего сложного. Мне пока просто немного некогда этим заниматься.

 

Спасибо zedsh за подсказку)) По этой статье сделал то что было нужно

 

http://vam.in.ua/index.php/it/19-zabbix/92--zabbixtripplite.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно развивать общими силами шаблон для мониторинга. В архиве мой шаблон и скрипт съёма. Можете использовать их и модифицировать.

https://www.dropbox.com/s/vn9qcjhs5xggj43/suma.zip?dl=0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.