From 33d127366ecce4c43aa27d8a117963e37a91d689 Mon Sep 17 00:00:00 2001 From: slerena Date: Sun, 6 Apr 2008 22:11:16 +0000 Subject: [PATCH] 2008-04-09 Sancho Lerena * pandora_server_installer: Updated some strings and version. Added new servers. * lib/PandoraFMS/Config.pm: Included support for export server. * bin/pandora_export: Export server skeleton. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@794 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_server/ChangeLog | 9 ++ pandora_server/bin/pandora_export | 57 +++++++++++ pandora_server/lib/PandoraFMS/Config.pm | 18 +++- pandora_server/pandora_server_installer | 129 ++++++++++++++++++++++++ 4 files changed, 210 insertions(+), 3 deletions(-) create mode 100755 pandora_server/bin/pandora_export create mode 100755 pandora_server/pandora_server_installer diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog index bbdd3cfd87..a689251cd8 100644 --- a/pandora_server/ChangeLog +++ b/pandora_server/ChangeLog @@ -1,3 +1,12 @@ +2008-04-09 Sancho Lerena + + * pandora_server_installer: Updated some strings and version. + Added new servers. + + * lib/PandoraFMS/Config.pm: Included support for export server. + + * bin/pandora_export: Export server skeleton. + 2008-04-01 Sancho Lerena * bin/pandora_prediction: Fixed several problems with diff --git a/pandora_server/bin/pandora_export b/pandora_server/bin/pandora_export new file mode 100755 index 0000000000..00b5c89930 --- /dev/null +++ b/pandora_server/bin/pandora_export @@ -0,0 +1,57 @@ +#!/usr/bin/perl +########################################################################## +# Pandora FMS Export Server +########################################################################## +# Copyright (c) 2008 Sancho Lerena, slerena@gmail.com +# (c) 2008 Artica Soluciones Tecnologicas S.L +# 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; version 2 (only). +# +# 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, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +########################################################################## + +# Includes list +use strict; +use warnings; + +use Date::Manip; # Needed to manipulate DateTime formats of + # input, output and compare +use Time::Local; # DateTime basic manipulation +use XML::Simple; # Useful XML functions +use Time::Local; # DateTime basic manipulation +use DBI; + +# Pandora Modules +use PandoraFMS::Config; +use PandoraFMS::Tools; +use PandoraFMS::DB; + +# FLUSH in each IO (only for debug, very slooow) +# ENABLED in DEBUGMODE +# DISABLE FOR PRODUCTION +$| = 0; + +my %pa_config; + +$SIG{'TERM'} = 'pandora_shutdown'; +$SIG{'INT'} = 'pandora_shutdown'; + +# Inicio del bucle principal de programa +pandora_init(\%pa_config, "Pandora FMS Export Server"); + +# Read config file for Global variables +pandora_loadconfig (\%pa_config, 7); + +# Audit server starting +pandora_audit (\%pa_config, "Pandora FMS Export server starting", "SYSTEM", "System"); + +print " [*] Starting up Export Server\n"; + +die ("There is no more program yet! :-)"); diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index 52f7549e6a..2aa01cac61 100644 --- a/pandora_server/lib/PandoraFMS/Config.pm +++ b/pandora_server/lib/PandoraFMS/Config.pm @@ -38,7 +38,7 @@ our @EXPORT = qw( # version: Defines actual version of Pandora Server for this module only my $pandora_version = "2.0-dev"; -my $pandora_build="PS080311"; +my $pandora_build="PS080404"; our $VERSION = $pandora_version." ".$pandora_build; # Setup hash @@ -128,7 +128,7 @@ sub pandora_loadconfig { my $pa_config = $_[0]; my $opmode = $_[1]; # 0 dataserver, 1 network server, 2 snmp console # 3 recon srv, 4 plugin srv, 5 prediction srv - # 6 WMI server + # 6 WMI server, 7 export server my $archivo_cfg = $pa_config->{'pandora_path'}; my $buffer_line; my @command_line; @@ -161,6 +161,7 @@ sub pandora_loadconfig { $pa_config->{"wmiserver"} = 0; # Introduced on 2.0 $pa_config->{"pluginserver"} = 0; # Introduced on 2.0 $pa_config->{"predictionserver"} = 0; # Introduced on 2.0 + $pa_config->{"exportserver"} = 0; # 2.0 $pa_config->{"servermode"} = ""; $pa_config->{'snmp_logfile'} = "/var/log/pandora_snmptrap.log"; $pa_config->{"network_threads"} = 5; # Fixed default @@ -286,6 +287,9 @@ sub pandora_loadconfig { elsif ($parametro =~ m/^wmiserver\s([0-9]*)/i) { $pa_config->{'wmiserver'}= clean_blank($1); } + elsif ($parametro =~ m/^exportserver\s([0-9]*)/i) { + $pa_config->{'exportserver'}= clean_blank($1); + } elsif ($parametro =~ m/^servername\s(.*)/i) { $pa_config->{'servername'}= clean_blank($1); } @@ -394,7 +398,10 @@ sub pandora_loadconfig { print " [ERROR] You must enable 'wmiserver' in setup file to run Pandora FMS WMI server. \n\n"; exit; } - + if (($opmode ==7) && ($pa_config->{"exportserver"} ne 1)) { + print " [ERROR] You must enable 'exportserver' in setup file to run Pandora FMS Export server. \n\n"; + exit; + } # Show some config options in startup if ($pa_config->{"quiet"} == 0){ if ($opmode == 0){ @@ -431,6 +438,11 @@ sub pandora_loadconfig { print " [*] You are running Pandora FMS WMI Server. \n"; $parametro ="Pandora FMS WMI Server"; $pa_config->{"servermode"}="_WMI"; + } + if ($opmode == 7){ + print " [*] You are running Pandora FMS Export Server. \n"; + $parametro ="Pandora FMS Export Server"; + $pa_config->{"servermode"}="_Export"; } if ($pa_config->{"pandora_check"} == 1) { print " [*] MD5 Security enabled.\n"; diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer new file mode 100755 index 0000000000..f922e0ec51 --- /dev/null +++ b/pandora_server/pandora_server_installer @@ -0,0 +1,129 @@ +# (c) 2008 Manuel Arostegui +# Please see http://pandora.sourceforge.net +# This code is licensed under GPL 2.0 license. +# ********************************************************************** + +#!/bin/bash + +MODE=$1 + +install () { + +perl Makefile.PL > output 2>&1 #&& sleep 2 && cat output | grep "found" | wc -l + +DEPENDENCIAS=`cat output | grep "found" | wc -l` + +if [ $DEPENDENCIAS -gt 0 ] +then + + echo "You are missing the following dependencies" + echo " " + cat output | awk -F ": prerequisite" '{print $2}' | awk -F " " '{print $1}' + echo "The complete installation guide is at: "http://www.openideas.info/wiki/index.php?title=Pandora_1.3:Server:QIG#Installing_from_sources" " + echo " " + echo "Debian-based distribution do:" + echo " $ apt-get install libdate-manip-perl snmp snmpd libsnmp-perl libtime-format-perl libxml-simple-perl libnetaddr-ip-perl libdbi-perl libxml-simple-perl libnetaddr-ip-perl" + echo " " + echo "RedHat-based distribution do" + echo " " + echo " $ yum perl-XML-SAX* perl-Tie* perl-XML-Simple* perl-DateManip* perl-IO-Socket* perl-Time-modules* perl-NetAddr-IP* perl-GD* perl-DateTime* perl-ExtUtils" + echo " " + echo " $ cpan install Digest::MD5 Time::Local DBI threads threads::shared IO::Socket Time::HiRes Time::Format Net::Ping NetAddr::IP " + rm output +else + make + make install + mkdir /var/spool/pandora + mkdir /var/spool/pandora/data_in + useradd pandora + mkdir /home/pandora + mkdir /home/pandora/.ssh + chown -R pandora /home/pandora + mkdir /var/log/pandora + chown pandora:root /var/spool/pandora/data_in + chmod 770 /var/spool/pandora/data_in + mkdir /etc/pandora + cp conf/pandora_server.conf /etc/pandora/ + chmod 770 /etc/pandora/pandora_server.conf + cp pandora_* /etc/init.d/ + rm /etc/init.d/pandora_server_installer + ln -s /etc/init.d/pandora_server /etc/rc2.d/S90pandora_server + ln -s /etc/init.d/pandora_recon /etc/rc2.d/S90pandora_recon + ln -s /etc/init.d/pandora_network /etc/rc2.d/S90pandora_network + ln -s /etc/init.d/pandora_snmpconsole /etc/rc2.d/S90pandora_snmpconsole + ln -s /usr/bin/pandora_server /usr/local/bin/pandora_server + ln -s /usr/bin/pandora_snmpconsole /usr/local/bin/pandora_snmpconsole + ln -s /usr/bin/pandora_recon /usr/local/bin/pandora_recon + ln -s /usr/bin/pandora_network /usr/local/bin/pandora_network + ln -s /usr/bin/pandora_prediction /usr/local/bin/pandora_prediction + ln -s /usr/bin/pandora_plugin /usr/local/bin/pandora_plugin + ln -s /usr/bin/pandora_export /usr/local/bin/pandora_export + mkdir /usr/share/pandora + cp -R util /usr/share/pandora + echo "perl /usr/share/pandora/util/pandora_db /etc/pandora/pandora_server.conf" > /etc/cron.daily/pandora_purge_db + chmod +x /etc/cron.daily/pandora_purge_db + rm output +fi + +} + +uninstall () { + echo "Removing Pandora Servers" + rm -Rf /var/spool/pandora/data_in/ + rm -Rf /home/pandora/ + userdel pandora + rm -Rf /var/log/pandora/ + rm -Rf /etc/pandora/pandora_server.conf + rm -Rf /etc/init.d/pandora_server + rm -Rf /etc/init.d/pandora_network + rm -Rf /etc/init.d/pandora_recon + rm -Rf /etc/init.d/pandora_snmpconsole + rm -Rf /etc/rc2.d/S90pandora_server + rm -Rf /etc/rc2.d/S90pandora_recon + rm -Rf /etc/rc2.d/S90pandora_network + rm -Rf /etc/rc2.d/S90pandora_snmpconsole + rm -Rf /usr/local/bin/pandora_server + rm -Rf /usr/local/bin/pandora_snmpconsole + rm -Rf /usr/local/bin/pandora_recon + rm -Rf /usr/local/bin/pandora_network + rm -Rf /usr/bin/pandora_server + rm -Rf /usr/bin/pandora_snmpconsole + rm -Rf /usr/bin/pandora_recon + rm -Rf /usr/bin/pandora_network + rm -Rf /usr/bin/pandora_prediction 2> /dev/null + rm -Rf /usr/bin/pandora_plugin 2> /dev/null + rm -Rf /usr/bin/pandora_export 2> /dev/null + rm -Rf /usr/share/pandora + rm -Rf /etc/cron.daily/pandora_purge_db + + echo "Done" +} + +help () { + echo " --install To install Pandora FMS Servers on this system (You have to be root)" + echo " --uninstall To uninstall and remove Pandora FMS Servers on this System" + echo " " +} + +# Script banner at start +echo " " +echo "Pandora FMS 2.0 Server Installer (c) 2008 Manuel Arostegui" +echo "This program is licensed under GPL2 Terms. http://pandora.sourceforge.net" +echo " " + +case "$MODE" in + +'--install') + install + exit + ;; + +'--uninstall') + uninstall + exit + ;; + +*) + help +esac +