2012년 10월 2일 화요일

MRTG cpu,mem,hdd,load average,active user, process,traffic 템플릿

아래의 출처에서 다운받은 템플릿.

해당 템플릿을 다운 받고 cfgmaker 에서 옵션을 --host-template=host-generic.htp 추가하여 사용하면된다.

다만 해당사이트에서 다운받은 템플릿으로 생성한 cfg 파일을 indexmaker로 만들때 아래와 같은 에러메시지가 뜬다.

ERROR: no H1 line pagetop property in 아이피-memory section

indexmaker에서 pagetop 옵션에는 H1 태그로 찾는 게 기본값인데, 해당 템플릿에서는 H1 지정이 안되어 있다.

해당 문제는 -section 옵션으로 해결할 수 있다.

아래의 옵션중에 h1 외의 옵션으로 설정하여 실행하면 된다.


 - section = h1 섹션의 헤딩으로 PageTop에 h1 태그를 사용 (기본값) - section = title 그래프 섹션 헤딩으로 Title을 사용 - section = name 섹션 헤딩으로 그래프 이름을 사용 - section = descr 섹션 헤딩으로 그래프 description을 사용 - section = portname 섹션 헤딩으로 PageTop에 port 이름 항목을 사용


아래는 H1 태그 추가한 버젼.



# Generic host template for all systems support MIB-II host resources# MIB.  Will take care of storage devices as well, but watch out for# changes in enumeration caused by inserting USB devices!# Watch out for lines being wrapped by broken editing software$head_lines .= "#---------------------------------------------------------------------\n";if( $sysdescr =~ /linux/i ) {  $target_lines .= "routers.cgi*Icon: linux-sm.gif\n";} elsif( $sysdescr =~ /(windows|microsoft)/i ) {  $target_lines .= "routers.cgi*Icon: windows-sm.gif\n";} elsif( $sysdescr =~ /IBM/i ) {  $target_lines .= "routers.cgi*Icon: aix-sm.gif\n";} elsif( $sysdescr =~ /(sun|solaris)/i ) {  $target_lines .= "routers.cgi*Icon: sun-sm.gif\n";} elsif( $sysdescr =~ /cisco/i ) {  $target_lines .= "routers.cgi*Icon: cisco-sm.gif\n";}$target_lines .= <<ECHO;routers.cgi*Description: $router_name ($sysname)routers.cgi*ShortDesc: $sysname#-------------------------------------------------ECHOmy($cpuoid) = oid_pick($router_connect,$v3opt,"1.3.6.1.4.1.2021.11.11.0",  "1.3.6.1.4.1.9.2.1.58.0");if($cpuoid) { # this uses the UCD MIB or Cisco MIB$target_lines .= <<ECHO;######################################## CPU loadTarget[$router_name-cpu]: 100 - $cpuoid&$cpuoid:$router_connectPageTop[$router_name-cpu]: <H1>$router_name CPU usage</H1>Title[$router_name-cpu]: CPU on $router_nameMaxbytes[$router_name-cpu]: 100Options[$router_name-cpu]: gaugeYLegend[$router_name-cpu]: percentShortLegend[$router_name-cpu]: %LegendI[$router_name-cpu]: cpu:Legend1[$router_name-cpu]: CPU usageLegend3[$router_name-cpu]: Peak CPU usagerouters.cgi*Options[$router_name-cpu]: noo, nopercent, nototal, fixunitrouters.cgi*InOut[$router_name-cpu]: norouters.cgi*ShortDesc[$router_name-cpu]:CPUrouters.cgi*Icon[$router_name-cpu]: chip-sm.gifrouters.cgi*InSummary[$router_name-cpu]: yesrouters.cgi*InCompact[$router_name-cpu]: yesrouters.cgi*Mode[$router_name-cpu]: cpurouters.cgi*MBLegend[$router_name-cpu]: 100% usageECHO} else { # lets try hrMIB  my (@cpus) = snmpwalk($router_connect,'1.3.6.1.2.1.25.3.3.1.2');  foreach my $tmpcpu (@cpus) {    $tmpcpu =~ /(\d+):\d/;    my( $instance )=$1;    my( $target_name )=$router_name.".cpu".$instance;    $target_lines .= <<ECHO;Target[$target_name]: 1.3.6.1.2.1.25.3.3.1.2.$instance&1.3.6.1.2.1.25.3.3.1.2.$instance:$router_connectTitle[$target_name]: $sysname processor $instanceMaxBytes[$target_name]: 100Options[$target_name]:  gauge, unknaszero, nooDirectory[$target_name]: $directory_nameWithPeak[$target_name]: wmyYLegend[$target_name]: % UtilisationShortLegend[$target_name]: %Legend1[$target_name]: 1min CPU load on proc$instanceLegend3[$target_name]: Max 5min CPU load on proc$instanceLegendI[$target_name]: cpu$instance:PageTop[$target_name]: <H1>$sysname Processor Load</H1>routers.cgi*ShortDesc[$target_name]:  CPU #$instancerouters.cgi*Options[$target_name]: nopercent, nototal, fixunitrouters.cgi*InOut[$target_name]: norouters.cgi*Icon[$target_name]: chip-sm.gifrouters.cgi*InSummary[$target_name]: yesrouters.cgi*InCompact[$target_name]: yesrouters.cgi*Mode[$target_name]: cpurouters.cgi*MBLegend[$target_name]: 100% usageECHO    if($#cpus > 0) {                $target_lines .= "routers.cgi*Graph[$target_name]: $router_name-allcpu average\n";                $target_lines .= "routers.cgi*InMenu[$target_name]: no\n";        }  }  if($#cpus > 0) {        $target_lines .= <<ECHO;routers.cgi*Title[$router_name-allcpu]: All CPUs on $router_namerouters.cgi*Icon[$router_name-allcpu]: chip-sm.gifrouters.cgi*ShortDesc[$router_name-allcpu]: CPUrouters.cgi*LegendAI[$router_name-allcpu]: cpu :ECHO  }}my($rmemoid) = oid_pick($router_connect,$v3opt,"1.3.6.1.4.1.2021.4.6.0");my($smemoid) = oid_pick($router_connect,$v3opt,"1.3.6.1.4.1.2021.4.4.0");if($rmemoid and $smemoid) { # this uses the UCD MIBmy($maxreal, $maxswap) = snmpget($router_connect,        "1.3.6.1.4.1.2021.4.5.0","1.3.6.1.4.1.2021.4.3.0");$target_lines .= <<ECHO;######################################## Memory usedTarget[$router_name-memory]: $rmemoid&$smemoid:$router_connect * 1024PageTop[$router_name-memory]: <H1>$router_name Memory Available </H1>Title[$router_name-memory]: Available Memory on $router_nameSetEnv[$router_name-memory]: MRTG_INT_DESCR="Memory"MaxBytes1[$router_name-memory]: $maxrealMaxBytes2[$router_name-memory]: $maxswapOptions[$router_name-memory]: gaugeYLegend[$router_name-memory]: BytesShortLegend[$router_name-memory]: bLegendI[$router_name-memory]: real:LegendO[$router_name-memory]: swap:Legend1[$router_name-memory]: Available real memoryLegend2[$router_name-memory]: Available swap spaceLegend3[$router_name-memory]: Peak available realLegend4[$router_name-memory]: Peak available swaprouters.cgi*Options[$router_name-memory]: nototalrouters.cgi*Mode[$router_name-memory]: memoryrouters.cgi*ShortDesc[$router_name-memory]: Memoryrouters.cgi*Description[$router_name-memory]: Memory available: $router_namerouters.cgi*InOut[$router_name-memory]: norouters.cgi*InSummary[$router_name-memory]: yesrouters.cgi*InCompact[$router_name-memory]: yesrouters.cgi*Icon[$router_name-memory]: chip-sm.gifrouters.cgi*MBLegend[$router_name-memory]: 100% usageECHO}my (@storage) = snmpwalk($router_connect,'1.3.6.1.2.1.25.2.3.1.4');my( $fscnt ) = 0;foreach my $tmps (@storage) {  $tmps =~ /(\d+):(\d+)/;  next if(!$2);  my($instance,$blocksize)=($1,$2);  my($diskname,$disksize,$disktype) =  snmpget($router_connect,'1.3.6.1.2.1.25.2.3.1.3.'.$instance,   '1.3.6.1.2.1.25.2.3.1.5.'.$instance, '1.3.6.1.2.1.25.2.3.1.2.'.$instance);  $disktype = $1 if($disktype =~ /\.(\d+)$/);  next if(!$diskname or !$disksize    or ($disktype!=2 and $disktype!=3 and $disktype!=4));  my($shortdisk) = $instance;  $shortdisk = $1 if($diskname =~ /^(\w):/);  my($target_name)=$router_name.".disk.".$shortdisk;  my($maxsize)= $disksize * $blocksize;  if($disktype == 2 ) {      # memory use        next if($rmemoid); # we already have it    $target_lines .= <<ECHO;######################################## Memory usedTarget[$router_name-memory]: 1.3.6.1.2.1.25.2.3.1.6.$instance&1.3.6.1.2.1.25.2.3.1.5.$instance:$router_connect * $blocksizePageTop[$router_name-memory]: <H1>$router_name Memory Used</H1>Title[$router_name-memory]: Memory used on $router_nameSetEnv[$router_name-memory]: MRTG_INT_DESCR="Memory"MaxBytes[$router_name-memory]: $maxsizeOptions[$router_name-memory]: gaugeYLegend[$router_name-memory]: BytesShortLegend[$router_name-memory]: bLegendI[$router_name-memory]: used:LegendO[$router_name-memory]: size:Legend1[$router_name-memory]: Memory usedLegend2[$router_name-memory]: Memory totalLegend3[$router_name-memory]: Peak memory usedLegend4[$router_name-memory]: Peak memory totalrouters.cgi*Options[$router_name-memory]: nototal  noorouters.cgi*Mode[$router_name-memory]: memoryrouters.cgi*ShortDesc[$router_name-memory]: Memoryrouters.cgi*Description[$router_name-memory]: Memory used: $router_namerouters.cgi*InOut[$router_name-memory]: norouters.cgi*InSummary[$router_name-memory]: yesrouters.cgi*InCompact[$router_name-memory]: yesrouters.cgi*Icon[$router_name-memory]: chip-sm.gifrouters.cgi*MBLegend[$router_name-memory]: 100% usageECHO  } elsif($disktype == 3 ) { # swap use        next if($smemoid);    $target_lines .= <<ECHO;######################################## Swap usedTarget[$router_name-swap]: 1.3.6.1.2.1.25.2.3.1.6.$instance&1.3.6.1.2.1.25.2.3.1.5.$instance:$router_connect * $blocksizePageTop[$router_name-swap]: <H1>$router_name Swap space used</H1>Title[$router_name-swap]: Swap space used on $router_nameSetEnv[$router_name-swap]: MRTG_INT_DESCR="Swap"MaxBytes[$router_name-swap]: $maxsizeOptions[$router_name-swap]: gaugeYLegend[$router_name-swap]: BytesShortLegend[$router_name-swap]: bLegendI[$router_name-swap]: used:LegendO[$router_name-swap]: size:Legend1[$router_name-swap]: Swap space usedLegend2[$router_name-swap]: Swap space totalLegend3[$router_name-swap]: Peak swap usedLegend4[$router_name-swap]: Peak swap totalrouters.cgi*Options[$router_name-swap]: nototal noorouters.cgi*Mode[$router_name-swap]: memoryrouters.cgi*ShortDesc[$router_name-swap]: Swaprouters.cgi*Description[$router_name-swap]: Swap space used: $router_namerouters.cgi*InOut[$router_name-swap]: norouters.cgi*InSummary[$router_name-swap]: yesrouters.cgi*InCompact[$router_name-swap]: yesrouters.cgi*Icon[$router_name-swap]: chip-sm.gifrouters.cgi*MBLegend[$router_name-swap]: 100% usageECHO  } elsif($disktype == 4 ) { # filesystems    $fscnt += 1;$target_lines .= <<ECHO;######################################## Filesystem $disknameTarget[$target_name]: 1.3.6.1.2.1.25.2.3.1.6.$instance&1.3.6.1.2.1.25.2.3.1.6.$instance:$router_connect * $blocksizePageTop[$target_name]: <H1>$router_name Disk space used ($diskname)</H1>Title[$target_name]: Disk space used on $router_name ($diskname)SetEnv[$target_name]: MRTG_INT_DESCR="$diskname"MaxBytes[$target_name]: $maxsizeOptions[$target_name]: gaugeYLegend[$target_name]: BytesShortLegend[$target_name]: bLegendI[$target_name]: used:Legend1[$target_name]: Space usedLegend3[$target_name]: Peak usedrouters.cgi*Options[$target_name]: nototal, noorouters.cgi*Mode[$target_name]: generalrouters.cgi*ShortDesc[$target_name]: Disk: $disknamerouters.cgi*Description[$target_name]: $router_name space used on $disknamerouters.cgi*InOut[$target_name]: norouters.cgi*InMenu[$target_name]: yesrouters.cgi*InSummary[$target_name]: yesrouters.cgi*InCompact[$target_name]: yesrouters.cgi*Icon[$target_name]: dir-sm.gifrouters.cgi*Graph[$target_name]: $router_name-filesystems "Disk space" withtotal nooECHO  }}if($fscnt) {$target_lines .= <<ECHO;routers.cgi*Options[$router_name-filesystems]: availablerouters.cgi*Icon[$router_name-filesystems]: dir-sm.gifrouters.cgi*ShortDesc[$router_name-filesystems]: Filesystemsrouters.cgi*Title[$router_name-filesystems]: Filesystems on $router_nameECHO}my($laoid) = oid_pick($router_connect,$v3opt,"1.3.6.1.4.1.2021.10.1.5.2");my($laoid2) = oid_pick($router_connect,$v3opt,"1.3.6.1.4.1.2021.10.1.5.3");if($laoid and $laoid2) { # this uses the UCD MIB$target_lines .= <<ECHO;######################################## Load averageTarget[$router_name-lavg]: $laoid&$laoid2:$router_connect / 100PageTop[$router_name-lavg]: <H1>$router_name Load Average</H1>Title[$router_name-lavg]: Load Average on $router_nameSetEnv[$router_name-lavg]: MRTG_INT_DESCR="Load Average"MaxBytes[$router_name-lavg]: 1000Options[$router_name-lavg]: nopercent, gaugeYLegend[$router_name-lavg]: ProcessesShortLegend[$router_name-lavg]:  LegendI[$router_name-lavg]: 5min avg:LegendO[$router_name-lavg]: 15min avg:Legend1[$router_name-lavg]: 5-min load averageLegend2[$router_name-lavg]: 15-min load averageLegend3[$router_name-lavg]: Peak 5-min load averageLegend4[$router_name-lavg]: Peak 15-min load averagerouters.cgi*Options[$router_name-lavg]: nomax, nototal, fixunit, noorouters.cgi*Mode[$router_name-lavg]: generalrouters.cgi*ShortDesc[$router_name-lavg]: Load Avgrouters.cgi*Description[$router_name-lavg]: Load average: $router_namerouters.cgi*UnScaled[$router_name-lavg]: nonerouters.cgi*WithPeak[$router_name-lavg]: nonerouters.cgi*InOut[$router_name-lavg]: norouters.cgi*InSummary[$router_name-lavg]: yesrouters.cgi*InCompact[$router_name-lavg]: norouters.cgi*Icon[$router_name-lavg]: load-sm.gifECHO}my($ucoid) = oid_pick($router_connect,$v3opt,"1.3.6.1.2.1.25.1.5.0");if($ucoid) {$target_lines .= <<ECHO;######################################## User countTarget[$router_name-users]: $ucoid&$ucoid:$router_connectPageTop[$router_name-users]: <H1>$router_name Active users</H1>Title[$router_name-users]: Active Users on $router_nameMaxBytes[$router_name-users]: 1000SetEnv[$router_name-users]: MRTG_INT_DESCR="Users"Options[$router_name-users]: nopercent, gaugeYLegend[$router_name-users]: UsersShortLegend[$router_name-users]:  LegendI[$router_name-users]: UsersLegend1[$router_name-users]: Active UsersLegend3[$router_name-users]: Peak Active Usersrouters.cgi*Options[$router_name-users]: nomax, nototal, fixunit, noorouters.cgi*Mode[$router_name-users]: generalrouters.cgi*ShortDesc[$router_name-users]: Usersrouters.cgi*Description[$router_name-users]: Users on $router_namerouters.cgi*UnScaled[$router_name-users]: nonerouters.cgi*InOut[$router_name-users]: norouters.cgi*InSummary[$router_name-users]: yesrouters.cgi*InCompact[$router_name-users]: norouters.cgi*Icon[$router_name-users]: user-sm.gifECHO}my($proid) = oid_pick($router_connect,$v3opt,"1.3.6.1.2.1.25.1.6.0");if($proid) {my($maxpr) = snmpget($router_connect, "1.3.6.1.2.1.25.1.7.0");$target_lines .= <<ECHO;######################################## Process countTarget[$router_name-procs]: $proid&$proid:$router_connectPageTop[$router_name-procs]: <H1>$router_name Processes</H1>Title[$router_name-procs]: Processes on $router_nameECHOif($maxpr) {        $target_lines .= "MaxBytes[$router_name-procs]: $maxpr\n";} else {        $target_lines .= "MaxBytes[$router_name-procs]: 10000\n";}$target_lines .=  "routers.cgi*Options[$router_name-procs]: nototal, fixunit, noo"  .($maxpr?"":", nomax")."\n";$target_lines .= <<ECHO;SetEnv[$router_name-procs]: MRTG_INT_DESCR="Procs"Options[$router_name-procs]: nopercent, gaugeYLegend[$router_name-procs]: ProcessesShortLegend[$router_name-procs]:  LegendI[$router_name-procs]: ProcsLegend1[$router_name-procs]: ProcessesLegend3[$router_name-procs]: Peak Processesrouters.cgi*Mode[$router_name-procs]: generalrouters.cgi*ShortDesc[$router_name-procs]: Processesrouters.cgi*Description[$router_name-procs]: Processes on $router_namerouters.cgi*UnScaled[$router_name-procs]: nonerouters.cgi*InOut[$router_name-procs]: norouters.cgi*InSummary[$router_name-procs]: yesrouters.cgi*InCompact[$router_name-procs]: norouters.cgi*Icon[$router_name-procs]: list-sm.gifrouters.cgi*MBLegend[$router_name-procs]: Max capacityECHO}



댓글 없음:

댓글 쓰기