Skip to content

Commit a733353

Browse files
author
mcramer
committed
Added: vlogger mysql usage to store traffic reports
Added: interface module web traffic statistics Fixed: mail_traffic is now reported to master server instead of local Fixed: GRANTs for slave server database user on master database
1 parent bb5171d commit a733353

29 files changed

+926
-8
lines changed

install/dist/conf/centos52.conf.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,7 @@
148148
$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
149149
$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
150150

151+
//* vlogger
152+
$conf['vlogger']['config_dir'] = '/etc';
151153

152154
?>

install/dist/conf/centos53.conf.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,7 @@
148148
$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
149149
$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
150150

151+
//* vlogger
152+
$conf['vlogger']['config_dir'] = '/etc';
151153

152154
?>

install/dist/conf/debian40.conf.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,7 @@
148148
$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
149149
$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico';
150150

151+
//* vlogger
152+
$conf['vlogger']['config_dir'] = '/etc';
151153

152154
?>

install/dist/conf/fedora9.conf.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,7 @@
148148
$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
149149
$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano';
150150

151+
//* vlogger
152+
$conf['vlogger']['config_dir'] = '/etc';
151153

152154
?>

install/dist/conf/gentoo.conf.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,7 @@
9797
$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
9898
$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico';
9999

100+
//* vlogger
101+
$conf['vlogger']['config_dir'] = '/etc';
100102

101103
?>

install/dist/conf/opensuse110.conf.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,8 @@
148148
$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini';
149149
$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico';
150150

151+
//* vlogger
152+
$conf['vlogger']['config_dir'] = '/etc';
153+
151154

152155
?>

install/install.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@
195195
swriteln('Configuring Apache');
196196
$inst->configure_apache();
197197

198+
//** Configure vlogger
199+
swriteln('Configuring vlogger');
200+
$inst->configure_vlogger();
201+
198202
//* Configure Firewall
199203
swriteln('Configuring Firewall');
200204
$inst->configure_firewall();
@@ -359,6 +363,10 @@
359363
$conf['services']['web'] = true;
360364
swriteln('Configuring Apache');
361365
$inst->configure_apache();
366+
367+
//** Configure vlogger
368+
swriteln('Configuring vlogger');
369+
$inst->configure_vlogger();
362370
}
363371

364372
//** Configure Firewall

install/lib/installer_base.lib.php

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,21 @@ public function grant_master_database_rights()
318318
if(!$this->dbmaster->query($query)) {
319319
$this->error('Unable to create database user in master database: '.$conf['mysql']['master_ispconfig_user'].' Error: '.$this->dbmaster->errorMessage);
320320
}
321+
322+
$query = "GRANT SELECT, INSERT, UPDATE ON ".$conf['mysql']['master_database'].".`mail_traffic` "
323+
."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$src_host."' "
324+
."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
325+
if(!$this->dbmaster->query($query)) {
326+
$this->error('Unable to create database user in master database: '.$conf['mysql']['master_ispconfig_user'].' Error: '.$this->dbmaster->errorMessage);
327+
}
328+
329+
$query = "GRANT SELECT, INSERT, UPDATE ON ".$conf['mysql']['master_database'].".`web_traffic` "
330+
."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$src_host."' "
331+
."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
332+
if(!$this->dbmaster->query($query)) {
333+
$this->error('Unable to create database user in master database: '.$conf['mysql']['master_ispconfig_user'].' Error: '.$this->dbmaster->errorMessage);
334+
}
335+
321336
}
322337

323338
}
@@ -856,7 +871,32 @@ public function configure_firewall()
856871

857872
}
858873

859-
874+
public function configure_vlogger()
875+
{
876+
global $conf;
877+
878+
//** Configure vlogger to use traffic logging to mysql (master) db
879+
$configfile = 'vlogger-dbi.conf';
880+
if(is_file($conf["vlogger"]["config_dir"].'/'.$configfile)) copy($conf["vlogger"]["config_dir"].'/'.$configfile,$conf["vlogger"]["config_dir"].'/'.$configfile.'~');
881+
if(is_file($conf["vlogger"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["vlogger"]["config_dir"].'/'.$configfile.'~');
882+
$content = rf("tpl/".$configfile.".master");
883+
if($conf['mysql']['master_slave_setup'] == 'y') {
884+
$content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['master_ispconfig_user'],$content);
885+
$content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['master_ispconfig_password'], $content);
886+
$content = str_replace('{mysql_server_database}',$conf['mysql']['master_database'],$content);
887+
$content = str_replace('{mysql_server_ip}',$conf["mysql"]["master_host"],$content);
888+
} else {
889+
$content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
890+
$content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
891+
$content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
892+
$content = str_replace('{mysql_server_ip}',$conf["mysql"]["host"],$content);
893+
}
894+
wf($conf["vlogger"]["config_dir"].'/'.$configfile,$content);
895+
exec('chmod 600 '.$conf["vlogger"]["config_dir"].'/'.$configfile);
896+
exec('chown root:root '.$conf["vlogger"]["config_dir"].'/'.$configfile);
897+
898+
}
899+
860900
public function install_ispconfig()
861901
{
862902
global $conf;

install/sql/ispconfig3.sql

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,6 +1016,20 @@ CREATE TABLE `web_database` (
10161016
) ENGINE=MyISAM AUTO_INCREMENT=1;
10171017

10181018

1019+
-- --------------------------------------------------------
1020+
1021+
--
1022+
-- Table structure for table `web_traffic`
1023+
--
1024+
1025+
CREATE TABLE `web_traffic` (
1026+
`hostname` varchar(255) NOT NULL,
1027+
`traffic_date` date NOT NULL,
1028+
`traffic_bytes` bigint(32) unsigned NOT NULL default '0',
1029+
PRIMARY KEY (`hostname`,`traffic_date`)
1030+
) ENGINE=MyISAM;
1031+
1032+
10191033
-- --------------------------------------------------------
10201034

10211035
--

install/tpl/apache_ispconfig.conf.master

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
################################################
66

77
LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig
8-
CustomLog "| /usr/sbin/vlogger -s access.log -t \"%Y%m%d-access.log\" /var/log/ispconfig/httpd" combined_ispconfig
8+
CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" -d \"/etc/vlogger-dbi.conf\" /var/log/ispconfig/httpd" combined_ispconfig
99

1010
<Directory /var/www/clients>
1111
AllowOverride None

0 commit comments

Comments
 (0)