diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog index 69f0f39716..a274dfaa1e 100644 --- a/pandora_server/ChangeLog +++ b/pandora_server/ChangeLog @@ -1,5 +1,14 @@ +2009-08-19 Sancho lerena -2009-08-15 Sancho lerena + * pandora_server.spec: Updated some dependencies. Also included the + install of pandora_db maintance script in cron.daily. + + * pandora_server, tentacle_serverd: Added short description to able + yast visualizate correctly the description in software selection screen. + + * lib/PandoraFMS/Core.pm: Fixed problem with OS Detection at creation. Added + support for AUTOTIME (time of data is given by the server instead by data + coming from the agent) and autoimport of agent description. * util/tentacle_serverd: Call to umask to let tentacle_server create files with mask 0007, because Enterprise version need to write files diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 85924b0210..8113aba5d5 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -736,6 +736,7 @@ sub pandora_create_agent ($$$$$$$$$$) { logger ($pa_config, "$server_name: Creating agent $agent_name ($address)", 1); $description = "Created by $server_name" unless ($description ne ''); + my $agent_id = db_insert ($dbh, 'INSERT INTO tagente (`nombre`, `direccion`, `comentarios`, `id_grupo`, `id_os`, `server_name`, `intervalo`, `id_parent`, `modo`) VALUES (?, ?, ?, ?, ?, ?, 300, ?, 1)', $agent_name, $address, $description, $group_id, $os_id, $server_name, $parent_id); diff --git a/pandora_server/lib/PandoraFMS/DataServer.pm b/pandora_server/lib/PandoraFMS/DataServer.pm index f583725992..64e17fa64a 100644 --- a/pandora_server/lib/PandoraFMS/DataServer.pm +++ b/pandora_server/lib/PandoraFMS/DataServer.pm @@ -26,6 +26,7 @@ use Thread::Semaphore; use Time::Local; use XML::Simple; +use POSIX qw(setsid strftime); use PandoraFMS::Tools; use PandoraFMS::DB; @@ -157,10 +158,15 @@ sub process_xml_data ($$$$) { # Unknown agent! if (! defined ($agent_name) || $agent_name eq '') { - logger($pa_config, 'ERROR: Received data from an unknown agent', 2); + logger($pa_config, 'ERROR: Received data from an unnamed agent', 2); return; } + # Get current datetime from system if value AUTO is coming in the XML + if ( $data->{'timestamp'} =~ /AUTO/ ){ + $timestamp = strftime ("%Y/%m/%d %H:%M:%S", localtime()); + } + # Check some variables $interval = 300 unless defined ($interval); $os_version = 'N/A' if (! defined ($os_version) || $os_version eq ''); @@ -174,7 +180,7 @@ sub process_xml_data ($$$$) { } # Get OS, group and description - my $os = pandora_get_os ($data->{'os'}); + my $os = pandora_get_os ($data->{'os_name'}); my $group_id = undef; $group_id = get_db_value ($dbh, 'SELECT id_grupo FROM tgrupo WHERE nombre = ?', $data->{'group'}) if (defined ($data->{'group'})); $group_id = $pa_config->{'autocreate_group'} unless defined ($group_id); diff --git a/pandora_server/pandora_server b/pandora_server/pandora_server index d50540cae7..84daa67d0b 100755 --- a/pandora_server/pandora_server +++ b/pandora_server/pandora_server @@ -13,7 +13,7 @@ # Default-Stop: 0 1 2 3 5 # Required-Start: $network # Required-Stop: $network -# Description: Pandora FMS Server startup script +# Short-Description: Pandora FMS Server startup script ### END INIT INFO PANDORA_HOME="/etc/pandora/pandora_server.conf" diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index f7c3e18fa8..2ba6c27879 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -1,7 +1,7 @@ # # Pandora FMS Server # -%define name PandoraFMS_Server +%define name pandorafms_server %define version 3.0.0 %define release 1 @@ -10,27 +10,22 @@ Name: %{name} Version: %{version} Release: %{release} License: GPL -Vendor: Sancho Lerena +Vendor: ArticaST Source0: %{name}-%{version}.tar.gz URL: http://www.pandorafms.com Group: System/Monitoring -Packager: Manuel Arostegui +Packager: Manuel Arostegui Prefix: /usr/share BuildRoot: %{_tmppath}/%{name}-buildroot BuildArchitectures: noarch -%if "%{_vendor}" == "suse" -Requires: perl-XML-Simple perl-DateManip perl-Net-SNMP -%endif -%if "%{_vendor}" == "redhat" -Requires: perl-XML-Simple net-snmp-perl perl-DateManip perl-Mail-Sendmail xprobe2 net-snmp-utils Requires(pre): /usr/sbin/useradd -%endif AutoReq: 0 Provides: %{name}-%{version} -Requires: mysql, mysql-server perl-NetAddr-IP +Requires: perl-mail-sendmail perl-DBI perl-DBD-mysql perl-time-format perl-mail-sendmail perl-netaddr-ip wmic perl-SNMP net-snmp +#Requires: xprobe2 %description -Pandora watchs your systems and applications, and allows to know the status of any element of that systems. Pandora could detect a network interface down, a defacementin your website, memory leak in one of your server app, or the movement of any value of the NASDAQ new technology market. If you want, Pandora could sent a SMS messagewhen your systems fails... or when Google value low below US$ 33 +Pandora FMS is a monitoring system for big IT environments. It uses remote tests, or local agents to grab information. Pandora supports all standard OS (Linux, AIX, HP-UX, Solaris and Windows XP,2000/2003), and support multiple setups in HA enviroments. %prep rm -rf $RPM_BUILD_ROOT @@ -40,105 +35,71 @@ rm -rf $RPM_BUILD_ROOT %build %install -%define perl_version %(rpm -q --queryformat='%{VERSION}' perl) -export perl_version=`rpm -q --queryformat='%{VERSION}' perl` +#%define perl_version %(rpm -q --queryformat='%{VERSION}' perl) +#export perl_version=`rpm -q --queryformat='%{VERSION}' perl` +# Temporal hack for For SLES 11 only, warning +export perl_version=5.10.0 +%define perl_version 5.10.0 + rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/usr/bin/ mkdir -p $RPM_BUILD_ROOT/usr/local mkdir -p $RPM_BUILD_ROOT/usr/local/bin mkdir -p $RPM_BUILD_ROOT/usr/sbin/ -%if "%{_vendor}" == "redhat" -mkdir -p $RPM_BUILD_ROOT/usr/sbin/ -%endif mkdir -p $RPM_BUILD_ROOT/etc/init.d/ mkdir -p $RPM_BUILD_ROOT/etc/pandora/ mkdir -p $RPM_BUILD_ROOT/var/spool/pandora/data_in mkdir -p $RPM_BUILD_ROOT/var/log/pandora/ mkdir -p $RPM_BUILD_ROOT%{prefix}/pandora_server/conf/ -mkdir -p $RPM_BUILD_ROOT/var/run/pandora/ mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/ -mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/Net -%if "%{_vendor}" == "redhat" -cp -aRf bin/pandora_* $RPM_BUILD_ROOT/usr/local/bin/ +cp -aRf bin/pandora_server $RPM_BUILD_ROOT/usr/local/bin/ cp -aRf util/pandora_exec $RPM_BUILD_ROOT/usr/local/bin/ cp -aRf bin/tentacle_server $RPM_BUILD_ROOT/usr/local/bin/ -%else -cp -aRf bin/pandora_* $RPM_BUILD_ROOT/usr/local/bin/ -cp -aRf util/pandora_exec $RPM_BUILD_ROOT/usr/local/bin/ -cp -aRf bin/tentacle_server $RPM_BUILD_ROOT/usr/local/bin/ -%endif -cp -aRf util/wmic $RPM_BUILD_ROOT/usr/bin/ +#cp -aRf util/wmic $RPM_BUILD_ROOT/usr/bin/ cp -aRf conf/* $RPM_BUILD_ROOT%{prefix}/pandora_server/conf/ cp -aRf util $RPM_BUILD_ROOT%{prefix}/pandora_server/ cp -aRf lib/* $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/ -cp -aRf util/Time/ $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/ -cp -aRf util/Traceroute/ $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/Net -cp -aRf util/Traceroute.pm $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/Net +#cp -aRf util/Time/ $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/ +#cp -aRf util/Traceroute/ $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/Net +#cp -aRf util/Traceroute.pm $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/$perl_version/Net cp -aRf AUTHORS COPYING ChangeLog README $RPM_BUILD_ROOT%{prefix}/pandora_server/ -#%if "%{_vendor}" == "suse" -# cp -aRf util/SLES10/pandora_* $RPM_BUILD_ROOT/etc/init.d/ -#%else -#%if "%{_vendor}" == "redhat" -# cp -aRf util/RHEL/* $RPM_BUILD_ROOT/etc/init.d/ -#%else - cp -aRf pandora_* $RPM_BUILD_ROOT/etc/init.d/ - cp -aRf util/tentacle_serverd $RPM_BUILD_ROOT/etc/init.d/ - rm -fr $RPM_BUILD_ROOT/etc/init.d/*_installer $RPM_BUILD_ROOT/etc/init.d/*.spec -#%endif -#%endif +cp -aRf pandora_server $RPM_BUILD_ROOT/etc/init.d/ +cp -aRf util/tentacle_serverd $RPM_BUILD_ROOT/etc/init.d/ %clean rm -fr $RPM_BUILD_ROOT %pre -%if "%{_vendor}" == "redhat" - /usr/sbin/useradd -d %{prefix}/pandora -s /sbin/nologin -M -r pandora 2>/dev/null -%endif +/usr/sbin/useradd -d %{prefix}/pandora -s /bin/false -M -g 0 pandora exit 0 %post -%if "%{_vendor}" == "suse" - ln -s /etc/init.d/pandora_server /etc/rc.d/rc3.d/S99pandora_server - ln -s /etc/init.d/pandora_server /etc/rc.d/rc2.d/S99pandora_server - ln -s /etc/init.d/pandora_server /etc/rc.d/rc0.d/K99pandora_server - ln -s /etc/init.d/pandora_server /etc/rc.d/rc6.d/K99pandora_server - ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc3.d/S99tentacle_serverd - ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc2.d/S99tentacle_serverd - ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc0.d/K99tentacle_serverd - ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc6.d/K99tentacle_serverd -%else - ln -s /etc/init.d/pandora_server /etc/rc3.d/S99pandora_server - ln -s /etc/init.d/pandora_server /etc/rc2.d/S99pandora_server - ln -s /etc/init.d/pandora_server /etc/rc0.d/K99pandora_server - ln -s /etc/init.d/pandora_server /etc/rc6.d/K99pandora_server - ln -s /etc/init.d/tentacle_serverd /etc/rc3.d/S99tentacle_serverd - ln -s /etc/init.d/tentacle_serverd /etc/rc2.d/S99tentacle_serverd - ln -s /etc/init.d/tentacle_serverd /etc/rc0.d/K99tentacle_serverd - ln -s /etc/init.d/tentacle_serverd /etc/rc6.d/K99tentacle_serverd -%endif +ln -s /etc/init.d/pandora_server /etc/rc.d/rc5.d/S99pandora_server +ln -s /etc/init.d/pandora_server /etc/rc.d/rc3.d/S99pandora_server +ln -s /etc/init.d/pandora_server /etc/rc.d/rc2.d/S99pandora_server +ln -s /etc/init.d/pandora_server /etc/rc.d/rc0.d/K99pandora_server +ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc5.d/S99tentacle_serverd +ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc3.d/S99tentacle_serverd +ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc2.d/S99tentacle_serverd +ln -s /etc/init.d/tentacle_serverd /etc/rc.d/rc0.d/K99tentacle_serverd +echo "/usr/share/pandora_server/util/pandora_db /etc/pandora/pandora_server.conf" > /etc/cron.daily/pandora_db +chmod 750 /etc/cron.daily/pandora_db if [ ! -d /etc/pandora ] ; then mkdir -p /etc/pandora fi -if [ ! -L /etc/pandora/pandora_server.conf ] ; then - ln -s /usr/share/pandora_server/conf/pandora_server.conf /etc/pandora/ - echo "Pandora Server configuration is /etc/pandora/pandora_server.conf" - echo "Pandora Server data has been placed under /var/spool/pandora/data_in/" - echo "Pandora Server logs has been placed under /var/log/" - echo "Pandora Server main directory is %{prefix}/pandora_server/" - echo "To start all PandoraFMS servers: pandora_server start" - echo "The manual can be reached at: man pandora or man pandora_server" - echo "Pandora Documentation is in: http://openideas.info/wiki/index.php?title=Pandora_2.0:Documentation" -fi -/etc/init.d/tentacle_serverd start - echo "Pandora Server configuration is /etc/pandora/pandora_server.conf" - echo "Pandora Server data has been placed under /var/spool/pandora/data_in/" - echo "Pandora Server logs has been placed under /var/log/" - echo "Pandora Server main directory is %{prefix}/pandora_server/" - echo "To start all PandoraFMS servers: /etc/init.d/pandora_server start" - echo "Make sure you have the correct dbuser and dbpass in /etc/pandora/pandora_server.conf" - echo "The manual can be reached at: man pandora or man pandora_server" - echo "Pandora Documentation is in: http://openideas.info/wiki/index.php?title=Pandora_2.0:Documentation" +if [ ! -e /etc/pandora/pandora_server.conf ] ; then + ln -s /usr/share/pandora_server/conf/pandora_server.conf /etc/pandora/ + echo "Pandora FMS Server configuration is /etc/pandora/pandora_server.conf" +# echo "Pandora FMS Server data has been placed under /var/spool/pandora/data_in/" +# echo "Pandora FMS Server logs has been placed under /var/log/" + echo "Pandora FMS Server main directory is %{prefix}/pandora_server/" + echo "The manual can be reached at: man pandora or man pandora_server" + echo "Pandora FMS Documentation is in: http://pandorafms.org" + echo " " +fi + +/etc/init.d/tentacle_serverd start %preun if [ "$1" = 0 ]; then @@ -147,27 +108,29 @@ if [ "$1" = 0 ]; then %if "%{_vendor}" == "redhat" /sbin/chkconfig --del pandora_server %endif + rm -Rf /etc/init.d/pandora_server + rm -Rf /etc/init.d/tentacle_serverd + rm -Rf /etc/pandora/pandora_server.conf + rm -Rf /usr/share/pandora_server fi %files -%defattr(700,pandora,pandora) +%defattr(750,pandora,root) /etc/init.d/pandora_server /etc/init.d/tentacle_serverd -/usr/bin/wmic /usr/local/bin/pandora_exec /usr/local/bin/pandora_server /usr/local/bin/tentacle_server - -%defattr(755,pandora,pandora) +%defattr(755,pandora,root) /usr/lib/perl5/site_perl/%{perl_version}/PandoraFMS/ -/usr/lib/perl5/site_perl/%{perl_version}/Net/Traceroute/ -/usr/lib/perl5/site_perl/%{perl_version}/Net/Traceroute.pm -/usr/lib/perl5/site_perl/%{perl_version}/Time/ %{prefix}/pandora_server /var/log/pandora -/var/spool/pandora/ -#/var/spool/pandora/data_in +%defattr(770,pandora,www) +/var/spool/pandora + +%defattr(750,pandora,root) +/etc/pandora diff --git a/pandora_server/util/tentacle_serverd b/pandora_server/util/tentacle_serverd index 83b6ac408e..9510885810 100755 --- a/pandora_server/util/tentacle_serverd +++ b/pandora_server/util/tentacle_serverd @@ -11,7 +11,7 @@ # Default-Stop: 0 1 2 3 5 # Required-Start: $network # Required-Stop: $network -# Description: Tentacle Server startup script +# Short-Description: Tentacle Server startup script ### END INIT INFO # Pandora server settings