R65 / R55 Script – Resource Usage Report

Below is a bash/sh script to log the resouces of a R55/R65 Check Point firewall. The following resources are recorded,

  1. Free Memory
  2. CPU Usage
  3. Concurrent Connections
  4. Peak Connections
  5. Time
  6. Date

The script will build a .csv file which can then be opened using excel, and the required data (columns) can be selected and converted into graphs. The scripts can be found below,

IPSO

# Checkpoint IPSO R55/R65 Resource Monitoring Tool v3 - Felix
# output is stored in a csv file using the $log variable 
# 
#!/bin/sh 

## Import Environment Variables
. /var/etc/pm_profile && 
. /opt/CPsuite-R??/svn/tmp/.CPprofile.csh

## If required create a directory
if [ -d != /var/log/resource_report ] 
	then
	mkdir /var/log/resource_report  2>/dev/null
fi

## if required create a README
if [ -e != /var/log/resource_report/README.txt ]
	then
	head -5 $0  > /var/log/resource_report/README.txt
fi

## Assign Variables
tmp=/tmp/cp_resource.$$
log=/var/log/resource_report/rreport-`date +"%Y%m%d"`.csv

## Log rotate reports older then 31 days
find /var/log/resource_report/rreport* -mtime +31 -exec rm -f {} \; 2>/dev/null

## Gather stats
fw ctl pstat >> $tmp  2>/dev/null

if [ $? != 0 ]
then
    logger -t cp_resource_report -p daemon.err "Unable to run \"fw ctl pstat\"" 
    exit 1
else
    vmstat 1 5 >> $tmp  2>/dev/null
RC=$?
fi
if [ $RC != 0 ]
then
    logger -t cp_resource_report -p daemon.err "Unable to run \"vmstat\"" 
	exit 1
else
    peakconn=`grep "peak concurrent" $tmp | awk ' { print $1 } '`
    cpuidle=`tail -1 $tmp | awk ' { print $NF } '`
    cpu=`expr 100 - $cpuidle`
    conn=`grep recovered $tmp | awk ' { print $7 } '`
    free=`tail -1 $tmp | awk ' { print $4 } '`
    freemb=`expr $free / 1024`
fi

## Write stats to a file. If not find is present add a header
if [ ! -r ${log} ] ;
then
   echo date,time,connections,peak connections,cpu \%,free mem \(MB\)  >> ${log}
   echo `date +"%d/%m/%y"`,`date "+%H:%M:%S"`,$conn,$peakconn,${cpu},${freemb} >> ${log}
else
   echo `date +"%d/%m/%y"`,`date "+%H:%M:%S"`,$conn,$peakconn,${cpu},${freemb} >> ${log}
fi
rm -f $tmp
exit 0

SPLAT / SOLARIS

# Checkpoint Solaris / SPLAT R55/R65 Resource Monitoring Tool v3 - Felix
# output is stored in a csv file using the $log variable 
# 
#!/bin/bash

## Import Environment Variables
. /opt/CPshrd-R??/tmp/.CPprofile.sh 

## If required create a directory
if [ -d != /var/log/resource_report ] 
	then
	mkdir /var/log/resource_report  2>/dev/null
fi

## if required create a README
if [ -e != /var/log/resource_report/README.txt ]
	then
	head -5 $0 > /var/log/resource_report/README.txt
fi

## Assign Variables
tmp=/tmp/cp_resource.$$
log=/var/log/resource_report/rreport-`date +"%Y%m%d"`.csv

## Log rotate reports older then 31 days
find /var/log/resource_report/rreport* -mtime +31 -exec rm -f {} \; 2>/dev/null

## Gather stats
fw ctl pstat >> $tmp  2>/dev/null

if [ $? != 0 ]
then
    logger -t cp_resource_report -p daemon.err "Unable to run \"fw ctl pstat\"" 
    exit 1
else
    vmstat 1 5 >> $tmp  2>/dev/null
RC=$?
fi
if [ $RC != 0 ]
then
    logger -t cp_resource_report -p daemon.err "Unable to run \"vmstat\"" 
	exit 1
else
    peakconn=`grep "peak concurrent" $tmp | awk ' { print $1 } '`
    cpuidle=`tail -1 $tmp | awk ' { print $NF } '`
    cpu=`expr 100 - $cpuidle`
    conn=`grep recovered $tmp | awk ' { print $7 } '`
    free=`tail -1 $tmp | awk ' { print $4 } '`
    freemb=`expr $free / 1024`
fi

## Write stats to a file. If not find is present add a header
if [ ! -r ${log} ] ;
then
   echo date,time,connections,peak connections,cpu \%,free mem \(MB\)  >> ${log}
   echo `date +"%d/%m/%y"`,`date "+%H:%M:%S"`,$conn,$peakconn,${cpu},${freemb} >> ${log}
else
   echo `date +"%d/%m/%y"`,`date "+%H:%M:%S"`,$conn,$peakconn,${cpu},${freemb} >> ${log}
fi
rm -f $tmp
exit 0
Rick Donato