2011-08-05 18:42:32 +02:00
|
|
|
#!/usr/bin/perl
|
2014-10-05 23:34:20 +02:00
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
|
|
|
joomla-sessions - Munin plugin for different stats over a Joomla MySQL
|
|
|
|
database
|
|
|
|
|
|
|
|
=head1 CONFIGURATION
|
|
|
|
|
|
|
|
=over
|
|
|
|
|
|
|
|
=item env.mysql
|
|
|
|
|
|
|
|
Optional, path to the MySQL binary. Defaults to C</usr/bin/mysql>.
|
|
|
|
|
|
|
|
=item env.mysqlopts
|
|
|
|
|
|
|
|
Optional, command line options for "mysql". May be used to set
|
|
|
|
username and password. No default value.
|
|
|
|
|
|
|
|
=item env.database
|
|
|
|
|
|
|
|
Optional, name of the joomla database name. Defaults to C<mydatabase>.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=head2 Configuration example
|
|
|
|
|
|
|
|
|
|
|
|
[joomla_sessions*]
|
|
|
|
env.mysql /usr/bin/mysql # MySQL binary (optional)
|
|
|
|
env.mysqlopts -u <MYSQL_USERNAME> -p<MYSQL_PASSWORD> # How to connect to the database (optional if no password is set)
|
|
|
|
env.database databasename # Joomla database (optional)
|
|
|
|
|
|
|
|
=head1 AUTHORS
|
|
|
|
|
|
|
|
Copyright (C) 2011 - Csaba Martha (http://www.zenebuzi.com)
|
|
|
|
|
|
|
|
Based on Rowdy Schwachfer (http://rowdy.nl) 's Spotweb plugin
|
|
|
|
|
|
|
|
=head1 LICENSE
|
|
|
|
|
|
|
|
GPLv3 or later
|
|
|
|
|
|
|
|
|
|
|
|
=cut
|
|
|
|
|
2011-08-05 18:42:32 +02:00
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
|
|
|
|
my $MYSQL = $ENV{mysql} || "/usr/bin/mysql";
|
|
|
|
my $MYSQLOPTS = $ENV{mysqlopts} || "";
|
|
|
|
my $DATABASE = $ENV{database} || "mydatabase";
|
|
|
|
|
|
|
|
# Output for config
|
|
|
|
if(defined $ARGV[0] && $ARGV[0] eq 'config') {
|
|
|
|
print <<EOC
|
|
|
|
graph_title Joomla Actual User Sessions (Totals)
|
|
|
|
graph_vlabel Session Number
|
|
|
|
graph_category Joomla
|
|
|
|
anonsessions.label Anonym Sessions
|
|
|
|
graph_scale no
|
|
|
|
all.warning 10000
|
|
|
|
all.critical 15000
|
|
|
|
EOC
|
|
|
|
;
|
|
|
|
print <<EOC
|
|
|
|
all.label All
|
|
|
|
EOC
|
|
|
|
;
|
|
|
|
print <<EOC
|
|
|
|
registered.label Registered
|
|
|
|
EOC
|
|
|
|
;
|
|
|
|
|
|
|
|
exit 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
#Anonym Session count
|
|
|
|
my $anonsessions = `$MYSQL $MYSQLOPTS -e 'SELECT COUNT( session_id ) FROM $DATABASE.jos_session WHERE usertype = "''"'`;
|
|
|
|
$anonsessions =~ /(\d+)/;
|
|
|
|
print "anonsessions.value ".$1."\n";
|
|
|
|
|
|
|
|
#Registered count
|
|
|
|
my $registered = `$MYSQL $MYSQLOPTS -e 'SELECT COUNT(usertype) FROM $DATABASE.jos_session WHERE usertype = "'Registered'"'`;
|
|
|
|
$registered =~/(\d+)/;
|
|
|
|
print "registered.value ".$1."\n";
|
|
|
|
|
|
|
|
#All count
|
|
|
|
my $all = `$MYSQL $MYSQLOPTS -e 'SELECT COUNT(usertype) FROM $DATABASE.jos_session'`;
|
|
|
|
$all =~/(\d+)/;
|
2014-10-05 01:19:22 +02:00
|
|
|
print "all.value ".$1."\n";
|