ipfm 우분투 IP Flow Meter (IPFM) 네트워크 bandwidth 툴 (콘솔에서 가능)
로빈아빠
본문
ipfm
IP Flow Meter (IPFM) is a bandwidth analysis tool, that measures how much bandwidth specified hosts use on their Internet link.
Current Stable Version :- 0.11.5
Install ipfm in Ubuntu
sudo apt-get install ipfm
This will complete the installation
Now if you want to configure this for your network you need to copy example configuration file from /usr/share/doc/ipfm/examples if you want to check this file click here
once you configure this file you need to start the service using the following command
sudo /etc/init.d/ipfm start
If you want more details and available options check man page
설치후에 /etc/ipfm.conf 를 수정해야한다.
설정후에 두번째줄에 Disable 를 #으로 막아주면 끝..
ipfm 서비스 재시작.
기록은 /var/log/ipfm 에 모인다
I try to find this template but no luck, so I decided to create it myself...
It is very useful for network administrators, sometimes clients require a chart with their bandwidth use, my boss also
Tools I use:
1) IPFM - v0.11.4
2) Cacti - v0.8.7e
IPFM Configuration
Dumping statistics every 5 minutes.
You can use also APPEND instead of REPLACE (Script is optimizad for that to but will slow down after few weeks of logging)
Code:
cat /etc/ipfm/ipfm.conf | grep -vE "^#|^$"
DEVICE eth0
NOPROMISC
LOG 192.168.0.0/255.255.255.0 NOT WITH 192.168.0.0/255.255.255.0
FILENAME "/var/log/ipfm/ipfm-global.log"
DUMP EVERY 5 minutes
CLEAR ALWAYS
NORESOLVE
REPLACE
DEVICE eth0
NOPROMISC
LOG 192.168.0.0/255.255.255.0 NOT WITH 192.168.0.0/255.255.255.0
FILENAME "/var/log/ipfm/ipfm-global.log"
DUMP EVERY 5 minutes
CLEAR ALWAYS
NORESOLVE
REPLACE
CACTI Cron Job
For this to work we must synchronize IPFM dump with cacti Cron job
Polling every 5 minutes with debug
Code:
crontab -e -u cacti
*/5 * * * * php /var/www/html/cacti/poller.php >> /var/log/cacti_pool.log 2>&1
*/5 * * * * php /var/www/html/cacti/poller.php >> /var/log/cacti_pool.log 2>&1
Patch cacti php code
Because IPFM calculates bandwidth every 5 minutes and cacti believes that is per second, then we should divide it by 300.
1) File /var/www/cacti/lib/rrd.php
IPFM patch, modify the code at line 991, in the regex (bandwith summation) and add a new option ":ipfm".
Code:
if (preg_match_all("/\|sum:(\d|auto):(current|total|atomic):(\d):(\d+|auto)(:ipfm)?\|/", $graph_variables[$field_name][$graph_item_id], $matches, PREG_SET_ORDER)) {
2) File /var/www/cacti/lib/graph_variables.php
IPFM patch, add this code (3 lines) after line 475, before transformation in (bytes,KB,MB,GB,TB)
Code:
if($regexp_match_array[5] == ":ipfm")
{
$summation /= 300;
}
{
$summation /= 300;
}
3) Usage of patch
Console -> Graph Templates -> "Graph Name" -> Graph Template Items -> Text Format
This is useful for [Graph Item Type] = "COMMENT"
Ex: "Total In: |sum:auto:current:2:auto:ipfm|<HR>"
Script Code
It must be placed in "/var/www/cacti/scripts/ipfm_host" or in your cacti install path.
This script is use in Data Input Methods "sh <path_cacti>/scripts/ipfm_host <ip>"
Code:
cat ipfm_host
#!/bin/sh
#IPFM Log
FILE="/var/log/ipfm/ipfm-global.log"
#Debug
#echo `date` :: `pwd` :: $0 :: `whoami` :: $1 >> /server/ipfm/debug.log
awk -v host=$1 '
BEGIN{
DATA=0;
}
{
if($1==host)
{
DATA = "IPFM_Input:" $2 " IPFM_Output:" $3 " IPFM_Total:" $4;
}
}
END{
if(!DATA)
{
print "IPFM_Input:0 IPFM_Output:0 IPFM_Total:0";
}
else
{
print DATA;
}
}
' $FILE
#!/bin/sh
#IPFM Log
FILE="/var/log/ipfm/ipfm-global.log"
#Debug
#echo `date` :: `pwd` :: $0 :: `whoami` :: $1 >> /server/ipfm/debug.log
awk -v host=$1 '
BEGIN{
DATA=0;
}
{
if($1==host)
{
DATA = "IPFM_Input:" $2 " IPFM_Output:" $3 " IPFM_Total:" $4;
}
}
END{
if(!DATA)
{
print "IPFM_Input:0 IPFM_Output:0 IPFM_Total:0";
}
else
{
print DATA;
}
}
' $FILE
관련링크
댓글목록
등록된 댓글이 없습니다.