HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   General (http://www.howtoforge.com/forums/forumdisplay.php?f=25)
-   -   ISP Config 3 Traffic Quota (http://www.howtoforge.com/forums/showthread.php?t=44344)

Corvinus 25th March 2010 12:05

ISP Config 3 Traffic Quota
 
One of my site costumers has gone over his designated traffic quota by a whole GiB. I set their limit to 1000MB, and WebTraffic shows 2199MB.

Nothing happens?

I can't find any settings on warnings or automatic site blocking when they surpass the allowed traffic?

Please advise.

Kind regards,
Jonny

Corvinus 26th March 2010 15:25

bump.

Gotta be some info on this matter? Are there no alert system or automatic blocking functions at all in ISP Config 3?

till 26th March 2010 19:38

Update to ispconfig 3.0.2.1

Corvinus 26th March 2010 20:11

Update complete without any problems, I'll wait and see if this changes anything.

Thanks Till.

Corvinus 28th March 2010 03:14

I have run the newly updated version for 2 days now. Nothing seems to be disabling the site that is now at 2800mb which clearly is over the 1000mb limit.

Please advise as how to troubleshoot this properly.

till 28th March 2010 22:42

You can use the code from the cron_daily.php scipt, especially the sql quieries that detect the quota to check what's wrong with your installation.

Corvinus 29th March 2010 00:44

I have done as you asked and checked your script:
/usr/local/ispconfig/server/cron_daily.php

It seems it's your SQL query that's faulty. If you think it works properly, then you have missed this logical error.

You use this query to check for the month's traffic, which will return a row-set of dates:
PHP Code:

SELECT traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname '$domain' 

So when you run the below PHP code, you only retrieve the traffic from the first date of current month:
PHP Code:

$web_traffic $tmp['traffic_bytes']/1024/1024

Which should be cast to int by the way:
PHP Code:

$web_traffic = (int)$tmp['traffic_bytes']/1024/1024

It looks to me like you really meant to use an SQL statement like this instead to return all the month's bytes in 1 row. This will return all the month's traffic, and with the rest of your PHP code compare it correctly against the traffic_quota column from the table web_domain:
PHP Code:

SELECT SUM(traffic_bytes) As total_traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname '$domain' 

And change the $web_traffic code to:
PHP Code:

$web_traffic = (int)$tmp['total_traffic_bytes']/1024/1024

To put it simple, your script currently only locks a site if the first day of traffic for the current month is over the traffic quota that is supposed to be for the whole month. I have made these modifications to your script in my version of ISP Config, and it works properly now if I run: /usr/local/ispconfig/server/cron_daily.sh

Kind regards,
Jonny

till 29th March 2010 17:15

Yes, youre right. I must have mixed up the web traffic with the mail traffic table format. I've added this to the bugtracker.


All times are GMT +2. The time now is 02:31.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.