2009-08-19 Sancho lerena <slerena@artica.es>

* 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
	fetched with tentacle.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1861 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
slerena 2009-08-19 01:41:25 +00:00
parent b08d750bdf
commit b9ac1fc18d
6 changed files with 74 additions and 95 deletions

View File

@ -1,5 +1,14 @@
2009-08-19 Sancho lerena <slerena@artica.es>
2009-08-15 Sancho lerena <slerena@artica.es>
* 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

View File

@ -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);

View File

@ -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);

View File

@ -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"

View File

@ -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 <sancho.lerena@artica.es>
Vendor: ArticaST <http://www.artica.es>
Source0: %{name}-%{version}.tar.gz
URL: http://www.pandorafms.com
Group: System/Monitoring
Packager: Manuel Arostegui <marostegui@artica.es>
Packager: Manuel Arostegui <manuel.arostegui@gmail.com>
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

View File

@ -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