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.

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this