레이블이 템플릿인 게시물을 표시합니다. 모든 게시물 표시
레이블이 템플릿인 게시물을 표시합니다. 모든 게시물 표시

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}