Jump to content

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";
   }
}

Edited by Ninja

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

Вот скоро закончу и выложу скрипт и шаблоны для 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"

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.