mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-29 08:45:12 +02:00
Merge remote-tracking branch 'origin/develop' into ent-4154-Configuración-purgado-histórico-duplicada-+-error
Conflicts: pandora_console/general/mysqlerr.php
This commit is contained in:
commit
f2ff861b4d
BIN
extras/bin/gotty
Executable file
BIN
extras/bin/gotty
Executable file
Binary file not shown.
@ -1,3 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
docker build --rm=true --pull --no-cache --build-arg BRANCH="develop" --build-arg DB_PASS="pandora" -t pandorafms/pandorafms:7 . && \
|
docker build --rm=true --pull --no-cache --build-arg BRANCH="develop" --build-arg DB_PASS="pandora" -t pandorafms/pandorafms:7 . && \
|
||||||
|
[ "$QA_ENV" == "" ] && \
|
||||||
docker push pandorafms/pandorafms:7
|
docker push pandorafms/pandorafms:7
|
||||||
|
@ -9,11 +9,13 @@ RUN yum -y install \
|
|||||||
epel-release \
|
epel-release \
|
||||||
unzip \
|
unzip \
|
||||||
perl \
|
perl \
|
||||||
|
python3 \
|
||||||
sed \
|
sed \
|
||||||
"perl(Sys::Syslog)"
|
"perl(Sys::Syslog)"
|
||||||
|
|
||||||
# Install Pandora FMS agent
|
# Install Pandora FMS agent
|
||||||
RUN cd /tmp/pandora_agent/unix \
|
RUN cd /tmp/pandora_agent/unix \
|
||||||
|
&& chmod +x pandora_agent_installer \
|
||||||
&& ./pandora_agent_installer --install
|
&& ./pandora_agent_installer --install
|
||||||
|
|
||||||
# Set default variables
|
# Set default variables
|
||||||
@ -40,7 +42,7 @@ if [ $TIMEZONE != "" ]; then\n \
|
|||||||
fi\n \
|
fi\n \
|
||||||
/etc/init.d/pandora_agent_daemon start\n \
|
/etc/init.d/pandora_agent_daemon start\n \
|
||||||
rm -f $0\n \
|
rm -f $0\n \
|
||||||
bash' \
|
tail -f /var/log/pandora/pandora_agent.log' \
|
||||||
>> /entrypoint.sh && \
|
>> /entrypoint.sh && \
|
||||||
chmod +x /entrypoint.sh
|
chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, AIX version
|
# Version 7.0NG.743, AIX version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -36,6 +36,8 @@ mkdir -p temp_package/usr/bin/
|
|||||||
mkdir -p temp_package/usr/sbin/
|
mkdir -p temp_package/usr/sbin/
|
||||||
mkdir -p temp_package/etc/pandora/plugins
|
mkdir -p temp_package/etc/pandora/plugins
|
||||||
mkdir -p temp_package/etc/pandora/collections
|
mkdir -p temp_package/etc/pandora/collections
|
||||||
|
mkdir -p temp_package/etc/pandora/trans
|
||||||
|
mkdir -p temp_package/etc/pandora/commands
|
||||||
mkdir -p temp_package/etc/init.d/
|
mkdir -p temp_package/etc/init.d/
|
||||||
mkdir -p temp_package/var/log/pandora/
|
mkdir -p temp_package/var/log/pandora/
|
||||||
mkdir -p temp_package/usr/share/man/man1/
|
mkdir -p temp_package/usr/share/man/man1/
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, FreeBSD Version
|
# Version 7.0NG.743, FreeBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, HP-UX Version
|
# Version 7.0NG.743, HP-UX Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, GNU/Linux
|
# Version 7.0NG.743, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, GNU/Linux
|
# Version 7.0NG.743, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, Solaris Version
|
# Version 7.0NG.743, Solaris Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Base config file for Pandora FMS Windows Agent
|
# Base config file for Pandora FMS Windows Agent
|
||||||
# (c) 2006-2010 Artica Soluciones Tecnologicas
|
# (c) 2006-2010 Artica Soluciones Tecnologicas
|
||||||
# Version 7.0NG.738
|
# Version 7.0NG.743
|
||||||
|
|
||||||
# This program is Free Software, you can redistribute it and/or modify it
|
# This program is Free Software, you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||||
|
@ -324,6 +324,11 @@ install () {
|
|||||||
cp -r collections $PANDORA_BASE$PANDORA_HOME
|
cp -r collections $PANDORA_BASE$PANDORA_HOME
|
||||||
chmod -R 700 $PANDORA_BASE$PANDORA_HOME/collections
|
chmod -R 700 $PANDORA_BASE$PANDORA_HOME/collections
|
||||||
ln -s $PANDORA_BASE$PANDORA_HOME/collections $PANDORA_BASE$PANDORA_CFG
|
ln -s $PANDORA_BASE$PANDORA_HOME/collections $PANDORA_BASE$PANDORA_CFG
|
||||||
|
|
||||||
|
echo "Copying Pandora FMS Agent commands to $PANDORA_BASE$PANDORA_HOME/commands..."
|
||||||
|
cp -r commands $PANDORA_BASE$PANDORA_HOME
|
||||||
|
chmod -R 700 $PANDORA_BASE$PANDORA_HOME/commands
|
||||||
|
ln -s $PANDORA_BASE$PANDORA_HOME/commands $PANDORA_BASE$PANDORA_CFG
|
||||||
|
|
||||||
echo "Copying tentacle server to $PANDORA_BASE$TENTACLE_SERVER"
|
echo "Copying tentacle server to $PANDORA_BASE$TENTACLE_SERVER"
|
||||||
cp tentacle_server $PANDORA_BASE$TENTACLE_SERVER
|
cp tentacle_server $PANDORA_BASE$TENTACLE_SERVER
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.738, AIX version
|
# Version 7.0NG.743, AIX version
|
||||||
|
|
||||||
# General Parameters
|
# General Parameters
|
||||||
# ==================
|
# ==================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.738
|
# Version 7.0NG.743
|
||||||
# FreeBSD/IPSO version
|
# FreeBSD/IPSO version
|
||||||
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.738, HPUX Version
|
# Version 7.0NG.743, HPUX Version
|
||||||
|
|
||||||
# General Parameters
|
# General Parameters
|
||||||
# ==================
|
# ==================
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738
|
# Version 7.0NG.743
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# (c) 2003-2010 Artica Soluciones Tecnologicas
|
# (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||||
# please visit http://pandora.sourceforge.net
|
# please visit http://pandora.sourceforge.net
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738
|
# Version 7.0NG.743
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# (c) 2003-2009 Artica Soluciones Tecnologicas
|
# (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# please visit http://pandora.sourceforge.net
|
# please visit http://pandora.sourceforge.net
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738
|
# Version 7.0NG.743
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# please visit http://pandora.sourceforge.net
|
# please visit http://pandora.sourceforge.net
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.738, Solaris version
|
# Version 7.0NG.743, Solaris version
|
||||||
|
|
||||||
# General Parameters
|
# General Parameters
|
||||||
# ==================
|
# ==================
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, AIX version
|
# Version 7.0NG.743, AIX version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-agent-unix
|
package: pandorafms-agent-unix
|
||||||
Version: 7.0NG.738-190821
|
Version: 7.0NG.743-200210
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,14 +14,20 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.738-190821"
|
pandora_version="7.0NG.743-200210"
|
||||||
|
|
||||||
echo "Test if you has the tools for to make the packages."
|
echo "Test if you has the tools for to make the packages."
|
||||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||||
if [ $? = 1 ]
|
if [ $? = 1 ]
|
||||||
then
|
then
|
||||||
echo "No found \"dpkg-deb\" aplication, please install."
|
if [ "$DPKG_DEB" == "" ]; then
|
||||||
exit 1
|
echo "No found \"dpkg-deb\" aplication, please install."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ">> Using dockerized version of dpkg-deb: "
|
||||||
|
echo " $DPKG_DEB"
|
||||||
|
USE_DOCKER_APP=1
|
||||||
else
|
else
|
||||||
echo "Found \"dpkg-debs\"."
|
echo "Found \"dpkg-debs\"."
|
||||||
fi
|
fi
|
||||||
@ -36,6 +42,8 @@ mkdir -p temp_package/usr/bin/
|
|||||||
mkdir -p temp_package/usr/sbin/
|
mkdir -p temp_package/usr/sbin/
|
||||||
mkdir -p temp_package/etc/pandora/plugins
|
mkdir -p temp_package/etc/pandora/plugins
|
||||||
mkdir -p temp_package/etc/pandora/collections
|
mkdir -p temp_package/etc/pandora/collections
|
||||||
|
mkdir -p temp_package/etc/pandora/trans
|
||||||
|
mkdir -p temp_package/etc/pandora/commands
|
||||||
mkdir -p temp_package/etc/init.d/
|
mkdir -p temp_package/etc/init.d/
|
||||||
mkdir -p temp_package/lib/systemd/system/
|
mkdir -p temp_package/lib/systemd/system/
|
||||||
mkdir -p temp_package/var/log/pandora/
|
mkdir -p temp_package/var/log/pandora/
|
||||||
@ -120,8 +128,12 @@ do
|
|||||||
done
|
done
|
||||||
echo "END"
|
echo "END"
|
||||||
|
|
||||||
echo "Make the package \"Pandorafms console\"."
|
echo "Make the package \"Pandorafms agent\"."
|
||||||
dpkg-deb --build temp_package
|
if [ "$USE_DOCKER_APP" == "1" ]; then
|
||||||
|
eval $DPKG_DEB --build temp_package
|
||||||
|
else
|
||||||
|
dpkg-deb --build temp_package
|
||||||
|
fi
|
||||||
mv temp_package.deb pandorafms.agent_unix_$pandora_version.deb
|
mv temp_package.deb pandorafms.agent_unix_$pandora_version.deb
|
||||||
|
|
||||||
echo "Delete the \"temp_package\" temp dir for job."
|
echo "Delete the \"temp_package\" temp dir for job."
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, GNU/Linux
|
# Version 7.0NG.743, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2012 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2012 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, FreeBSD Version
|
# Version 7.0NG.743, FreeBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2016 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2016 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, HP-UX Version
|
# Version 7.0NG.743, HP-UX Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, GNU/Linux
|
# Version 7.0NG.743, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2014 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2014 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, GNU/Linux
|
# Version 7.0NG.743, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, NetBSD Version
|
# Version 7.0NG.743, NetBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.738, Solaris Version
|
# Version 7.0NG.743, Solaris Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -24,6 +24,7 @@ Version 6.0
|
|||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
|
use Scalar::Util qw(looks_like_number);
|
||||||
use POSIX qw(strftime floor);
|
use POSIX qw(strftime floor);
|
||||||
use Sys::Hostname;
|
use Sys::Hostname;
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
@ -32,6 +33,18 @@ use IO::Socket;
|
|||||||
use Sys::Syslog;
|
use Sys::Syslog;
|
||||||
use Time::Local;
|
use Time::Local;
|
||||||
|
|
||||||
|
my $YAML = 0;
|
||||||
|
# Dynamic load. Avoid unwanted behaviour.
|
||||||
|
eval {
|
||||||
|
eval 'require YAML::Tiny;1' or die('YAML::Tiny lib not found, commands feature won\'t be available');
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
$YAML = 0;
|
||||||
|
print STDERR $@;
|
||||||
|
} else {
|
||||||
|
$YAML = 1;
|
||||||
|
}
|
||||||
|
|
||||||
# Agent XML data
|
# Agent XML data
|
||||||
my $Xml;
|
my $Xml;
|
||||||
|
|
||||||
@ -41,8 +54,8 @@ my $Sem = undef;
|
|||||||
# Semaphore used to control the number of threads
|
# Semaphore used to control the number of threads
|
||||||
my $ThreadSem = undef;
|
my $ThreadSem = undef;
|
||||||
|
|
||||||
use constant AGENT_VERSION => '7.0NG.738';
|
use constant AGENT_VERSION => '7.0NG.743';
|
||||||
use constant AGENT_BUILD => '190821';
|
use constant AGENT_BUILD => '200210';
|
||||||
|
|
||||||
# Agent log default file size maximum and instances
|
# Agent log default file size maximum and instances
|
||||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||||
@ -187,6 +200,7 @@ my %DefaultConf = (
|
|||||||
'custom_id' => '',
|
'custom_id' => '',
|
||||||
'url_address' => '',
|
'url_address' => '',
|
||||||
'standby' => 0,
|
'standby' => 0,
|
||||||
|
'cmd_file' => undef,
|
||||||
);
|
);
|
||||||
my %Conf = %DefaultConf;
|
my %Conf = %DefaultConf;
|
||||||
|
|
||||||
@ -239,6 +253,15 @@ my $tentacle_pid = undef;
|
|||||||
# PID of udp_server
|
# PID of udp_server
|
||||||
my $udp_server_pid = undef;
|
my $udp_server_pid = undef;
|
||||||
|
|
||||||
|
# BrokerFlag
|
||||||
|
my $BrokerFlag = 0;
|
||||||
|
|
||||||
|
# Global loop counter.
|
||||||
|
my $LoopCounter = 0;
|
||||||
|
|
||||||
|
# Define a max value for loopCounter to avoid overflow.
|
||||||
|
use constant MAX_LOOP_COUNTER => 1000000000;
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Print usage information and exit.
|
# Print usage information and exit.
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -259,6 +282,91 @@ sub error ($) {
|
|||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Try to load extra libraries.c
|
||||||
|
################################################################################
|
||||||
|
sub load_libraries() {
|
||||||
|
# Dynamic load. Avoid unwanted behaviour.
|
||||||
|
eval {eval 'require YAML::Tiny;1' or die('YAML::Tiny lib not found, commands feature won\'t be available');};
|
||||||
|
if ($@) {
|
||||||
|
$YAML = 0;
|
||||||
|
print STDERR $@;
|
||||||
|
} else {
|
||||||
|
$YAML = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Erase blank spaces before and after the string
|
||||||
|
################################################################################
|
||||||
|
sub trim {
|
||||||
|
my $string = shift;
|
||||||
|
if (empty($string)){
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
$string =~ s/\r//g;
|
||||||
|
|
||||||
|
chomp($string);
|
||||||
|
$string =~ s/^\s+//g;
|
||||||
|
$string =~ s/\s+$//g;
|
||||||
|
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Mix hashses
|
||||||
|
################################################################################
|
||||||
|
sub merge_hashes {
|
||||||
|
my $_h1 = shift;
|
||||||
|
my $_h2 = shift;
|
||||||
|
|
||||||
|
if (ref($_h1) ne "HASH") {
|
||||||
|
return \%{$_h2} if (ref($_h2) eq "HASH");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ref($_h2) ne "HASH") {
|
||||||
|
return \%{$_h1} if (ref($_h1) eq "HASH");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ref($_h1) ne "HASH") && (ref($_h2) ne "HASH")) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
my %ret = (%{$_h1}, %{$_h2});
|
||||||
|
|
||||||
|
return \%ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Empty
|
||||||
|
################################################################################
|
||||||
|
sub empty {
|
||||||
|
my $str = shift;
|
||||||
|
|
||||||
|
if (!(defined($str)) ){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(looks_like_number($str)){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ref($str) eq "ARRAY") {
|
||||||
|
return (($#{$str}<0)?1:0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ref($str) eq "HASH") {
|
||||||
|
my @tmp = keys %{$str};
|
||||||
|
return (($#tmp<0)?1:0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($str =~ /^\ *[\n\r]{0,2}\ *$/) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Check a regular expression. Returns 1 if its valid, 0 otherwise.
|
# Check a regular expression. Returns 1 if its valid, 0 otherwise.
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -275,6 +383,27 @@ sub valid_regexp ($) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Reads a file and returns entire content or undef if error.
|
||||||
|
################################################################################
|
||||||
|
sub read_file {
|
||||||
|
my $path = shift;
|
||||||
|
|
||||||
|
my $_FILE;
|
||||||
|
if( !open($_FILE, "<", $path) ) {
|
||||||
|
# failed to open, return undef
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Slurp configuration file content.
|
||||||
|
my $content = do { local $/; <$_FILE> };
|
||||||
|
|
||||||
|
# Close file
|
||||||
|
close($_FILE);
|
||||||
|
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Recursively delete files and directories.
|
# Recursively delete files and directories.
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -767,7 +896,21 @@ sub read_config (;$) {
|
|||||||
next if ($line =~ /^module\s*\w*/);
|
next if ($line =~ /^module\s*\w*/);
|
||||||
|
|
||||||
#Configuration token
|
#Configuration token
|
||||||
if ($line =~ /^\s*(\S+)\s+(.*)$/) {
|
if ($line =~ /^\s*(\S+)\s+(.*)$/) {
|
||||||
|
# Reserved keyword.
|
||||||
|
next if ($1 eq "commands");
|
||||||
|
|
||||||
|
if ($1 eq "cmd_file") {
|
||||||
|
# Commands
|
||||||
|
if (ref ($Conf{'commands'}) ne "HASH") {
|
||||||
|
$Conf{'commands'} = {};
|
||||||
|
}
|
||||||
|
# Initialize empty command hash.
|
||||||
|
$Conf{'commands'}->{$2} = {};
|
||||||
|
log_message('setup', "Command required $2");
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
log_message ('setup', "$1 is $2");
|
log_message ('setup', "$1 is $2");
|
||||||
$Conf{$1} = $2;
|
$Conf{$1} = $2;
|
||||||
|
|
||||||
@ -914,6 +1057,7 @@ sub read_config (;$) {
|
|||||||
$Conf{'secondary_server_opts'} = '-x \'' . $Conf{'secondary_server_pwd'} . '\' ' . $Conf{'secondary_server_opts'} if ($Conf{'secondary_server_pwd'} ne '');
|
$Conf{'secondary_server_opts'} = '-x \'' . $Conf{'secondary_server_pwd'} . '\' ' . $Conf{'secondary_server_opts'} if ($Conf{'secondary_server_pwd'} ne '');
|
||||||
$Conf{'secondary_server_opts'} = '-c ' . $Conf{'secondary_server_opts'} if ($Conf{'secondary_server_ssl'} eq '1');
|
$Conf{'secondary_server_opts'} = '-c ' . $Conf{'secondary_server_opts'} if ($Conf{'secondary_server_ssl'} eq '1');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
@ -1148,14 +1292,14 @@ sub recv_file {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if ($@) {
|
if ($@) {
|
||||||
log_message ('error', "Error retrieving file: File transfer command is not responding.");
|
log_message ('error', "Error retrieving file: '.$file.' File transfer command is not responding.");
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the errorlevel
|
# Get the errorlevel
|
||||||
my $rc = $? >> 8;
|
my $rc = $? >> 8;
|
||||||
if ($rc != 0) {
|
if ($rc != 0) {
|
||||||
log_message ('error', "Error retrieving file: $output");
|
log_message ('error', "Error retrieving file: '$file' $output");
|
||||||
}
|
}
|
||||||
exit $rc;
|
exit $rc;
|
||||||
}
|
}
|
||||||
@ -1224,6 +1368,10 @@ sub check_remote_config () {
|
|||||||
%Collections = ();
|
%Collections = ();
|
||||||
%Conf = %DefaultConf;
|
%Conf = %DefaultConf;
|
||||||
|
|
||||||
|
# Supposed to discard current configuration but not.
|
||||||
|
# Cleanup old commands configuration.
|
||||||
|
$Conf{'commands'} = {};
|
||||||
|
|
||||||
# Reload the new configuration
|
# Reload the new configuration
|
||||||
read_config ();
|
read_config ();
|
||||||
|
|
||||||
@ -1353,6 +1501,336 @@ sub check_collections () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Check for remote commands defined.
|
||||||
|
################################################################################
|
||||||
|
sub prepare_commands {
|
||||||
|
if ($YAML == 0) {
|
||||||
|
log_message(
|
||||||
|
'error',
|
||||||
|
'Cannot use commands without YAML dependency, please install it.'
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Force configuration file read.
|
||||||
|
my @commands = read_config('cmd_file');
|
||||||
|
|
||||||
|
if (empty(\@commands)) {
|
||||||
|
$Conf{'commands'} = {};
|
||||||
|
} else {
|
||||||
|
foreach my $rcmd (@commands) {
|
||||||
|
$Conf{'commands'}->{trim($rcmd)} = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Cleanup old commands. Not registered.
|
||||||
|
cleanup_old_commands();
|
||||||
|
|
||||||
|
foreach my $ref (keys %{$Conf{'commands'}}) {
|
||||||
|
my $file_content;
|
||||||
|
my $download = 0;
|
||||||
|
my $rcmd_file = $ConfDir.'/commands/'.$ref.'.rcmd';
|
||||||
|
|
||||||
|
# Check for local .rcmd.done files
|
||||||
|
if (-e $rcmd_file.'.done') {
|
||||||
|
# Ignore.
|
||||||
|
delete $Conf{'commands'}->{$ref};
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Search for local .rcmd file
|
||||||
|
if (-e $rcmd_file) {
|
||||||
|
my $remote_md5_file = $Conf{'temporal'}.'/'.$ref.'.md5';
|
||||||
|
|
||||||
|
$file_content = read_file($rcmd_file);
|
||||||
|
if (recv_file($ref.'.md5', $remote_md5_file) != 0) {
|
||||||
|
# Remote file could not be retrieved, skip.
|
||||||
|
delete $Conf{'commands'}->{$ref};
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $local_md5 = md5($file_content);
|
||||||
|
my $remote_md5 = md5(read_file($remote_md5_file));
|
||||||
|
|
||||||
|
if ($local_md5 ne $remote_md5) {
|
||||||
|
# Must be downloaded again.
|
||||||
|
$download = 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$download = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Search for remote .rcmd file
|
||||||
|
if ($download == 1) {
|
||||||
|
# Download .rcmd file
|
||||||
|
if (recv_file($ref.'.rcmd') != 0) {
|
||||||
|
# Remote file could not be retrieved, skip.
|
||||||
|
delete $Conf{'commands'}->{$ref};
|
||||||
|
next;
|
||||||
|
} else {
|
||||||
|
# Success
|
||||||
|
move($Conf{'temporal'}.'/'.$ref.'.rcmd', $rcmd_file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse and prepare in memory skel.
|
||||||
|
eval {
|
||||||
|
$Conf{'commands'}->{$ref} = YAML::Tiny->read($rcmd_file);
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
# Failed.
|
||||||
|
log_message('error', 'Failed to decode command. ' . "\n".$@);
|
||||||
|
delete $Conf{'commands'}->{$ref};
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Command report.
|
||||||
|
################################################################################
|
||||||
|
sub report_command {
|
||||||
|
my ($ref, $err_level) = @_;
|
||||||
|
|
||||||
|
# Retrieve content from .stdout and .stderr
|
||||||
|
my $stdout_file = $Conf{'temporal'}.'/'.$ref.'.stdout';
|
||||||
|
my $stderr_file = $Conf{'temporal'}.'/'.$ref.'.stderr';
|
||||||
|
|
||||||
|
my $return;
|
||||||
|
eval {
|
||||||
|
$return = {
|
||||||
|
'error_level' => $err_level,
|
||||||
|
'stdout' => read_file($stdout_file),
|
||||||
|
'stderr' => read_file($stderr_file),
|
||||||
|
};
|
||||||
|
|
||||||
|
$return->{'name'} = $Conf{'commands'}->{$ref}->[0]->{'name'};
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
log_message('error', 'Failed to report command output. ' . $@);
|
||||||
|
}
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
unlink($stdout_file) if (-e $stdout_file);
|
||||||
|
unlink($stderr_file) if (-e $stderr_file);
|
||||||
|
|
||||||
|
# Mark command as done.
|
||||||
|
open (my $R_FILE, '> '.$ConfDir.'/commands/'.$ref.'.rcmd.done');
|
||||||
|
print $R_FILE $err_level;
|
||||||
|
close($R_FILE);
|
||||||
|
|
||||||
|
|
||||||
|
$return->{'stdout'} = '' unless defined ($return->{'stdout'});
|
||||||
|
$return->{'stderr'} = '' unless defined ($return->{'stderr'});
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Cleanup unreferenced rcmd and rcmd.done files.
|
||||||
|
################################################################################
|
||||||
|
sub cleanup_old_commands {
|
||||||
|
# Cleanup old .rcmd and .rcmd.done files.
|
||||||
|
my %registered = map { $_.'.rcmd' => 1 } keys %{$Conf{'commands'}};
|
||||||
|
if(opendir(my $dir, $ConfDir.'/commands/')) {
|
||||||
|
while (my $item = readdir($dir)) {
|
||||||
|
|
||||||
|
# Skip other files.
|
||||||
|
next if ($item !~ /\.rcmd$/);
|
||||||
|
|
||||||
|
# Clean .rcmd.done file if its command is not referenced in conf.
|
||||||
|
if (!defined($registered{$item})) {
|
||||||
|
if (-e $ConfDir.'/commands/'.$item) {
|
||||||
|
unlink($ConfDir.'/commands/'.$item);
|
||||||
|
}
|
||||||
|
if (-e $ConfDir.'/commands/'.$item.'.done') {
|
||||||
|
unlink($ConfDir.'/commands/'.$item.'.done');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Close dir.
|
||||||
|
closedir($dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Executes a command using defined timeout.
|
||||||
|
################################################################################
|
||||||
|
sub execute_command_timeout {
|
||||||
|
my ($cmd, $timeout) = @_;
|
||||||
|
|
||||||
|
if (!defined($timeout)
|
||||||
|
|| !looks_like_number($timeout)
|
||||||
|
|| $timeout <= 0
|
||||||
|
) {
|
||||||
|
`$cmd`;
|
||||||
|
return $?>>8;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $remaining_timeout = $timeout;
|
||||||
|
|
||||||
|
my $RET;
|
||||||
|
my $output;
|
||||||
|
|
||||||
|
my $pid = open ($RET, "-|");
|
||||||
|
if (!defined($pid)) {
|
||||||
|
# Failed to fork.
|
||||||
|
log_message('error', '[command] Failed to fork.');
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
if ($pid == 0) {
|
||||||
|
# Child.
|
||||||
|
my $ret;
|
||||||
|
eval {
|
||||||
|
local $SIG{ALRM} = sub { die "timeout\n" };
|
||||||
|
alarm $timeout;
|
||||||
|
`$cmd`;
|
||||||
|
alarm 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
my $result = ($?>>8);
|
||||||
|
print $result;
|
||||||
|
|
||||||
|
# Exit child.
|
||||||
|
# Child finishes.
|
||||||
|
exit;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
# Parent waiting.
|
||||||
|
while( --$remaining_timeout > 0 ){
|
||||||
|
if (wait == -1) {
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
# Wait child up to timeout seconds.
|
||||||
|
sleep 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($remaining_timeout > 0) {
|
||||||
|
# Retrieve output from child.
|
||||||
|
$output = do { local $/; <$RET> };
|
||||||
|
$output = $output>>8;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# Timeout expired.
|
||||||
|
return 124;
|
||||||
|
}
|
||||||
|
|
||||||
|
close($RET);
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Executes a block of commands, returns error level, leaves output in
|
||||||
|
# redirection set by $std_files. E.g:
|
||||||
|
# $std_files = ' >> /tmp/stdout 2>> /tmp/stderr
|
||||||
|
################################################################################
|
||||||
|
sub execute_command_block {
|
||||||
|
my ($commands, $std_files, $timeout, $retry) = @_;
|
||||||
|
|
||||||
|
return 0 unless defined($commands);
|
||||||
|
|
||||||
|
my $retries = $retry;
|
||||||
|
|
||||||
|
$retries = 1 unless looks_like_number($retries) && $retries > 0;
|
||||||
|
|
||||||
|
my $err_level = 0;
|
||||||
|
$std_files = '' unless defined ($std_files);
|
||||||
|
|
||||||
|
if (ref($commands) ne "ARRAY") {
|
||||||
|
return 0 if $commands eq '';
|
||||||
|
|
||||||
|
do {
|
||||||
|
$err_level = execute_command_timeout(
|
||||||
|
"($commands) $std_files",
|
||||||
|
$timeout
|
||||||
|
);
|
||||||
|
|
||||||
|
# Do not retry if success.
|
||||||
|
last if looks_like_number($err_level) && $err_level == 0;
|
||||||
|
} while ((--$retries) > 0);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
foreach my $comm (@{$commands}) {
|
||||||
|
next unless defined($comm);
|
||||||
|
$retries = $retry;
|
||||||
|
$retries = 1 unless looks_like_number($retries) && $retries > 0;
|
||||||
|
|
||||||
|
do {
|
||||||
|
$err_level = execute_command_timeout(
|
||||||
|
"($comm) $std_files",
|
||||||
|
$timeout
|
||||||
|
);
|
||||||
|
|
||||||
|
# Do not retry if success.
|
||||||
|
last if looks_like_number($err_level) && $err_level == 0;
|
||||||
|
|
||||||
|
} while ((--$retries) > 0);
|
||||||
|
|
||||||
|
# Do not continue evaluating block if failed.
|
||||||
|
last unless ($err_level == 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $err_level;
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Evalate given command.
|
||||||
|
################################################################################
|
||||||
|
sub evaluate_command {
|
||||||
|
my ($ref) = @_;
|
||||||
|
|
||||||
|
# Not found.
|
||||||
|
return unless defined $Conf{'commands'}->{$ref};
|
||||||
|
|
||||||
|
# Already completed.
|
||||||
|
return if (-e $ConfDir.'/commands/'.$ref.'.rcmd.done');
|
||||||
|
|
||||||
|
# [0] because how library works.
|
||||||
|
my $cmd = $Conf{'commands'}->{$ref}->[0];
|
||||||
|
|
||||||
|
my $std_files = ' >> '.$Conf{'temporal'}.'/'.$ref.'.stdout ';
|
||||||
|
$std_files .= ' 2>> '.$Conf{'temporal'}.'/'.$ref.'.stderr ';
|
||||||
|
|
||||||
|
# Check preconditions
|
||||||
|
my $err_level;
|
||||||
|
|
||||||
|
$err_level = execute_command_block(
|
||||||
|
$cmd->{'preconditions'},
|
||||||
|
$std_files,
|
||||||
|
$cmd->{'timeout'}
|
||||||
|
);
|
||||||
|
|
||||||
|
# Precondition not satisfied.
|
||||||
|
return report_command($ref, $err_level) unless ($err_level == 0);
|
||||||
|
|
||||||
|
# Main run.
|
||||||
|
$err_level = execute_command_block(
|
||||||
|
$cmd->{'script'},
|
||||||
|
$std_files,
|
||||||
|
$cmd->{'timeout'}
|
||||||
|
);
|
||||||
|
|
||||||
|
# Script not success.
|
||||||
|
return report_command($ref, $err_level) unless ($err_level == 0);
|
||||||
|
|
||||||
|
# Check postconditions
|
||||||
|
$err_level = execute_command_block(
|
||||||
|
$cmd->{'postconditions'},
|
||||||
|
$std_files,
|
||||||
|
$cmd->{'timeout'}
|
||||||
|
);
|
||||||
|
|
||||||
|
# Return results.
|
||||||
|
return report_command($ref, $err_level);
|
||||||
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Sleep function
|
# Sleep function
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -1385,6 +1863,7 @@ sub sleep_agent {
|
|||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$LoopCounter = ($LoopCounter + 1) % MAX_LOOP_COUNTER;
|
||||||
return $iter_base_time;
|
return $iter_base_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1699,6 +2178,14 @@ sub exec_module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Check module interval
|
# Check module interval
|
||||||
|
if ($BrokerFlag > 0) {
|
||||||
|
if ($LoopCounter == 0) {
|
||||||
|
$module->{'counter'} = $module->{'intensive_interval'};
|
||||||
|
} else {
|
||||||
|
$module->{'counter'} = (($LoopCounter -1 ) % $module->{'intensive_interval'});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (++($module->{'counter'}) < $module->{'intensive_interval'}) {
|
if (++($module->{'counter'}) < $module->{'intensive_interval'}) {
|
||||||
$ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
$ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
||||||
return;
|
return;
|
||||||
@ -2395,7 +2882,7 @@ sub cron_valid_date {
|
|||||||
my $utime;
|
my $utime;
|
||||||
eval {
|
eval {
|
||||||
local $SIG{__DIE__} = sub {};
|
local $SIG{__DIE__} = sub {};
|
||||||
$utime = timelocal(0, $min, $hour, $mday, $month, $year);
|
$utime = strftime("%s", 0, $min, $hour, $mday, $month, $year);
|
||||||
};
|
};
|
||||||
if ($@) {
|
if ($@) {
|
||||||
return 0;
|
return 0;
|
||||||
@ -2967,6 +3454,8 @@ my $iter_base_time = time();
|
|||||||
$LogFileIdx = -1;
|
$LogFileIdx = -1;
|
||||||
# Loop
|
# Loop
|
||||||
while (1) {
|
while (1) {
|
||||||
|
load_libraries();
|
||||||
|
|
||||||
if (-e $Conf{'logfile'} && (stat($Conf{'logfile'}))[7] > $Conf{'logsize'}) {
|
if (-e $Conf{'logfile'} && (stat($Conf{'logfile'}))[7] > $Conf{'logsize'}) {
|
||||||
rotate_log();
|
rotate_log();
|
||||||
}
|
}
|
||||||
@ -2981,11 +3470,13 @@ while (1) {
|
|||||||
# Check file collections
|
# Check file collections
|
||||||
check_collections () unless ($Conf{'debug'} eq '1');
|
check_collections () unless ($Conf{'debug'} eq '1');
|
||||||
|
|
||||||
|
# Check scheduled commands
|
||||||
|
prepare_commands() unless ($Conf{'debug'} eq '1');
|
||||||
|
|
||||||
# Launch broker agents
|
# Launch broker agents
|
||||||
@BrokerPid = ();
|
@BrokerPid = ();
|
||||||
my @broker_agents = read_config ('broker_agent');
|
my @broker_agents = read_config ('broker_agent');
|
||||||
foreach my $broker_agent (@broker_agents) {
|
foreach my $broker_agent (@broker_agents) {
|
||||||
|
|
||||||
# Create broker conf file if it does not exist
|
# Create broker conf file if it does not exist
|
||||||
if (! -e "$ConfDir/${broker_agent}.conf") {
|
if (! -e "$ConfDir/${broker_agent}.conf") {
|
||||||
write_broker_conf($broker_agent);
|
write_broker_conf($broker_agent);
|
||||||
@ -2995,7 +3486,9 @@ while (1) {
|
|||||||
|
|
||||||
# Broker agent
|
# Broker agent
|
||||||
if ($main_agent == 0) {
|
if ($main_agent == 0) {
|
||||||
|
# Mark broker flag.
|
||||||
|
$BrokerFlag = 1;
|
||||||
|
|
||||||
# Set the configuration file
|
# Set the configuration file
|
||||||
$ConfFile = "${broker_agent}.conf";
|
$ConfFile = "${broker_agent}.conf";
|
||||||
|
|
||||||
@ -3109,6 +3602,24 @@ while (1) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ref ($Conf{'commands'}) eq "HASH") {
|
||||||
|
foreach my $command (keys %{$Conf{'commands'}}) {
|
||||||
|
my $result = evaluate_command($command);
|
||||||
|
if (ref($result) eq "HASH") {
|
||||||
|
# Process command result.
|
||||||
|
$Xml .= "<cmd_report>\n";
|
||||||
|
$Xml .= " <cmd_response>\n";
|
||||||
|
$Xml .= " <cmd_name><![CDATA[".$result->{'name'}."]]></cmd_name>\n";
|
||||||
|
$Xml .= " <cmd_key><![CDATA[".$command."]]></cmd_key>\n";
|
||||||
|
$Xml .= " <cmd_errorlevel><![CDATA[".$result->{'error_level'}."]]></cmd_errorlevel>\n";
|
||||||
|
$Xml .= " <cmd_stdout><![CDATA[".$result->{'stdout'}."]]></cmd_stdout>\n";
|
||||||
|
$Xml .= " <cmd_stderr><![CDATA[".$result->{'stderr'}."]]></cmd_stderr>\n";
|
||||||
|
$Xml .= " </cmd_response>\n";
|
||||||
|
$Xml .= "</cmd_report>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Wait for all the threads
|
# Wait for all the threads
|
||||||
$ThreadSem->down ($Conf{'agent_threads'}) if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
$ThreadSem->down ($Conf{'agent_threads'}) if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
||||||
$ThreadSem->up ($Conf{'agent_threads'}) if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
$ThreadSem->up ($Conf{'agent_threads'}) if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#Pandora FMS Linux Agent
|
#Pandora FMS Linux Agent
|
||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0NG.738
|
%define version 7.0NG.743
|
||||||
%define release 190821
|
%define release 200210
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
@ -24,7 +24,7 @@ Requires(preun): chkconfig /bin/rm /usr/sbin/userdel
|
|||||||
Requires: fileutils textutils unzip
|
Requires: fileutils textutils unzip
|
||||||
Requires: util-linux procps grep
|
Requires: util-linux procps grep
|
||||||
Requires: /sbin/ip /bin/awk
|
Requires: /sbin/ip /bin/awk
|
||||||
Requires: perl perl(Sys::Syslog) perl(IO::Compress::Zip)
|
Requires: perl perl(Sys::Syslog) perl(IO::Compress::Zip) perl(YAML::Tiny)
|
||||||
# Required by plugins
|
# Required by plugins
|
||||||
#Requires: sh-utils sed passwd net-tools rpm
|
#Requires: sh-utils sed passwd net-tools rpm
|
||||||
AutoReq: 0
|
AutoReq: 0
|
||||||
@ -99,6 +99,11 @@ if [ ! -e /etc/pandora/collections ]; then
|
|||||||
ln -s /usr/share/pandora_agent/collections /etc/pandora
|
ln -s /usr/share/pandora_agent/collections /etc/pandora
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -e /etc/pandora/commands ]; then
|
||||||
|
mkdir -p /usr/share/pandora_agent/commands
|
||||||
|
ln -s /usr/share/pandora_agent/commands /etc/pandora
|
||||||
|
fi
|
||||||
|
|
||||||
mkdir -p /var/spool/pandora/data_out
|
mkdir -p /var/spool/pandora/data_out
|
||||||
if [ ! -d /var/log/pandora ]; then
|
if [ ! -d /var/log/pandora ]; then
|
||||||
mkdir -p /var/log/pandora
|
mkdir -p /var/log/pandora
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#Pandora FMS Linux Agent
|
#Pandora FMS Linux Agent
|
||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0NG.738
|
%define version 7.0NG.743
|
||||||
%define release 190821
|
%define release 200210
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
@ -18,8 +18,9 @@ Packager: Sancho Lerena <slerena@artica.es>
|
|||||||
Prefix: /usr/share
|
Prefix: /usr/share
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
|
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
PreReq: %fillup_prereq %insserv_prereq /usr/bin/sed /usr/bin/grep /usr/sbin/useradd
|
#PreReq: %fillup_prereq %insserv_prereq /usr/bin/sed /usr/bin/grep /usr/sbin/useradd
|
||||||
Requires: coreutils unzip perl
|
Requires(pre,preun):/usr/bin/sed /usr/bin/grep /usr/sbin/useradd
|
||||||
|
Requires: coreutils unzip perl perl(Sys::Syslog) perl(IO::Compress::Zip) perl(YAML::Tiny)
|
||||||
AutoReq: 0
|
AutoReq: 0
|
||||||
Provides: %{name}-%{version}
|
Provides: %{name}-%{version}
|
||||||
|
|
||||||
@ -90,6 +91,11 @@ fi
|
|||||||
if [ ! -e /etc/pandora/collections ]; then
|
if [ ! -e /etc/pandora/collections ]; then
|
||||||
mkdir /etc/pandora/collections
|
mkdir /etc/pandora/collections
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -e /etc/pandora/commands ]; then
|
||||||
|
mkdir /etc/pandora/commands
|
||||||
|
fi
|
||||||
|
|
||||||
cp -aRf /usr/share/pandora_agent/pandora_agent_logrotate /etc/logrotate.d/pandora_agent
|
cp -aRf /usr/share/pandora_agent/pandora_agent_logrotate /etc/logrotate.d/pandora_agent
|
||||||
|
|
||||||
# Enable the service on SystemD
|
# Enable the service on SystemD
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.738"
|
PI_VERSION="7.0NG.743"
|
||||||
PI_BUILD="190821"
|
PI_BUILD="200210"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
@ -89,7 +89,7 @@ fi
|
|||||||
[ "$4" ] && PANDORA_PERL_PATH=$4
|
[ "$4" ] && PANDORA_PERL_PATH=$4
|
||||||
|
|
||||||
# Check for Perl 5.6.x or higher available
|
# Check for Perl 5.6.x or higher available
|
||||||
PERL_VERSION=`$PANDORA_PERL_PATH -v | egrep 'v5.[6-9]|v5.[12][0-9]' | grep perl`
|
PERL_VERSION=`$PANDORA_PERL_PATH -v | egrep 'v5.[6-9]|v5.[1-3][0-9]' | grep perl`
|
||||||
|
|
||||||
if [ -z "$PERL_VERSION" ]
|
if [ -z "$PERL_VERSION" ]
|
||||||
then
|
then
|
||||||
@ -162,7 +162,15 @@ uninstall () {
|
|||||||
rm -Rf $PANDORA_BASE$PANDORA_EXEC_BIN 2> /dev/null
|
rm -Rf $PANDORA_BASE$PANDORA_EXEC_BIN 2> /dev/null
|
||||||
rm -Rf $PANDORA_BASE$PANDORA_REVENT_BIN 2> /dev/null
|
rm -Rf $PANDORA_BASE$PANDORA_REVENT_BIN 2> /dev/null
|
||||||
rm -f $DESTDIR/etc/logrotate.d/pandora_agent
|
rm -f $DESTDIR/etc/logrotate.d/pandora_agent
|
||||||
|
|
||||||
|
# Remove systemd service if exists
|
||||||
|
if [ $(systemctl --v | grep systemd | wc -l) != 0 ]
|
||||||
|
then
|
||||||
|
PANDORA_AGENT_SERVICE="/etc/systemd/system/pandora_agent_daemon.service"
|
||||||
|
rm -f $PANDORA_AGENT_SERVICE
|
||||||
|
systemctl reset-failed
|
||||||
|
fi
|
||||||
|
|
||||||
#Test if exist Pandora Server in this machine
|
#Test if exist Pandora Server in this machine
|
||||||
if [ -d $PANDORA_BASE$PANDORA_TEMP/data_in ]
|
if [ -d $PANDORA_BASE$PANDORA_TEMP/data_in ]
|
||||||
then
|
then
|
||||||
@ -392,6 +400,11 @@ install () {
|
|||||||
mkdir -p $PANDORA_BASE$PANDORA_HOME/collections
|
mkdir -p $PANDORA_BASE$PANDORA_HOME/collections
|
||||||
chmod -R 700 $PANDORA_BASE$PANDORA_HOME/collections
|
chmod -R 700 $PANDORA_BASE$PANDORA_HOME/collections
|
||||||
ln -s $PANDORA_BASE_REAL$PANDORA_HOME/collections $PANDORA_BASE$PANDORA_CFG
|
ln -s $PANDORA_BASE_REAL$PANDORA_HOME/collections $PANDORA_BASE$PANDORA_CFG
|
||||||
|
|
||||||
|
echo "Creating the commands directory in $PANDORA_BASE$PANDORA_HOME/commands..."
|
||||||
|
mkdir -p $PANDORA_BASE$PANDORA_HOME/commands
|
||||||
|
chmod -R 700 $PANDORA_BASE$PANDORA_HOME/commands
|
||||||
|
ln -s $PANDORA_BASE_REAL$PANDORA_HOME/commands $PANDORA_BASE$PANDORA_CFG
|
||||||
|
|
||||||
if [ $WITHOUT_TENTACLE_SERVER -eq 0 ]
|
if [ $WITHOUT_TENTACLE_SERVER -eq 0 ]
|
||||||
then
|
then
|
||||||
@ -465,6 +478,22 @@ install () {
|
|||||||
else
|
else
|
||||||
RCDIRS="/etc/rc2.d /etc/rc3.d"
|
RCDIRS="/etc/rc2.d /etc/rc3.d"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Create systemd service
|
||||||
|
if [ $(systemctl --v | grep systemd | wc -l) != 0 ]
|
||||||
|
then
|
||||||
|
echo "Creating systemd service for pandora_agent_daemon"
|
||||||
|
|
||||||
|
PANDORA_AGENT_SERVICE="/etc/systemd/system/pandora_agent_daemon.service"
|
||||||
|
EXEC_START='ExecStart='$PANDORA_BASE$PANDORA_BIN' '$PANDORA_BASE$PANDORA_CFG
|
||||||
|
|
||||||
|
rm -f $PANDORA_AGENT_SERVICE
|
||||||
|
cp pandora_agent_daemon.service $PANDORA_AGENT_SERVICE
|
||||||
|
|
||||||
|
sed -i "s|^ExecStart=.*$|$EXEC_START|g" $PANDORA_AGENT_SERVICE
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
[ "$RCDIRS" ] && for RCDIR in $RCDIRS
|
[ "$RCDIRS" ] && for RCDIR in $RCDIRS
|
||||||
do
|
do
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Base config file for Pandora FMS Windows Agent
|
# Base config file for Pandora FMS Windows Agent
|
||||||
# (c) 2006-2017 Artica Soluciones Tecnologicas
|
# (c) 2006-2017 Artica Soluciones Tecnologicas
|
||||||
# Version 7.0NG.738
|
# Version 7.0NG.743
|
||||||
|
|
||||||
# This program is Free Software, you can redistribute it and/or modify it
|
# This program is Free Software, you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||||
|
3432
pandora_agents/win32/bin/util/curl-ca-bundle.crt
Normal file
3432
pandora_agents/win32/bin/util/curl-ca-bundle.crt
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@ AllowLanguageSelection
|
|||||||
{Yes}
|
{Yes}
|
||||||
|
|
||||||
AppName
|
AppName
|
||||||
{Pandora FMS Windows Agent v7.0NG.738}
|
{Pandora FMS Windows Agent v7.0NG.743}
|
||||||
|
|
||||||
ApplicationID
|
ApplicationID
|
||||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||||
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{190821}
|
{200210}
|
||||||
|
|
||||||
ViewReadme
|
ViewReadme
|
||||||
{Yes}
|
{Yes}
|
||||||
|
@ -1422,48 +1422,48 @@ Pandora_Module::evaluatePreconditions () {
|
|||||||
buffer[read] = '\0';
|
buffer[read] = '\0';
|
||||||
output += (char *) buffer;
|
output += (char *) buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
double_output = Pandora_Strutils::strtodouble (output);
|
double_output = Pandora_Strutils::strtodouble (output);
|
||||||
} catch (Pandora_Strutils::Invalid_Conversion e) {
|
} catch (Pandora_Strutils::Invalid_Conversion e) {
|
||||||
double_output = 0;
|
double_output = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dwRet == WAIT_OBJECT_0) {
|
||||||
|
break;
|
||||||
|
} else if(this->getTimeout() < GetTickCount() - tickbase) {
|
||||||
|
/* STILL_ACTIVE */
|
||||||
|
TerminateProcess(pi.hThread, STILL_ACTIVE);
|
||||||
|
pandoraLog ("evaluatePreconditions: %s timed out (retcode: %d)", this->module_name.c_str (), STILL_ACTIVE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dwRet == WAIT_OBJECT_0) {
|
GetExitCodeProcess (pi.hProcess, &retval);
|
||||||
break;
|
|
||||||
} else if(this->getTimeout() < GetTickCount() - tickbase) {
|
if (retval != 0) {
|
||||||
/* STILL_ACTIVE */
|
if (! TerminateJobObject (job, 0)) {
|
||||||
TerminateProcess(pi.hThread, STILL_ACTIVE);
|
pandoraLog ("evaluatePreconditions: TerminateJobObject failed. (error %d)",
|
||||||
pandoraLog ("evaluatePreconditions: %s timed out (retcode: %d)", this->module_name.c_str (), STILL_ACTIVE);
|
GetLastError ());
|
||||||
break;
|
}
|
||||||
|
if (retval != STILL_ACTIVE) {
|
||||||
|
pandoraLog ("evaluatePreconditions: %s did not executed well (retcode: %d)",
|
||||||
|
this->module_name.c_str (), retval);
|
||||||
|
}
|
||||||
|
/* Close job, process and thread handles. */
|
||||||
|
CloseHandle (job);
|
||||||
|
CloseHandle (pi.hProcess);
|
||||||
|
CloseHandle (pi.hThread);
|
||||||
|
CloseHandle (new_stdout);
|
||||||
|
CloseHandle (out_read);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
GetExitCodeProcess (pi.hProcess, &retval);
|
|
||||||
|
|
||||||
if (retval != 0) {
|
|
||||||
if (! TerminateJobObject (job, 0)) {
|
|
||||||
pandoraLog ("evaluatePreconditions: TerminateJobObject failed. (error %d)",
|
|
||||||
GetLastError ());
|
|
||||||
}
|
|
||||||
if (retval != STILL_ACTIVE) {
|
|
||||||
pandoraLog ("evaluatePreconditions: %s did not executed well (retcode: %d)",
|
|
||||||
this->module_name.c_str (), retval);
|
|
||||||
}
|
|
||||||
/* Close job, process and thread handles. */
|
/* Close job, process and thread handles. */
|
||||||
CloseHandle (job);
|
CloseHandle (job);
|
||||||
CloseHandle (pi.hProcess);
|
CloseHandle (pi.hProcess);
|
||||||
CloseHandle (pi.hThread);
|
CloseHandle (pi.hThread);
|
||||||
CloseHandle (new_stdout);
|
|
||||||
CloseHandle (out_read);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Close job, process and thread handles. */
|
|
||||||
CloseHandle (job);
|
|
||||||
CloseHandle (pi.hProcess);
|
|
||||||
CloseHandle (pi.hThread);
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseHandle (new_stdout);
|
CloseHandle (new_stdout);
|
||||||
CloseHandle (out_read);
|
CloseHandle (out_read);
|
||||||
@ -1693,4 +1693,32 @@ Pandora_Module::getAsync () {
|
|||||||
return this->async;
|
return this->async;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get current exections
|
||||||
|
*/
|
||||||
|
long
|
||||||
|
Pandora_Module::getExecutions () {
|
||||||
|
return this->executions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set current execution (global) used for brokers.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
Pandora_Module::setExecutions (long executions) {
|
||||||
|
this->executions = executions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the module has intensive conditions.
|
||||||
|
*
|
||||||
|
* @return true if the module's intensive condition list is not empty, false if it is.
|
||||||
|
*/
|
||||||
|
bool
|
||||||
|
Pandora_Module::isIntensive () {
|
||||||
|
if (this->intensive_condition_list == NULL || this->intensive_condition_list->size () <= 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@ -234,6 +234,8 @@ namespace Pandora_Modules {
|
|||||||
int getTimeout ();
|
int getTimeout ();
|
||||||
string getSave ();
|
string getSave ();
|
||||||
bool getAsync ();
|
bool getAsync ();
|
||||||
|
void setExecutions(long executions=0);
|
||||||
|
long getExecutions();
|
||||||
|
|
||||||
virtual string getXml ();
|
virtual string getXml ();
|
||||||
|
|
||||||
@ -301,6 +303,7 @@ namespace Pandora_Modules {
|
|||||||
time_t getTimestamp ();
|
time_t getTimestamp ();
|
||||||
void setIntensiveMatch (unsigned char intensive_match);
|
void setIntensiveMatch (unsigned char intensive_match);
|
||||||
unsigned char getIntensiveMatch ();
|
unsigned char getIntensiveMatch ();
|
||||||
|
bool isIntensive ();
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1214,7 +1214,8 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||||||
module_source,
|
module_source,
|
||||||
module_eventtype,
|
module_eventtype,
|
||||||
module_eventcode,
|
module_eventcode,
|
||||||
module_pattern);
|
module_pattern,
|
||||||
|
module_application);
|
||||||
} else if (module_wmiquery != "") {
|
} else if (module_wmiquery != "") {
|
||||||
module = new Pandora_Module_WMIQuery (module_name,
|
module = new Pandora_Module_WMIQuery (module_name,
|
||||||
module_wmiquery, module_wmicolumn);
|
module_wmiquery, module_wmicolumn);
|
||||||
|
@ -53,7 +53,7 @@ static EvtUpdateBookmarkT EvtUpdateBookmarkF = NULL;
|
|||||||
* @param name Module name.
|
* @param name Module name.
|
||||||
* @param service_name Service internal name to check.
|
* @param service_name Service internal name to check.
|
||||||
*/
|
*/
|
||||||
Pandora_Module_Logchannel::Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern)
|
Pandora_Module_Logchannel::Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern, string application)
|
||||||
: Pandora_Module (name) {
|
: Pandora_Module (name) {
|
||||||
int i;
|
int i;
|
||||||
vector<wstring> query;
|
vector<wstring> query;
|
||||||
@ -93,6 +93,13 @@ Pandora_Module_Logchannel::Pandora_Module_Logchannel (string name, string source
|
|||||||
query.push_back(ss.str());
|
query.push_back(ss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the application
|
||||||
|
if (application != "") {
|
||||||
|
wstringstream ss;
|
||||||
|
ss << L"*[System/Provider[@Name='" << application.c_str() << L"']]";
|
||||||
|
query.push_back(ss.str());
|
||||||
|
}
|
||||||
|
|
||||||
// Fill the filter
|
// Fill the filter
|
||||||
if (query.size() == 0) {
|
if (query.size() == 0) {
|
||||||
this->filter = L"*";
|
this->filter = L"*";
|
||||||
@ -579,4 +586,4 @@ Pandora_Module_Logchannel::GetMessageString(EVT_HANDLE hMetadata, EVT_HANDLE hEv
|
|||||||
}
|
}
|
||||||
|
|
||||||
return pBuffer;
|
return pBuffer;
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ namespace Pandora_Modules {
|
|||||||
LPWSTR GetMessageString(EVT_HANDLE hMetadata, EVT_HANDLE hEvent, EVT_FORMAT_MESSAGE_FLAGS FormatId);
|
LPWSTR GetMessageString(EVT_HANDLE hMetadata, EVT_HANDLE hEvent, EVT_FORMAT_MESSAGE_FLAGS FormatId);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern);
|
Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern, string application);
|
||||||
void run ();
|
void run ();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||||||
using namespace Pandora_Strutils;
|
using namespace Pandora_Strutils;
|
||||||
|
|
||||||
#define PATH_SIZE _MAX_PATH+1
|
#define PATH_SIZE _MAX_PATH+1
|
||||||
#define PANDORA_VERSION ("7.0NG.738(Build 190821)")
|
#define PANDORA_VERSION ("7.0NG.743(Build 200210)")
|
||||||
|
|
||||||
string pandora_path;
|
string pandora_path;
|
||||||
string pandora_dir;
|
string pandora_dir;
|
||||||
|
@ -1849,7 +1849,7 @@ Pandora_Windows_Service::sendBufferedXml (string path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Pandora_Windows_Service::pandora_run_broker (string config) {
|
Pandora_Windows_Service::pandora_run_broker (string config, long executions) {
|
||||||
Pandora_Agent_Conf *conf = NULL;
|
Pandora_Agent_Conf *conf = NULL;
|
||||||
string server_addr;
|
string server_addr;
|
||||||
unsigned char data_flag = 0;
|
unsigned char data_flag = 0;
|
||||||
@ -1876,7 +1876,10 @@ Pandora_Windows_Service::pandora_run_broker (string config) {
|
|||||||
Pandora_Module *module;
|
Pandora_Module *module;
|
||||||
|
|
||||||
module = this->broker_modules->getCurrentValue ();
|
module = this->broker_modules->getCurrentValue ();
|
||||||
|
|
||||||
|
/* Keep executions matching main agent */
|
||||||
|
module->setExecutions(executions);
|
||||||
|
|
||||||
/* Check preconditions */
|
/* Check preconditions */
|
||||||
if (module->evaluatePreconditions () == 0) {
|
if (module->evaluatePreconditions () == 0) {
|
||||||
pandoraDebug ("Preconditions not matched for module %s", module->getName ().c_str ());
|
pandoraDebug ("Preconditions not matched for module %s", module->getName ().c_str ());
|
||||||
@ -1915,16 +1918,19 @@ Pandora_Windows_Service::pandora_run_broker (string config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Evaluate intensive conditions */
|
/* Evaluate intensive conditions */
|
||||||
intensive_match = module->evaluateIntensiveConditions ();
|
if (module->isIntensive()) {
|
||||||
if (intensive_match == module->getIntensiveMatch () && module->getTimestamp () + module->getInterval () * this->interval_sec > this->run_time) {
|
intensive_match = module->evaluateIntensiveConditions ();
|
||||||
module->setNoOutput ();
|
if (intensive_match == module->getIntensiveMatch () && module->getTimestamp () + module->getInterval () * this->interval_sec > this->run_time) {
|
||||||
this->broker_modules->goNext ();
|
module->setNoOutput ();
|
||||||
continue;
|
this->broker_modules->goNext ();
|
||||||
}
|
continue;
|
||||||
module->setIntensiveMatch (intensive_match);
|
}
|
||||||
|
|
||||||
if (module->getTimestamp () + module->getInterval () * this->interval_sec <= this->run_time) {
|
if (module->getTimestamp () + module->getInterval () * this->interval_sec <= this->run_time) {
|
||||||
module->setTimestamp (this->run_time);
|
module->setTimestamp (this->run_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
module->setIntensiveMatch (intensive_match);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Evaluate module conditions */
|
/* Evaluate module conditions */
|
||||||
@ -2035,16 +2041,19 @@ Pandora_Windows_Service::pandora_run (int forced_run) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Evaluate intensive conditions */
|
/* Evaluate intensive conditions */
|
||||||
intensive_match = module->evaluateIntensiveConditions ();
|
if (module->isIntensive()) {
|
||||||
if (forced_run != 1 && intensive_match == module->getIntensiveMatch () && module->getTimestamp () + module->getInterval () * this->interval_sec > this->run_time) {
|
intensive_match = module->evaluateIntensiveConditions ();
|
||||||
module->setNoOutput ();
|
if (forced_run != 1 && intensive_match == module->getIntensiveMatch () && module->getTimestamp () + module->getInterval () * this->interval_sec > this->run_time) {
|
||||||
this->modules->goNext ();
|
module->setNoOutput ();
|
||||||
continue;
|
this->modules->goNext ();
|
||||||
}
|
continue;
|
||||||
module->setIntensiveMatch (intensive_match);
|
}
|
||||||
|
|
||||||
if (module->getTimestamp () + module->getInterval () * this->interval_sec <= this->run_time) {
|
if (module->getTimestamp () + module->getInterval () * this->interval_sec <= this->run_time) {
|
||||||
module->setTimestamp (this->run_time);
|
module->setTimestamp (this->run_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
module->setIntensiveMatch (intensive_match);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Evaluate module conditions */
|
/* Evaluate module conditions */
|
||||||
@ -2074,7 +2083,7 @@ Pandora_Windows_Service::pandora_run (int forced_run) {
|
|||||||
check_broker_agents(all_conf);
|
check_broker_agents(all_conf);
|
||||||
for (i=0;i<num;i++){
|
for (i=0;i<num;i++){
|
||||||
pandora_init_broker(all_conf[i]);
|
pandora_init_broker(all_conf[i]);
|
||||||
pandora_run_broker(all_conf[i]);
|
pandora_run_broker(all_conf[i], execution_number);
|
||||||
}
|
}
|
||||||
delete []all_conf;
|
delete []all_conf;
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ namespace Pandora {
|
|||||||
int checkConfig (string file);
|
int checkConfig (string file);
|
||||||
void purgeDiskCollections ();
|
void purgeDiskCollections ();
|
||||||
void pandora_init_broker (string file_conf);
|
void pandora_init_broker (string file_conf);
|
||||||
void pandora_run_broker (string config);
|
void pandora_run_broker (string config, long executions=0);
|
||||||
int count_broker_agents();
|
int count_broker_agents();
|
||||||
void check_broker_agents(string *all_conf);
|
void check_broker_agents(string *all_conf);
|
||||||
int launchTentacleProxy();
|
int launchTentacleProxy();
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
|||||||
VALUE "LegalCopyright", "Artica ST"
|
VALUE "LegalCopyright", "Artica ST"
|
||||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||||
VALUE "ProductVersion", "(7.0NG.738(Build 190821))"
|
VALUE "ProductVersion", "(7.0NG.743(Build 200210))"
|
||||||
VALUE "FileVersion", "1.0.0.0"
|
VALUE "FileVersion", "1.0.0.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
2
pandora_console/.htaccess
Normal file
2
pandora_console/.htaccess
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# pandora disable listing
|
||||||
|
Options -Indexes
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-console
|
package: pandorafms-console
|
||||||
Version: 7.0NG.738-190821
|
Version: 7.0NG.743-200210
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.738-190821"
|
pandora_version="7.0NG.743-200210"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
@ -44,8 +44,15 @@ then
|
|||||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||||
if [ $? = 1 ]
|
if [ $? = 1 ]
|
||||||
then
|
then
|
||||||
echo "No found \"dpkg-deb\" aplication, please install."
|
if [ "$DPKG_DEB" == "" ]; then
|
||||||
exit 1
|
echo "No found \"dpkg-deb\" aplication, please install."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ">> Using dockerized version of dpkg-deb: "
|
||||||
|
echo " $DPKG_DEB"
|
||||||
|
# Use dockerized app.
|
||||||
|
USE_DOCKER_APP=1
|
||||||
else
|
else
|
||||||
echo "Found \"dpkg-debs\"."
|
echo "Found \"dpkg-debs\"."
|
||||||
fi
|
fi
|
||||||
@ -70,15 +77,15 @@ then
|
|||||||
else
|
else
|
||||||
echo "Found \"fakeroot\"."
|
echo "Found \"fakeroot\"."
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
whereis dpkg-buildpackage | cut -d":" -f2 | grep dpkg-buildpackage > /dev/null
|
whereis dpkg-buildpackage | cut -d":" -f2 | grep dpkg-buildpackage > /dev/null
|
||||||
if [ $? = 1 ]
|
if [ $? = 1 ]
|
||||||
then
|
then
|
||||||
echo " \"dpkg-buildpackage\" aplication not found, please install."
|
echo " \"dpkg-buildpackage\" aplication not found, please install."
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Found \"dpkg-buildpackage\"."
|
echo "Found \"dpkg-buildpackage\"."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
@ -141,7 +148,11 @@ then
|
|||||||
echo "END"
|
echo "END"
|
||||||
|
|
||||||
echo "Make the package \"Pandorafms console\"."
|
echo "Make the package \"Pandorafms console\"."
|
||||||
dpkg-deb --build temp_package
|
if [ "$USE_DOCKER_APP" == "1" ]; then
|
||||||
|
eval $DPKG_DEB --build temp_package
|
||||||
|
else
|
||||||
|
dpkg-deb --build temp_package
|
||||||
|
fi
|
||||||
mv temp_package.deb pandorafms.console_$pandora_version.deb
|
mv temp_package.deb pandorafms.console_$pandora_version.deb
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -11,4 +11,11 @@ echo Restart the apache.
|
|||||||
/etc/init.d/apache2 restart
|
/etc/init.d/apache2 restart
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Install pandora_websocket_engine service.
|
||||||
|
cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/
|
||||||
|
chmod +x /etc/init.d/pandora_websocket_engine
|
||||||
|
|
||||||
|
echo "You can now start the Pandora FMS Websocket service by executing"
|
||||||
|
echo " /etc/init.d/pandora_websocket_engine start"
|
||||||
|
|
||||||
echo "Please, now, point your browser to http://your_IP_address/pandora_console/install.php and follow all the steps described on it."
|
echo "Please, now, point your browser to http://your_IP_address/pandora_console/install.php and follow all the steps described on it."
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
Order deny,allow
|
#Order deny,allow
|
||||||
Deny from All
|
#Deny from All
|
||||||
Allow from localhost
|
#Allow from localhost
|
||||||
|
|
||||||
|
#pandora disable phpexec
|
||||||
|
<FilesMatch "\.(txt|php)$">
|
||||||
|
Deny from all
|
||||||
|
Allow from localhost
|
||||||
|
</FilesMatch>
|
||||||
|
php_flag engine off
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Pandora FMS",
|
"name": "pandorafms/console",
|
||||||
"description": "Pandora Flexible Monitoring System ",
|
"description": "Pandora Flexible Monitoring System ",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -14,7 +14,9 @@
|
|||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Models\\": "include/rest-api/models",
|
"Models\\": "include/rest-api/models",
|
||||||
"Enterprise\\Models\\": "enterprise/include/rest-api/models"
|
"Enterprise\\Models\\": "enterprise/include/rest-api/models",
|
||||||
|
"PandoraFMS\\": "include/lib",
|
||||||
|
"PandoraFMS\\Enterprise\\": "enterprise/include/lib"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
|
@ -13,7 +13,264 @@
|
|||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extra JS.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function agents_modules_load_js()
|
||||||
|
{
|
||||||
|
$ignored_params['refresh'] = '';
|
||||||
|
|
||||||
|
?>
|
||||||
|
<style type='text/css'>
|
||||||
|
.rotate_text_module {
|
||||||
|
-ms-transform: rotate(270deg);
|
||||||
|
-webkit-transform: rotate(270deg);
|
||||||
|
-moz-transform: rotate(270deg);
|
||||||
|
-o-transform: rotate(270deg);
|
||||||
|
writing-mode: lr-tb;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type='text/javascript'>
|
||||||
|
$(document).ready(function () {
|
||||||
|
//Get max width of name of modules
|
||||||
|
max_width = 0;
|
||||||
|
$.each($('.th_class_module_r'), function (i, elem) {
|
||||||
|
id = $(elem).attr('id').replace('th_module_r_', '');
|
||||||
|
|
||||||
|
width = $("#div_module_r_" + id).width();
|
||||||
|
|
||||||
|
if (max_width < width) {
|
||||||
|
max_width = width;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.each($('.th_class_module_r'), function (i, elem) {
|
||||||
|
id = $(elem).attr('id').replace('th_module_r_', '');
|
||||||
|
$("#th_module_r_" + id).height(($("#div_module_r_" + id).width() + 10) + 'px');
|
||||||
|
$("#div_module_r_" + id).css('margin-top', (max_width - 20) + 'px');
|
||||||
|
$("#div_module_r_" + id).show();
|
||||||
|
});
|
||||||
|
|
||||||
|
var refr = '<?php echo get_parameter('refresh', 0); ?>';
|
||||||
|
var pure = '<?php echo get_parameter('pure', 0); ?>';
|
||||||
|
var href =' <?php echo ui_get_url_refresh($ignored_params); ?>';
|
||||||
|
|
||||||
|
if (pure) {
|
||||||
|
var startCountDown = function (duration, cb) {
|
||||||
|
$('div.vc-countdown').countdown('destroy');
|
||||||
|
if (!duration) return;
|
||||||
|
var t = new Date();
|
||||||
|
t.setTime(t.getTime() + duration * 1000);
|
||||||
|
$('div.vc-countdown').countdown({
|
||||||
|
until: t,
|
||||||
|
format: 'MS',
|
||||||
|
layout: '(%M%nn%M:%S%nn%S <?php echo __('Until next'); ?>) ',
|
||||||
|
alwaysExpire: true,
|
||||||
|
onExpiry: function () {
|
||||||
|
$('div.vc-countdown').countdown('destroy');
|
||||||
|
url = js_html_entity_decode( href ) + duration;
|
||||||
|
$(document).attr ("location", url);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if(refr>0){
|
||||||
|
startCountDown(refr, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
var controls = document.getElementById('vc-controls');
|
||||||
|
autoHideElement(controls, 1000);
|
||||||
|
|
||||||
|
$('select#refresh').change(function (event) {
|
||||||
|
refr = Number.parseInt(event.target.value, 10);
|
||||||
|
startCountDown(refr, false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
var agentes_id = $("#id_agents2").val();
|
||||||
|
var id_agentes = getQueryParam("full_agents_id");
|
||||||
|
if (agentes_id === null && id_agentes !== null) {
|
||||||
|
id_agentes = id_agentes.split(";")
|
||||||
|
id_agentes.forEach(function(element) {
|
||||||
|
$("#id_agents2 option[value="+ element +"]").attr("selected",true);
|
||||||
|
});
|
||||||
|
|
||||||
|
selection_agent_module();
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#refresh').change(function () {
|
||||||
|
$('#hidden-vc_refr').val($('#refresh option:selected').val());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#group_id").change (function () {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_agents_group_json" : 1,
|
||||||
|
"id_group" : this.value,
|
||||||
|
"privilege" : "AW",
|
||||||
|
"keys_prefix" : "_",
|
||||||
|
"recursion" : $('#checkbox-recursion').is(':checked')
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#id_agents2").html('');
|
||||||
|
$("#module").html('');
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
// Remove keys_prefix from the index
|
||||||
|
id = id.substring(1);
|
||||||
|
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente"])
|
||||||
|
.html (value["alias"]);
|
||||||
|
$("#id_agents").append (option);
|
||||||
|
$("#id_agents2").append (option);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#checkbox-recursion").change (function () {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_agents_group_json" : 1,
|
||||||
|
"id_group" : $("#group_id").val(),
|
||||||
|
"privilege" : "AW",
|
||||||
|
"keys_prefix" : "_",
|
||||||
|
"recursion" : $('#checkbox-recursion').is(':checked')
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#id_agents2").html('');
|
||||||
|
$("#module").html('');
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
// Remove keys_prefix from the index
|
||||||
|
id = id.substring(1);
|
||||||
|
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente"])
|
||||||
|
.html (value["alias"]);
|
||||||
|
$("#id_agents").append (option);
|
||||||
|
$("#id_agents2").append (option);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#modulegroup").change (function () {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_modules_group_json" : 1,
|
||||||
|
"id_module_group" : this.value,
|
||||||
|
"id_agents" : $("#id_agents2").val(),
|
||||||
|
"selection" : $("#selection_agent_module").val()
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#module").html('');
|
||||||
|
if(data){
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente_modulo"])
|
||||||
|
.html (value["nombre"]);
|
||||||
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#id_agents2").click (function(){
|
||||||
|
selection_agent_module();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#selection_agent_module").change(function() {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_modules_group_json" : 1,
|
||||||
|
"id_module_group" : $("#modulegroup").val(),
|
||||||
|
"id_agents" : $("#id_agents2").val(),
|
||||||
|
"selection" : $("#selection_agent_module").val()
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#module").html('');
|
||||||
|
if(data){
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente_modulo"])
|
||||||
|
.html (value["nombre"]);
|
||||||
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function selection_agent_module() {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_modules_group_json" : 1,
|
||||||
|
"id_module_group" : $("#modulegroup").val(),
|
||||||
|
"id_agents" : $("#id_agents2").val(),
|
||||||
|
"selection" : $("#selection_agent_module").val()
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#module").html('');
|
||||||
|
if(data){
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente_modulo"])
|
||||||
|
.html (value["nombre"]);
|
||||||
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
|
||||||
|
var id_modules = getQueryParam("full_modules_selected");
|
||||||
|
if(id_modules !== null) {
|
||||||
|
id_modules = id_modules.split(";");
|
||||||
|
id_modules.forEach(function(element) {
|
||||||
|
$("#module option[value="+ element +"]").attr("selected",true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getQueryParam (key) {
|
||||||
|
key = key.replace(/[[]/, '[');
|
||||||
|
key = key.replace(/[]]/, ']');
|
||||||
|
var pattern = "[?&]" + key + "=([^&#]*)";
|
||||||
|
var regex = new RegExp(pattern);
|
||||||
|
var url = unescape(window.location.href);
|
||||||
|
var results = regex.exec(url);
|
||||||
|
if (results === null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return results[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main method.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
function mainAgentsModules()
|
function mainAgentsModules()
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
@ -36,6 +293,9 @@ function mainAgentsModules()
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// JS.
|
||||||
|
agents_modules_load_js();
|
||||||
|
|
||||||
// Update network modules for this group
|
// Update network modules for this group
|
||||||
// Check for Network FLAG change request
|
// Check for Network FLAG change request
|
||||||
// Made it a subquery, much faster on both the database and server side.
|
// Made it a subquery, much faster on both the database and server side.
|
||||||
@ -538,38 +798,40 @@ function mainAgentsModules()
|
|||||||
echo "<td style='text-align: center;'>";
|
echo "<td style='text-align: center;'>";
|
||||||
$win_handle = dechex(crc32($module_id.$module['name']));
|
$win_handle = dechex(crc32($module_id.$module['name']));
|
||||||
$graph_type = return_graphtype(modules_get_agentmodule_type($module_id));
|
$graph_type = return_graphtype(modules_get_agentmodule_type($module_id));
|
||||||
$link = "winopeng('".'operation/agentes/stat_win.php?'."type=$graph_type&".'period='.SECONDS_1DAY.'&'.'id='.$module_id.'&'.'label='.rawurlencode(
|
$link = "winopeng('".'operation/agentes/stat_win.php?'."type=$graph_type&".'period='.SECONDS_1DAY.'&'.'id='.$module_id.'&'.'refresh='.SECONDS_10MINUTES."', 'day_".$win_handle."')";
|
||||||
urlencode(
|
|
||||||
base64_encode($module['name'])
|
|
||||||
)
|
|
||||||
).'&'.'refresh='.SECONDS_10MINUTES."', 'day_".$win_handle."')";
|
|
||||||
|
|
||||||
echo '<a href="javascript:'.$link.'">';
|
echo '<a href="javascript:'.$link.'">';
|
||||||
|
|
||||||
|
$module_last_value = modules_get_last_value($module_id);
|
||||||
|
if (!is_numeric($module_last_value)) {
|
||||||
|
$module_last_value = htmlspecialchars($module_last_value);
|
||||||
|
}
|
||||||
|
|
||||||
switch ($status) {
|
switch ($status) {
|
||||||
case AGENT_MODULE_STATUS_NORMAL:
|
case AGENT_MODULE_STATUS_NORMAL:
|
||||||
ui_print_status_image('module_ok.png', modules_get_last_value($module_id), false);
|
ui_print_status_image('module_ok.png', $module_last_value, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AGENT_MODULE_STATUS_CRITICAL_BAD:
|
case AGENT_MODULE_STATUS_CRITICAL_BAD:
|
||||||
ui_print_status_image('module_critical.png', modules_get_last_value($module_id), false);
|
ui_print_status_image('module_critical.png', $module_last_value, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AGENT_MODULE_STATUS_WARNING:
|
case AGENT_MODULE_STATUS_WARNING:
|
||||||
ui_print_status_image('module_warning.png', modules_get_last_value($module_id), false);
|
ui_print_status_image('module_warning.png', $module_last_value, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AGENT_MODULE_STATUS_UNKNOWN:
|
case AGENT_MODULE_STATUS_UNKNOWN:
|
||||||
ui_print_status_image('module_unknown.png', modules_get_last_value($module_id), false);
|
ui_print_status_image('module_unknown.png', $module_last_value, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AGENT_MODULE_STATUS_NORMAL_ALERT:
|
case AGENT_MODULE_STATUS_NORMAL_ALERT:
|
||||||
case AGENT_MODULE_STATUS_WARNING_ALERT:
|
case AGENT_MODULE_STATUS_WARNING_ALERT:
|
||||||
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
|
case AGENT_MODULE_STATUS_CRITICAL_ALERT:
|
||||||
ui_print_status_image('module_alertsfired.png', modules_get_last_value($module_id), false);
|
ui_print_status_image('module_alertsfired.png', $module_last_value, false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
ui_print_status_image('module_no_data.png', modules_get_last_value($module_id), false);
|
ui_print_status_image('module_no_data.png', $module_last_value, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -617,243 +879,3 @@ function mainAgentsModules()
|
|||||||
|
|
||||||
extensions_add_operation_menu_option(__('Agents/Modules view'), 'estado', 'agents_modules/icon_menu.png', 'v1r1', 'view');
|
extensions_add_operation_menu_option(__('Agents/Modules view'), 'estado', 'agents_modules/icon_menu.png', 'v1r1', 'view');
|
||||||
extensions_add_main_function('mainAgentsModules');
|
extensions_add_main_function('mainAgentsModules');
|
||||||
|
|
||||||
$ignored_params['refresh'] = '';
|
|
||||||
|
|
||||||
?>
|
|
||||||
<style type='text/css'>
|
|
||||||
.rotate_text_module {
|
|
||||||
-ms-transform: rotate(270deg);
|
|
||||||
-webkit-transform: rotate(270deg);
|
|
||||||
-moz-transform: rotate(270deg);
|
|
||||||
-o-transform: rotate(270deg);
|
|
||||||
writing-mode: lr-tb;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script type='text/javascript'>
|
|
||||||
$(document).ready(function () {
|
|
||||||
//Get max width of name of modules
|
|
||||||
max_width = 0;
|
|
||||||
$.each($('.th_class_module_r'), function (i, elem) {
|
|
||||||
id = $(elem).attr('id').replace('th_module_r_', '');
|
|
||||||
|
|
||||||
width = $("#div_module_r_" + id).width();
|
|
||||||
|
|
||||||
if (max_width < width) {
|
|
||||||
max_width = width;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$.each($('.th_class_module_r'), function (i, elem) {
|
|
||||||
id = $(elem).attr('id').replace('th_module_r_', '');
|
|
||||||
$("#th_module_r_" + id).height(($("#div_module_r_" + id).width() + 10) + 'px');
|
|
||||||
$("#div_module_r_" + id).css('margin-top', (max_width - 20) + 'px');
|
|
||||||
$("#div_module_r_" + id).show();
|
|
||||||
});
|
|
||||||
|
|
||||||
var refr = '<?php echo get_parameter('refresh', 0); ?>';
|
|
||||||
var pure = '<?php echo get_parameter('pure', 0); ?>';
|
|
||||||
var href =' <?php echo ui_get_url_refresh($ignored_params); ?>';
|
|
||||||
|
|
||||||
if (pure) {
|
|
||||||
var startCountDown = function (duration, cb) {
|
|
||||||
$('div.vc-countdown').countdown('destroy');
|
|
||||||
if (!duration) return;
|
|
||||||
var t = new Date();
|
|
||||||
t.setTime(t.getTime() + duration * 1000);
|
|
||||||
$('div.vc-countdown').countdown({
|
|
||||||
until: t,
|
|
||||||
format: 'MS',
|
|
||||||
layout: '(%M%nn%M:%S%nn%S <?php echo __('Until next'); ?>) ',
|
|
||||||
alwaysExpire: true,
|
|
||||||
onExpiry: function () {
|
|
||||||
$('div.vc-countdown').countdown('destroy');
|
|
||||||
url = js_html_entity_decode( href ) + duration;
|
|
||||||
$(document).attr ("location", url);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if(refr>0){
|
|
||||||
startCountDown(refr, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
var controls = document.getElementById('vc-controls');
|
|
||||||
autoHideElement(controls, 1000);
|
|
||||||
|
|
||||||
$('select#refresh').change(function (event) {
|
|
||||||
refr = Number.parseInt(event.target.value, 10);
|
|
||||||
startCountDown(refr, false);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
var agentes_id = $("#id_agents2").val();
|
|
||||||
var id_agentes = getQueryParam("full_agents_id");
|
|
||||||
if (agentes_id === null && id_agentes !== null) {
|
|
||||||
id_agentes = id_agentes.split(";")
|
|
||||||
id_agentes.forEach(function(element) {
|
|
||||||
$("#id_agents2 option[value="+ element +"]").attr("selected",true);
|
|
||||||
});
|
|
||||||
|
|
||||||
selection_agent_module();
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#refresh').change(function () {
|
|
||||||
$('#hidden-vc_refr').val($('#refresh option:selected').val());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#group_id").change (function () {
|
|
||||||
jQuery.post ("ajax.php",
|
|
||||||
{"page" : "operation/agentes/ver_agente",
|
|
||||||
"get_agents_group_json" : 1,
|
|
||||||
"id_group" : this.value,
|
|
||||||
"privilege" : "AW",
|
|
||||||
"keys_prefix" : "_",
|
|
||||||
"recursion" : $('#checkbox-recursion').is(':checked')
|
|
||||||
},
|
|
||||||
function (data, status) {
|
|
||||||
$("#id_agents2").html('');
|
|
||||||
$("#module").html('');
|
|
||||||
jQuery.each (data, function (id, value) {
|
|
||||||
// Remove keys_prefix from the index
|
|
||||||
id = id.substring(1);
|
|
||||||
|
|
||||||
option = $("<option></option>")
|
|
||||||
.attr ("value", value["id_agente"])
|
|
||||||
.html (value["alias"]);
|
|
||||||
$("#id_agents").append (option);
|
|
||||||
$("#id_agents2").append (option);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"json"
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#checkbox-recursion").change (function () {
|
|
||||||
jQuery.post ("ajax.php",
|
|
||||||
{"page" : "operation/agentes/ver_agente",
|
|
||||||
"get_agents_group_json" : 1,
|
|
||||||
"id_group" : $("#group_id").val(),
|
|
||||||
"privilege" : "AW",
|
|
||||||
"keys_prefix" : "_",
|
|
||||||
"recursion" : $('#checkbox-recursion').is(':checked')
|
|
||||||
},
|
|
||||||
function (data, status) {
|
|
||||||
$("#id_agents2").html('');
|
|
||||||
$("#module").html('');
|
|
||||||
jQuery.each (data, function (id, value) {
|
|
||||||
// Remove keys_prefix from the index
|
|
||||||
id = id.substring(1);
|
|
||||||
|
|
||||||
option = $("<option></option>")
|
|
||||||
.attr ("value", value["id_agente"])
|
|
||||||
.html (value["alias"]);
|
|
||||||
$("#id_agents").append (option);
|
|
||||||
$("#id_agents2").append (option);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"json"
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#modulegroup").change (function () {
|
|
||||||
jQuery.post ("ajax.php",
|
|
||||||
{"page" : "operation/agentes/ver_agente",
|
|
||||||
"get_modules_group_json" : 1,
|
|
||||||
"id_module_group" : this.value,
|
|
||||||
"id_agents" : $("#id_agents2").val(),
|
|
||||||
"selection" : $("#selection_agent_module").val()
|
|
||||||
},
|
|
||||||
function (data, status) {
|
|
||||||
$("#module").html('');
|
|
||||||
if(data){
|
|
||||||
jQuery.each (data, function (id, value) {
|
|
||||||
option = $("<option></option>")
|
|
||||||
.attr ("value", value["id_agente_modulo"])
|
|
||||||
.html (value["nombre"]);
|
|
||||||
$("#module").append (option);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"json"
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#id_agents2").click (function(){
|
|
||||||
selection_agent_module();
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#selection_agent_module").change(function() {
|
|
||||||
jQuery.post ("ajax.php",
|
|
||||||
{"page" : "operation/agentes/ver_agente",
|
|
||||||
"get_modules_group_json" : 1,
|
|
||||||
"id_module_group" : $("#modulegroup").val(),
|
|
||||||
"id_agents" : $("#id_agents2").val(),
|
|
||||||
"selection" : $("#selection_agent_module").val()
|
|
||||||
},
|
|
||||||
function (data, status) {
|
|
||||||
$("#module").html('');
|
|
||||||
if(data){
|
|
||||||
jQuery.each (data, function (id, value) {
|
|
||||||
option = $("<option></option>")
|
|
||||||
.attr ("value", value["id_agente_modulo"])
|
|
||||||
.html (value["nombre"]);
|
|
||||||
$("#module").append (option);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"json"
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
function selection_agent_module() {
|
|
||||||
jQuery.post ("ajax.php",
|
|
||||||
{"page" : "operation/agentes/ver_agente",
|
|
||||||
"get_modules_group_json" : 1,
|
|
||||||
"id_module_group" : $("#modulegroup").val(),
|
|
||||||
"id_agents" : $("#id_agents2").val(),
|
|
||||||
"selection" : $("#selection_agent_module").val()
|
|
||||||
},
|
|
||||||
function (data, status) {
|
|
||||||
$("#module").html('');
|
|
||||||
if(data){
|
|
||||||
jQuery.each (data, function (id, value) {
|
|
||||||
option = $("<option></option>")
|
|
||||||
.attr ("value", value["id_agente_modulo"])
|
|
||||||
.html (value["nombre"]);
|
|
||||||
$("#module").append (option);
|
|
||||||
});
|
|
||||||
|
|
||||||
var id_modules = getQueryParam("full_modules_selected");
|
|
||||||
if(id_modules !== null) {
|
|
||||||
id_modules = id_modules.split(";");
|
|
||||||
id_modules.forEach(function(element) {
|
|
||||||
$("#module option[value="+ element +"]").attr("selected",true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"json"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getQueryParam (key) {
|
|
||||||
key = key.replace(/[[]/, '[');
|
|
||||||
key = key.replace(/[]]/, ']');
|
|
||||||
var pattern = "[?&]" + key + "=([^&#]*)";
|
|
||||||
var regex = new RegExp(pattern);
|
|
||||||
var url = unescape(window.location.href);
|
|
||||||
var results = regex.exec(url);
|
|
||||||
if (results === null) {
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
return results[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
@ -22,6 +22,17 @@ function dbmanager_query($sql, &$error, $dbconnection)
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql = html_entity_decode($sql, ENT_QUOTES);
|
$sql = html_entity_decode($sql, ENT_QUOTES);
|
||||||
|
|
||||||
|
// Extract the text in quotes to add html entities before query db.
|
||||||
|
$patttern = '/(?:"|\')+([^"\']*)(?:"|\')+/m';
|
||||||
|
$sql = preg_replace_callback(
|
||||||
|
$patttern,
|
||||||
|
function ($matches) {
|
||||||
|
return '"'.io_safe_input($matches[1]).'"';
|
||||||
|
},
|
||||||
|
$sql
|
||||||
|
);
|
||||||
|
|
||||||
if ($config['mysqli']) {
|
if ($config['mysqli']) {
|
||||||
$result = mysqli_query($dbconnection, $sql);
|
$result = mysqli_query($dbconnection, $sql);
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
|
@ -44,24 +44,16 @@ $groups = groups_get_all();
|
|||||||
// Add the All group to the beginning to be always the first
|
// Add the All group to the beginning to be always the first
|
||||||
// Use this instead array_unshift to keep the array keys
|
// Use this instead array_unshift to keep the array keys
|
||||||
$groups = ([0 => __('All')] + $groups);
|
$groups = ([0 => __('All')] + $groups);
|
||||||
$html = '';
|
$groups_selected = [];
|
||||||
$style = 'style="padding: 2px 10px; display: inline-block;"';
|
|
||||||
foreach ($groups as $id => $name) {
|
foreach ($groups as $id => $name) {
|
||||||
$checked = in_array($id, $file['groups']);
|
if (in_array($id, $file['groups'])) {
|
||||||
$all_checked = false;
|
$groups_selected[] = $id;
|
||||||
if ($id === 0) {
|
|
||||||
$checkbox = html_print_checkbox_extended('groups[]', $id, $checked, false, '', 'class="chkb_all"', true);
|
|
||||||
$all_checked = $checked;
|
|
||||||
} else {
|
|
||||||
$checkbox = html_print_checkbox_extended('groups[]', $id, $checked, $all_checked, '', 'class="chkb_group"', true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= "<div $style>$name $checkbox</div>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$row = [];
|
$row = [];
|
||||||
$row[0] = __('Groups');
|
$row[0] = __('Groups');
|
||||||
$row[1] = $html;
|
$row[1] = html_print_select($groups, 'groups[]', $groups_selected, '', '', '', true, true, '', '', '');
|
||||||
$table->data[] = $row;
|
$table->data[] = $row;
|
||||||
$table->colspan[][1] = 3;
|
$table->colspan[][1] = 3;
|
||||||
|
|
||||||
|
@ -64,9 +64,11 @@ if (!empty($files)) {
|
|||||||
$document_root = str_replace('\\', '/', io_safe_output($_SERVER['DOCUMENT_ROOT']));
|
$document_root = str_replace('\\', '/', io_safe_output($_SERVER['DOCUMENT_ROOT']));
|
||||||
$file['location'] = str_replace('\\', '/', io_safe_output($file['location']));
|
$file['location'] = str_replace('\\', '/', io_safe_output($file['location']));
|
||||||
$relative_path = str_replace($document_root, '', $file['location']);
|
$relative_path = str_replace($document_root, '', $file['location']);
|
||||||
$file_path = base64_encode($relative_path);
|
$file_name = explode('/', $file['location']);
|
||||||
$hash = md5($relative_path.$config['dbpass']);
|
$file_decoded = $file_name[(count($file_name) - 1)];
|
||||||
$url = ui_get_full_url("include/get_file.php?file=$file_path&hash=$hash");
|
$file_path = base64_encode($file_decoded);
|
||||||
|
$hash = md5($file_path.$config['dbpass']);
|
||||||
|
$url = ui_get_full_url('include/get_file.php?file='.urlencode($file_path).'&hash='.$hash);
|
||||||
$date_format = ($config['date_format']) ? io_safe_output($config['date_format']) : 'F j, Y - H:m';
|
$date_format = ($config['date_format']) ? io_safe_output($config['date_format']) : 'F j, Y - H:m';
|
||||||
|
|
||||||
$data[0] = "<a href=\"$url\" target=\"_blank\">".$file['name'].'</a>';
|
$data[0] = "<a href=\"$url\" target=\"_blank\">".$file['name'].'</a>';
|
||||||
|
@ -193,7 +193,7 @@ function files_repo_add_file($file_input_name='upfile', $description='', $groups
|
|||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$attachment_path = io_safe_output($config['attachment_store']);
|
$attachment_path = io_safe_output($config['attachment_store']);
|
||||||
$files_repo_path = $attachment_path.'/'.'files_repo';
|
$files_repo_path = $attachment_path.'/files_repo';
|
||||||
|
|
||||||
$result = [];
|
$result = [];
|
||||||
$result['status'] = false;
|
$result['status'] = false;
|
||||||
|
@ -30,6 +30,15 @@
|
|||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
|
// ACL Check
|
||||||
|
if (!check_acl($config['id_user'], 0, 'AR')) {
|
||||||
|
db_pandora_audit(
|
||||||
|
'ACL Violation',
|
||||||
|
'Trying to access Module Groups view'
|
||||||
|
);
|
||||||
|
include 'general/noaccess.php';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_ajax()) {
|
if (is_ajax()) {
|
||||||
$get_info_alert_module_group = (bool) get_parameter('get_info_alert_module_group');
|
$get_info_alert_module_group = (bool) get_parameter('get_info_alert_module_group');
|
||||||
@ -82,6 +91,16 @@ function mainModuleGroups()
|
|||||||
$agent_group_search = get_parameter('agent_group_search', '');
|
$agent_group_search = get_parameter('agent_group_search', '');
|
||||||
$module_group_search = get_parameter('module_group_search', '');
|
$module_group_search = get_parameter('module_group_search', '');
|
||||||
|
|
||||||
|
// Check the user's group permissions.
|
||||||
|
$user_groups = users_get_groups($config['user'], 'AR');
|
||||||
|
$info = array_filter(
|
||||||
|
$info,
|
||||||
|
function ($v, $k) use ($user_groups) {
|
||||||
|
return $user_groups[$v['id']] != null;
|
||||||
|
},
|
||||||
|
ARRAY_FILTER_USE_BOTH
|
||||||
|
);
|
||||||
|
|
||||||
$info = array_filter(
|
$info = array_filter(
|
||||||
$info,
|
$info,
|
||||||
function ($v, $k) use ($agent_group_search) {
|
function ($v, $k) use ($agent_group_search) {
|
||||||
@ -265,7 +284,7 @@ function mainModuleGroups()
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
';
|
';
|
||||||
|
|
||||||
if (true) {
|
if ($info && $array_module_group) {
|
||||||
$table = new StdClass();
|
$table = new StdClass();
|
||||||
$table->style[0] = 'color: #ffffff; background-color: #373737; font-weight: bolder; min-width: 230px;';
|
$table->style[0] = 'color: #ffffff; background-color: #373737; font-weight: bolder; min-width: 230px;';
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
@ -296,22 +315,22 @@ function mainModuleGroups()
|
|||||||
$url = 'index.php?sec=estado&sec2=operation/agentes/status_monitor&status=-1&ag_group='.$key.'&modulegroup='.$k;
|
$url = 'index.php?sec=estado&sec2=operation/agentes/status_monitor&status=-1&ag_group='.$key.'&modulegroup='.$k;
|
||||||
|
|
||||||
if ($array_data[$key][$k]['alerts_module_count'] != 0) {
|
if ($array_data[$key][$k]['alerts_module_count'] != 0) {
|
||||||
$color = '#FFA631';
|
$color = COL_ALERTFIRED;
|
||||||
// Orange when the cell for this model group and agent has at least one alert fired.
|
// Orange when the cell for this model group and agent has at least one alert fired.
|
||||||
} else if ($array_data[$key][$k]['critical_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['critical_module_count'] != 0) {
|
||||||
$color = '#e63c52';
|
$color = COL_CRITICAL;
|
||||||
// Red when the cell for this model group and agent has at least one module in critical state and the rest in any state.
|
// Red when the cell for this model group and agent has at least one module in critical state and the rest in any state.
|
||||||
} else if ($array_data[$key][$k]['warning_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['warning_module_count'] != 0) {
|
||||||
$color = '#f3b200';
|
$color = COL_WARNING;
|
||||||
// Yellow when the cell for this model group and agent has at least one in warning state and the rest in green state.
|
// Yellow when the cell for this model group and agent has at least one in warning state and the rest in green state.
|
||||||
} else if ($array_data[$key][$k]['unknown_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['unknown_module_count'] != 0) {
|
||||||
$color = '#B2B2B2 ';
|
$color = COL_UNKNOWN;
|
||||||
// Grey when the cell for this model group and agent has at least one module in unknown state and the rest in any state.
|
// Grey when the cell for this model group and agent has at least one module in unknown state and the rest in any state.
|
||||||
} else if ($array_data[$key][$k]['normal_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['normal_module_count'] != 0) {
|
||||||
$color = '#82b92e';
|
$color = COL_NORMAL;
|
||||||
// Green when the cell for this model group and agent has OK state all modules.
|
// Green when the cell for this model group and agent has OK state all modules.
|
||||||
} else if ($array_data[$key][$k]['notInit_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['notInit_module_count'] != 0) {
|
||||||
$color = '#5BB6E5';
|
$color = COL_NOTINIT;
|
||||||
// Blue when the cell for this module group and all modules have not init value.
|
// Blue when the cell for this module group and all modules have not init value.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,7 +378,7 @@ function mainModuleGroups()
|
|||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_WARNING.";'></div></td><td>".__('Yellow cell when the module group and agent have at least one in warning status and the others in grey or green status').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_WARNING.";'></div></td><td>".__('Yellow cell when the module group and agent have at least one in warning status and the others in grey or green status').'</td></tr>';
|
||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_UNKNOWN.";'></div></td><td>".__('Grey cell when the module group and agent have at least one in unknown status and the others in green status').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_UNKNOWN.";'></div></td><td>".__('Grey cell when the module group and agent have at least one in unknown status and the others in green status').'</td></tr>';
|
||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_NORMAL.";'></div></td><td>".__('Green cell when the module group and agent have all modules in OK status').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_NORMAL.";'></div></td><td>".__('Green cell when the module group and agent have all modules in OK status').'</td></tr>';
|
||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_MAINTENANCE.";'></div></td><td>".__('Blue cell when the module group and agent have all modules in not init status.').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_NOTINIT.";'></div></td><td>".__('Blue cell when the module group and agent have all modules in not init status.').'</td></tr>';
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
} else {
|
} else {
|
||||||
|
@ -312,7 +312,7 @@ function main_net_tools()
|
|||||||
$ips = db_get_all_rows_sql(
|
$ips = db_get_all_rows_sql(
|
||||||
sprintf(
|
sprintf(
|
||||||
'SELECT ip FROM taddress WHERE id_a IN (%s)',
|
'SELECT ip FROM taddress WHERE id_a IN (%s)',
|
||||||
join($ids)
|
join(',', $ids)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -23,12 +23,12 @@ function pluginreg_extension_main()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
ui_print_page_header(__('Plugin registration'), 'images/extensions.png', false, '', true, '');
|
ui_print_page_header(__('Plugin registration'), 'images/extensions.png', false, '', true, '');
|
||||||
|
|
||||||
echo '<div class="new_task">
|
echo '<div class="new_task">
|
||||||
<div class="image_task">';
|
<div class="image_task">';
|
||||||
echo html_print_image('images/firts_task/icono_grande_import.png', true, ['title' => __('Plugin Registration') ]);
|
echo html_print_image('images/first_task/icono_grande_import.png', true, ['title' => __('Plugin Registration') ]);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
echo '<div class="text_task">';
|
echo '<div class="text_task">';
|
||||||
echo '<h3>'.__('Plugin registration').'</h3>';
|
echo '<h3>'.__('Plugin registration').'</h3>';
|
||||||
|
519
pandora_console/extensions/quick_shell.php
Normal file
519
pandora_console/extensions/quick_shell.php
Normal file
@ -0,0 +1,519 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Quick Shell extension.
|
||||||
|
*
|
||||||
|
* @category Extension
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage QuickShell
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* 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 for version 2.
|
||||||
|
* 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.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
require_once $config['homedir'].'/include/functions_agents.php';
|
||||||
|
require_once $config['homedir'].'/godmode/wizards/Wizard.main.php';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show Quick Shell interface.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function quickShell()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
check_login();
|
||||||
|
|
||||||
|
if (check_acl($config['id_user'], 0, 'PM') === false) {
|
||||||
|
db_pandora_audit(
|
||||||
|
'ACL Violation',
|
||||||
|
'Trying to access Profile Management'
|
||||||
|
);
|
||||||
|
include 'general/noaccess.php';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$agent_id = get_parameter('id_agente', 0);
|
||||||
|
$username = get_parameter('username', null);
|
||||||
|
$method = get_parameter('method', null);
|
||||||
|
$method_port = get_parameter('port', null);
|
||||||
|
|
||||||
|
// Retrieve main IP Address.
|
||||||
|
$address = agents_get_address($agent_id);
|
||||||
|
|
||||||
|
ui_require_css_file('wizard');
|
||||||
|
ui_require_css_file('discovery');
|
||||||
|
|
||||||
|
// Settings.
|
||||||
|
// WebSocket host, where client should connect.
|
||||||
|
if (isset($config['ws_port']) === false) {
|
||||||
|
config_update_value('ws_port', 8080);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($config['ws_proxy_url']) === true) {
|
||||||
|
$ws_url = 'http://'.$_SERVER['SERVER_ADDR'].':'.$config['ws_port'];
|
||||||
|
} else {
|
||||||
|
preg_match('/\/\/(.*)/', $config['ws_proxy_url'], $matches);
|
||||||
|
if (isset($_SERVER['HTTPS']) === true) {
|
||||||
|
$ws_url = 'https://'.$matches[1];
|
||||||
|
} else {
|
||||||
|
$ws_url = 'http://'.$matches[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gotty settings. Internal communication (WS).
|
||||||
|
if (isset($config['gotty_host']) === false) {
|
||||||
|
config_update_value('gotty_host', '127.0.0.1');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_telnet_port']) === false) {
|
||||||
|
config_update_value('gotty_telnet_port', 8082);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_ssh_port']) === false) {
|
||||||
|
config_update_value('gotty_ssh_port', 8081);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Username. Retrieve from form.
|
||||||
|
if (empty($username) === true) {
|
||||||
|
// No username provided, ask for it.
|
||||||
|
$wiz = new Wizard();
|
||||||
|
|
||||||
|
$test = file_get_contents($ws_url);
|
||||||
|
if ($test === false) {
|
||||||
|
ui_print_error_message(__('WebService engine has not been started, please check documentation.'));
|
||||||
|
$wiz->printForm(
|
||||||
|
[
|
||||||
|
'form' => [
|
||||||
|
'method' => 'POST',
|
||||||
|
'action' => '#',
|
||||||
|
],
|
||||||
|
'inputs' => [
|
||||||
|
[
|
||||||
|
'class' => 'w100p',
|
||||||
|
'arguments' => [
|
||||||
|
'name' => 'submit',
|
||||||
|
'label' => __('Retry'),
|
||||||
|
'type' => 'submit',
|
||||||
|
'attributes' => 'class="sub next"',
|
||||||
|
'return' => true,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$wiz->printForm(
|
||||||
|
[
|
||||||
|
'form' => [
|
||||||
|
'action' => '#',
|
||||||
|
'class' => 'wizard',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
'inputs' => [
|
||||||
|
[
|
||||||
|
'label' => __('Username'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'username',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Port'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'id' => 'port',
|
||||||
|
'name' => 'port',
|
||||||
|
'value' => 22,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Method'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'select',
|
||||||
|
'name' => 'method',
|
||||||
|
'fields' => [
|
||||||
|
'ssh' => __('SSH'),
|
||||||
|
'telnet' => __('Telnet'),
|
||||||
|
],
|
||||||
|
'script' => "p=22; if(this.value == 'telnet') { p=23; } $('#text-port').val(p);",
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'submit',
|
||||||
|
'label' => __('Connect'),
|
||||||
|
'attributes' => 'class="sub next"',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize Gotty Client.
|
||||||
|
$host = $config['gotty_host'];
|
||||||
|
if ($method == 'ssh') {
|
||||||
|
// SSH.
|
||||||
|
$port = $config['gotty_ssh_port'];
|
||||||
|
$command_arguments = "var args = '?arg=".$username.'@'.$address;
|
||||||
|
$command_arguments .= '&arg=-p '.$method_port."';";
|
||||||
|
} else if ($method == 'telnet') {
|
||||||
|
// Telnet.
|
||||||
|
$port = $config['gotty_telnet_port'];
|
||||||
|
$command_arguments = "var args = '?arg=-l ".$username;
|
||||||
|
$command_arguments .= '&arg='.$address;
|
||||||
|
$command_arguments .= '&arg='.$method_port."';";
|
||||||
|
} else {
|
||||||
|
ui_print_error_message(__('Please use SSH or Telnet.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If rediretion is enabled, we will try to connect to http:// or https:// endpoint.
|
||||||
|
$test = get_headers($ws_url);
|
||||||
|
if ($test === false) {
|
||||||
|
if (empty($wiz) === true) {
|
||||||
|
$wiz = new Wizard();
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_error_message(__('WebService engine has not been started, please check documentation.'));
|
||||||
|
echo $wiz->printGoBackButton('#');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check credentials.
|
||||||
|
$auth_str = '';
|
||||||
|
$gotty_url = $host.':'.$port;
|
||||||
|
if (empty($config['gotty_user']) === false
|
||||||
|
&& empty($config['gotty_pass']) === false
|
||||||
|
) {
|
||||||
|
$auth_str = io_safe_output($config['gotty_user']);
|
||||||
|
$auth_str .= ':'.io_output_password($config['gotty_pass']);
|
||||||
|
$gotty_url = $auth_str.'@'.$host.':'.$port;
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = file_get_contents('http://'.$gotty_url.'/js/hterm.js');
|
||||||
|
if (empty($r) === true) {
|
||||||
|
if (empty($wiz) === true) {
|
||||||
|
$wiz = new Wizard();
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_error_message(__('WebService engine is not working properly, please check documentation.'));
|
||||||
|
echo $wiz->printGoBackButton('#');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override gotty client settings.
|
||||||
|
if (empty($auth_str) === true) {
|
||||||
|
$r .= "var gotty_auth_token = '';";
|
||||||
|
} else {
|
||||||
|
$r .= "var gotty_auth_token = '";
|
||||||
|
$r .= $auth_str."';";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set websocket target and method.
|
||||||
|
$gotty = file_get_contents('http://'.$gotty_url.'/js/gotty.js');
|
||||||
|
$url = "var url = (httpsEnabled ? 'wss://' : 'ws://') + window.location.host + window.location.pathname + 'ws';";
|
||||||
|
if (empty($config['ws_proxy_url']) === true) {
|
||||||
|
$new = "var url = (httpsEnabled ? 'wss://' : 'ws://')";
|
||||||
|
$new .= " + window.location.host + ':";
|
||||||
|
$new .= $config['ws_port'].'/'.$method."';";
|
||||||
|
} else {
|
||||||
|
$new = "var url = '";
|
||||||
|
$new .= $config['ws_proxy_url'].'/'.$method."';";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update url.
|
||||||
|
$gotty = str_replace($url, $new, $gotty);
|
||||||
|
|
||||||
|
// Update websocket arguments.
|
||||||
|
$args = 'var args = window.location.search;';
|
||||||
|
$new = $command_arguments;
|
||||||
|
|
||||||
|
// Update arguments.
|
||||||
|
$gotty = str_replace($args, $new, $gotty);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<style>#terminal {
|
||||||
|
height: 650px;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
#terminal > iframe {
|
||||||
|
position: relative!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="terminal"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<?php echo $r; ?>
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<?php echo $gotty; ?>
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provide an interface where configure all settings.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function quickShellSettings()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
ui_require_css_file('wizard');
|
||||||
|
ui_require_css_file('discovery');
|
||||||
|
|
||||||
|
// Gotty settings. Internal communication (WS).
|
||||||
|
if (isset($config['gotty_host']) === false) {
|
||||||
|
config_update_value('gotty_host', '127.0.0.1');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_telnet_port']) === false) {
|
||||||
|
config_update_value('gotty_telnet_port', 8082);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_ssh_port']) === false) {
|
||||||
|
config_update_value('gotty_ssh_port', 8081);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parser.
|
||||||
|
if (get_parameter('update_config', false) !== false) {
|
||||||
|
// Gotty settings. Internal communication (WS).
|
||||||
|
$gotty = get_parameter(
|
||||||
|
'gotty',
|
||||||
|
''
|
||||||
|
);
|
||||||
|
$gotty_host = get_parameter(
|
||||||
|
'gotty_host',
|
||||||
|
$config['gotty_host']
|
||||||
|
);
|
||||||
|
$gotty_ssh_port = get_parameter(
|
||||||
|
'gotty_ssh_port',
|
||||||
|
$config['gotty_ssh_port']
|
||||||
|
);
|
||||||
|
$gotty_telnet_port = get_parameter(
|
||||||
|
'gotty_telnet_port',
|
||||||
|
$config['gotty_telnet_port']
|
||||||
|
);
|
||||||
|
|
||||||
|
$gotty_user = get_parameter(
|
||||||
|
'gotty_user',
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
$gotty_pass = get_parameter(
|
||||||
|
'gotty_pass',
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
$gotty_pass = io_input_password($gotty_pass);
|
||||||
|
|
||||||
|
$changes = 0;
|
||||||
|
$critical = 0;
|
||||||
|
if ($config['gotty'] != $gotty) {
|
||||||
|
config_update_value('gotty', $gotty);
|
||||||
|
$changes++;
|
||||||
|
$critical++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_host'] != $gotty_host) {
|
||||||
|
config_update_value('gotty_host', $gotty_host);
|
||||||
|
$changes++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_telnet_port'] != $gotty_telnet_port) {
|
||||||
|
config_update_value('gotty_telnet_port', $gotty_telnet_port);
|
||||||
|
$changes++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_ssh_port'] != $gotty_ssh_port) {
|
||||||
|
config_update_value('gotty_ssh_port', $gotty_ssh_port);
|
||||||
|
$changes++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_user'] != $gotty_user) {
|
||||||
|
config_update_value('gotty_user', $gotty_user);
|
||||||
|
$changes++;
|
||||||
|
$critical++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_pass'] != $gotty_pass) {
|
||||||
|
$gotty_pass = io_input_password($gotty_pass);
|
||||||
|
config_update_value('gotty_pass', $gotty_pass);
|
||||||
|
$changes++;
|
||||||
|
$critical++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($changes > 0) {
|
||||||
|
$msg = __('%d Updated', $changes);
|
||||||
|
if ($critical > 0) {
|
||||||
|
$msg = __(
|
||||||
|
'%d Updated, please restart WebSocket engine service',
|
||||||
|
$changes
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_success_message($msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Form. Using old style.
|
||||||
|
echo '<fieldset>';
|
||||||
|
echo '<legend>'.__('Quickshell').'</legend>';
|
||||||
|
|
||||||
|
$t = new StdClass();
|
||||||
|
$t->data = [];
|
||||||
|
$t->width = '100%';
|
||||||
|
$t->class = 'databox filters';
|
||||||
|
$t->data = [];
|
||||||
|
$t->style = [];
|
||||||
|
$t->style[0] = 'font-weight: bold; width: 40%;';
|
||||||
|
|
||||||
|
$t->data[0][0] = __('Gotty path');
|
||||||
|
$t->data[0][1] = html_print_input_text(
|
||||||
|
'gotty',
|
||||||
|
$config['gotty'],
|
||||||
|
'',
|
||||||
|
30,
|
||||||
|
100,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$t->data[1][0] = __('Gotty host');
|
||||||
|
$t->data[1][1] = html_print_input_text(
|
||||||
|
'gotty_host',
|
||||||
|
$config['gotty_host'],
|
||||||
|
'',
|
||||||
|
30,
|
||||||
|
100,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$t->data[2][0] = __('Gotty ssh port');
|
||||||
|
$t->data[2][1] = html_print_input_text(
|
||||||
|
'gotty_ssh_port',
|
||||||
|
$config['gotty_ssh_port'],
|
||||||
|
'',
|
||||||
|
30,
|
||||||
|
100,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$t->data[3][0] = __('Gotty telnet port');
|
||||||
|
$t->data[3][1] = html_print_input_text(
|
||||||
|
'gotty_telnet_port',
|
||||||
|
$config['gotty_telnet_port'],
|
||||||
|
'',
|
||||||
|
30,
|
||||||
|
100,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$hidden = new StdClass();
|
||||||
|
$hidden->data = [];
|
||||||
|
$hidden->width = '100%';
|
||||||
|
$hidden->class = 'databox filters';
|
||||||
|
$hidden->data = [];
|
||||||
|
$hidden->style[0] = 'font-weight: bold;width: 40%;';
|
||||||
|
|
||||||
|
$hidden->data[0][0] = __('Gotty user').ui_print_help_tip(
|
||||||
|
__('Optional, set a user to access gotty service'),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$hidden->data[0][1] = html_print_input_text(
|
||||||
|
'gotty_user',
|
||||||
|
$config['gotty_user'],
|
||||||
|
'',
|
||||||
|
30,
|
||||||
|
100,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$hidden->data[1][0] = __('Gotty password').ui_print_help_tip(
|
||||||
|
__('Optional, set a password to access gotty service'),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$hidden->data[1][1] = html_print_input_password(
|
||||||
|
'gotty_pass',
|
||||||
|
io_output_password($config['gotty_pass']),
|
||||||
|
'',
|
||||||
|
30,
|
||||||
|
100,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
html_print_table($t);
|
||||||
|
|
||||||
|
ui_print_toggle(
|
||||||
|
[
|
||||||
|
'content' => html_print_table($hidden, true),
|
||||||
|
'name' => __('Advanced options'),
|
||||||
|
'clean' => false,
|
||||||
|
'main_class' => 'no-border-imp',
|
||||||
|
'container_class' => 'no-border-imp',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
echo '</fieldset>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// This extension is usefull only if the agent has associated IP.
|
||||||
|
$agent_id = get_parameter('id_agente');
|
||||||
|
if (empty($agent_id) === false
|
||||||
|
&& get_parameter('sec2', '') == 'operation/agentes/ver_agente'
|
||||||
|
) {
|
||||||
|
$address = agents_get_address($agent_id);
|
||||||
|
if (empty($address) === false) {
|
||||||
|
// Extension registration.
|
||||||
|
extensions_add_opemode_tab_agent(
|
||||||
|
// TabId.
|
||||||
|
'quick_shell',
|
||||||
|
// TabName.
|
||||||
|
__('QuickShell'),
|
||||||
|
// TabIcon.
|
||||||
|
'images/ehorus/terminal.png',
|
||||||
|
// TabFunction.
|
||||||
|
'quickShell',
|
||||||
|
// Version.
|
||||||
|
'N/A',
|
||||||
|
// Acl.
|
||||||
|
'PM'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extensions_add_godmode_function('quickShellSettings');
|
@ -109,6 +109,6 @@ if (empty($data)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '{
|
echo '{
|
||||||
"label": "'.$graph_title.'",
|
"label": "'.htmlspecialchars($graph_title, ENT_QUOTES).'",
|
||||||
"data": [["'.time().'", '.$data.']]
|
"data": [["'.time().'", '.htmlspecialchars($data, ENT_QUOTES).']]
|
||||||
}';
|
}';
|
||||||
|
@ -238,18 +238,6 @@ function output_xml_report($id)
|
|||||||
echo '<line_separator><![CDATA['.io_safe_output($item['line_separator']).']]></line_separator>';
|
echo '<line_separator><![CDATA['.io_safe_output($item['line_separator']).']]></line_separator>';
|
||||||
echo '<column_separator><![CDATA['.io_safe_output($item['header_definition']).']]></column_separator>';
|
echo '<column_separator><![CDATA['.io_safe_output($item['header_definition']).']]></column_separator>';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'TTRT':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'TTO':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTBF':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTTR':
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "</item>\n";
|
echo "</item>\n";
|
||||||
|
@ -375,18 +375,6 @@ function process_upload_xml_report($xml, $group_filter=0)
|
|||||||
$values['line_separator'] = io_safe_input($item['line_separator']);
|
$values['line_separator'] = io_safe_input($item['line_separator']);
|
||||||
$values['column_separator'] = io_safe_input($item['column_separator']);
|
$values['column_separator'] = io_safe_input($item['column_separator']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'TTRT':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'TTO':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTBF':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTTR':
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($agents_item)) {
|
if (empty($agents_item)) {
|
||||||
|
66
pandora_console/extensions/sample_agent.php
Normal file
66
pandora_console/extensions/sample_agent.php
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Pandora FMS - http://pandorafms.com
|
||||||
|
// ==================================================
|
||||||
|
// Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
// Please see http://pandorafms.org for full contribution list
|
||||||
|
// 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
|
||||||
|
// 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.
|
||||||
|
require_once __DIR__.'/../include/config.php';
|
||||||
|
require_once __DIR__.'/../include/auth/mysql.php';
|
||||||
|
require_once __DIR__.'/../include/functions.php';
|
||||||
|
require_once __DIR__.'/../include/functions_db.php';
|
||||||
|
/*
|
||||||
|
* Review if sample agent is active and deploys configuration for
|
||||||
|
* visual consoles if necessary
|
||||||
|
*/
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
// Deployment of sample agent for visual consoles.
|
||||||
|
if ($config['sample_agent'] == 1 && !isset($config['sample_agent_deployed'])) {
|
||||||
|
$id_agente = db_get_sql('SELECT id_agente FROM tagente WHERE nombre = "Sample_Agent";');
|
||||||
|
$modules = db_get_all_rows_filter('tagente_modulo', ['id_agente' => $id_agente], 'id_agente_modulo');
|
||||||
|
$count_modules = count($modules);
|
||||||
|
|
||||||
|
// Update of layout 1 (Rack sample).
|
||||||
|
$images_rack_server = [
|
||||||
|
'rack_server_rack',
|
||||||
|
'rack_server',
|
||||||
|
'rack_switch',
|
||||||
|
'rack_firewall',
|
||||||
|
'rack_double_server',
|
||||||
|
'rack_frame',
|
||||||
|
'rack_pdu',
|
||||||
|
];
|
||||||
|
$query = 'UPDATE `tlayout_data` SET `id_agent` = '.$id_agente.', `id_agente_modulo` = CASE ';
|
||||||
|
for ($i = 0; $i < $count_modules; $i++) {
|
||||||
|
$query .= 'WHEN `image` = "'.$images_rack_server[$i].'" THEN '.$modules[$i]['id_agente_modulo'].' ';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query .= 'END WHERE `id_layout` = 1 AND `image` IN ("'.implode('","', $images_rack_server).'");';
|
||||||
|
|
||||||
|
db_process_sql($query);
|
||||||
|
// Update of layout 2 (Dashboard).
|
||||||
|
$query = 'UPDATE `tlayout_data` SET `id_agent`= '.$id_agente.', `id_agente_modulo` = CASE ';
|
||||||
|
$query .= 'WHEN `id` = 107 THEN '.$modules[0]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 108 THEN '.$modules[1]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 109 THEN '.$modules[2]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 110 THEN '.$modules[2]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 111 THEN '.$modules[3]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 112 THEN '.$modules[4]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 113 THEN '.$modules[5]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 114 THEN '.$modules[6]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'END WHERE `id_layout` = 2 AND `id` IN (107,108,109,110,111,112,113,114);';
|
||||||
|
|
||||||
|
db_process_sql($query);
|
||||||
|
|
||||||
|
// This setting will avoid regenerate all the times the visual consoles.
|
||||||
|
config_update_value('sample_agent_deployed', 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
extensions_add_main_function('sample_agent_deployment');
|
44
pandora_console/extras/mr/32.sql
Normal file
44
pandora_console/extras/mr/32.sql
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `last_error` text;
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `host` VARCHAR(255) DEFAULT '';
|
||||||
|
ALTER TABLE `tdatabase` ADD COLUMN `label` VARCHAR(255) DEFAULT '';
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `os_user` VARCHAR(255) DEFAULT '';
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `db_port` INT UNSIGNED NOT NULL DEFAULT 3306;
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `os_port` INT UNSIGNED NOT NULL DEFAULT 22;
|
||||||
|
ALTER TABLE `tdatabase` ADD COLUMN `ssh_key` TEXT;
|
||||||
|
ALTER TABLE `tdatabase` ADD COLUMN `ssh_pubkey` TEXT;
|
||||||
|
|
||||||
|
UPDATE `tdatabase` set `label`=`host`;
|
||||||
|
|
||||||
|
UPDATE `tlayout_data` SET `height` = 70 , `width` = 70 WHERE `height` = 0 && `width` = 0 && image NOT LIKE '%dot%' && ((`type` IN (0,5)) ||
|
||||||
|
(`type` = 10 && `image` IS NOT NULL && `image` != '' && `image` != 'none') ||
|
||||||
|
(`type` = 11 && `image` IS NOT NULL && `image` != '' && `image` != 'none' && `show_statistics` = 0));
|
||||||
|
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_enabled', 0);
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_user', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_hostname', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_api_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_req_timeout', 5);
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_content', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_content', '');
|
||||||
|
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
|
||||||
|
COMMIT;
|
95
pandora_console/extras/mr/33.sql
Normal file
95
pandora_console/extras/mr/33.sql
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `treport_template` ADD COLUMN `agent_regex` varchar(600) NOT NULL default '';
|
||||||
|
ALTER TABLE `tlayout_template_data` ADD COLUMN `cache_expiration` INTEGER UNSIGNED NOT NULL DEFAULT 0;
|
||||||
|
|
||||||
|
INSERT INTO `ttipo_modulo` VALUES
|
||||||
|
(34,'remote_cmd', 10, 'Remote execution, numeric data', 'mod_remote_cmd.png'),
|
||||||
|
(35,'remote_cmd_proc', 10, 'Remote execution, boolean data', 'mod_remote_cmd_proc.png'),
|
||||||
|
(36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'),
|
||||||
|
(37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png');
|
||||||
|
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('N. total processes','Number of running processes in a Windows system.',11,34,0,0,300,0,'tasklist /NH | find /c /v ""','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Free space in C:','Free space available in C:',11,34,0,0,300,0,'powershell $obj=(Get-WmiObject -class "Win32_LogicalDisk" -namespace "root\CIMV2") ; $obj.FreeSpace[0] * 100 /$obj.Size[0]','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux uptime','System uptime',43,36,0,0,300,0,'uptime |sed s/us\.*$//g | sed s/,\.*$//g','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux processes','Running processes',43,34,0,0,300,0,'ps elf | wc -l','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux system load','Current load (5 min)',43,34,0,0,300,0,'uptime | awk '{print $(NF-1)}' | tr -d ','','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available memory percent','Available memory %',43,34,0,0,300,0,'free | grep Mem | awk '{print $NF/$2 * 100}'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available disk /','Available free space in mountpoint /',43,34,0,0,300,0,'df / | tail -n +2 | awk '{print $(NF-1)}' | tr -d '%'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'0.00',0.00,0.00,'',0,'','inherited','',0,0,0.000000000000000,'','nowizard','','nowizard','0','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
|
||||||
|
ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` enum('','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal') default '';
|
||||||
|
ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` int(4) unsigned DEFAULT NULL;
|
||||||
|
ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` mediumint(4) DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `log_content` TEXT;
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `log_source` TEXT;
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `log_agent` TEXT;
|
||||||
|
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_agent` text COMMENT 'Operator for agent';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_id_usuario` text COMMENT 'Operator for id_usuario';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_id_grupo` text COMMENT 'Operator for id_grupo';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_evento` text COMMENT 'Operator for evento';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_event_type` text COMMENT 'Operator for event_type';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_module` text COMMENT 'Operator for module';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_alert` text COMMENT 'Operator for alert';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_criticity` text COMMENT 'Operator for criticity';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_user_comment` text COMMENT 'Operator for user_comment';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_id_tag` text COMMENT 'Operator for id_tag';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_content` text COMMENT 'Operator for log_content';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_source` text COMMENT 'Operator for log_source';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_agent` text COMMENT 'Operator for log_agent';
|
||||||
|
|
||||||
|
UPDATE `tevent_rule` SET `operator_agent` = "REGEX" WHERE `agent` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_id_usuario` = "REGEX" WHERE `id_usuario` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_id_grupo` = "REGEX" WHERE `id_grupo` > 0;
|
||||||
|
UPDATE `tevent_rule` SET `operator_evento` = "REGEX" WHERE `evento` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_event_type` = "REGEX" WHERE `event_type` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_module` = "REGEX" WHERE `module` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_alert` = "REGEX" WHERE `alert` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_criticity` = "REGEX" WHERE `criticity` != '99';
|
||||||
|
UPDATE `tevent_rule` SET `operator_user_comment` = "REGEX" WHERE `user_comment` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_id_tag` = "REGEX" WHERE `id_tag` > 0;
|
||||||
|
UPDATE `tevent_rule` SET `operator_log_content` = "REGEX" WHERE `log_content` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_log_source` = "REGEX" WHERE `log_source` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_log_agent` = "REGEX" WHERE `log_agent` != '';
|
||||||
|
|
||||||
|
ALTER TABLE `tevent_alert` ADD COLUMN `special_days` tinyint(1) default 0;
|
||||||
|
ALTER TABLE `tevent_alert` MODIFY COLUMN `time_threshold` int(10) NOT NULL default 86400;
|
||||||
|
|
||||||
|
CREATE TABLE `tremote_command` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`name` varchar(150) NOT NULL,
|
||||||
|
`timeout` int(10) unsigned NOT NULL default 30,
|
||||||
|
`retries` int(10) unsigned NOT NULL default 3,
|
||||||
|
`preconditions` text,
|
||||||
|
`script` text,
|
||||||
|
`postconditions` text,
|
||||||
|
`utimestamp` int(20) unsigned NOT NULL default 0,
|
||||||
|
`id_group` int(10) unsigned NOT NULL default 0,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
CREATE TABLE `tremote_command_target` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`rcmd_id` bigint unsigned NOT NULL,
|
||||||
|
`id_agent` int(10) unsigned NOT NULL,
|
||||||
|
`utimestamp` int(20) unsigned NOT NULL default 0,
|
||||||
|
`stdout` MEDIUMTEXT,
|
||||||
|
`stderr` MEDIUMTEXT,
|
||||||
|
`errorlevel` int(10) unsigned NOT NULL default 0,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY (`rcmd_id`) REFERENCES `tremote_command`(`id`)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
INSERT INTO `tconfig`(`token`, `value`) VALUES ('welcome_state', -1);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE `tcredential_store` MODIFY COLUMN `product` enum('CUSTOM', 'AWS', 'AZURE', 'GOOGLE', 'SAP') default 'CUSTOM';
|
||||||
|
ALTER TABLE `tevent_filter` ADD COLUMN `id_source_event` int(10);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE `tmetaconsole_agent_secondary_group` ADD INDEX `id_tagente` (`id_tagente`);
|
||||||
|
ALTER TABLE `tmetaconsole_event` ADD INDEX `server_id` (`server_id`);
|
||||||
|
|
||||||
|
COMMIT;
|
10
pandora_console/extras/mr/34.sql
Normal file
10
pandora_console/extras/mr/34.sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `landscape` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `pagebreak` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `landscape` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `pagebreak` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
|
||||||
|
ALTER TABLE `tevent_response` ADD COLUMN `command_timeout` int(5) unsigned NOT NULL DEFAULT 90;
|
||||||
|
|
||||||
|
COMMIT;
|
9
pandora_console/extras/mr/35.sql
Normal file
9
pandora_console/extras/mr/35.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_module_units', '{"bytes":"bytes","entries":"entries","files":"files","hits":"hits","sessions":"sessions","users":"users","ºC":"ºC","ºF":"ºF"}');
|
||||||
|
ALTER TABLE `tserver` ADD COLUMN `port` int(5) unsigned NOT NULL default 0;
|
||||||
|
ALTER TABLE `tmap` ADD COLUMN `id_group_map` INT(10) UNSIGNED NOT NULL default 0;
|
||||||
|
ALTER TABLE `tevent_filter` MODIFY `severity` TEXT NOT NULL;
|
||||||
|
ALTER TABLE `treport_content_item` ADD `id_agent_module_failover` int(10) unsigned NOT NULL DEFAULT 0;
|
||||||
|
|
||||||
|
COMMIT;
|
@ -1,796 +1,2 @@
|
|||||||
<script type="text/javascript">
|
|
||||||
|
|
||||||
function effectFadeOut() {
|
|
||||||
$('.content').fadeOut(800).fadeIn(800)
|
|
||||||
}
|
|
||||||
$(document).ready(function(){
|
|
||||||
setInterval(effectFadeOut, 1600);
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
// remove file.
|
||||||
// Pandora FMS - the Flexible Monitoring System
|
|
||||||
// ============================================
|
|
||||||
// Copyright (c) 2010 Artica Soluciones Tecnologicas, http://www.artica.es
|
|
||||||
// Please see http://pandora.sourceforge.net for full contribution list
|
|
||||||
// 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 for version 2.
|
|
||||||
// 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.
|
|
||||||
global $config;
|
|
||||||
check_login();
|
|
||||||
|
|
||||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
|
||||||
db_pandora_audit('ACL Violation', 'Trying to change License settings');
|
|
||||||
include 'general/noaccess.php';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$update_settings = (bool) get_parameter_post('update_settings');
|
|
||||||
|
|
||||||
if ($update_settings) {
|
|
||||||
foreach ($_POST['keys'] as $key => $value) {
|
|
||||||
db_process_sql_update(
|
|
||||||
'tupdate_settings',
|
|
||||||
[db_escape_key_identifier('value') => $value],
|
|
||||||
[db_escape_key_identifier('key') => $key]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_print_success_message(__('License updated'));
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_require_javascript_file_enterprise('load_enterprise');
|
|
||||||
enterprise_include_once('include/functions_license.php');
|
|
||||||
$license = enterprise_hook('license_get_info');
|
|
||||||
|
|
||||||
$rows = db_get_all_rows_in_table('tupdate_settings');
|
|
||||||
|
|
||||||
$settings = new StdClass;
|
|
||||||
foreach ($rows as $row) {
|
|
||||||
$settings->{$row['key']} = $row['value'];
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<script type="text/javascript">';
|
|
||||||
if (enterprise_installed()) {
|
|
||||||
print_js_var_enteprise();
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '</script>';
|
|
||||||
|
|
||||||
|
|
||||||
function render_info($table)
|
|
||||||
{
|
|
||||||
global $console_mode;
|
|
||||||
|
|
||||||
$info = db_get_sql("SELECT COUNT(*) FROM $table");
|
|
||||||
render_row($info, "DB Table $table");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function render_info_data($query, $label)
|
|
||||||
{
|
|
||||||
global $console_mode;
|
|
||||||
|
|
||||||
$info = db_get_sql($query);
|
|
||||||
render_row($info, $label);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function render_row($data, $label)
|
|
||||||
{
|
|
||||||
global $console_mode;
|
|
||||||
|
|
||||||
if ($console_mode == 1) {
|
|
||||||
echo $label;
|
|
||||||
echo '|';
|
|
||||||
echo $data;
|
|
||||||
echo "\n";
|
|
||||||
} else {
|
|
||||||
echo '<tr>';
|
|
||||||
echo "<td style='padding:2px;border:0px;' width='60%'><div style='padding:5px;background-color:#f2f2f2;border-radius:2px;text-align:left;border:0px;'>".$label;
|
|
||||||
echo '</div></td>';
|
|
||||||
echo "<td style='font-weight:bold;padding:2px;border:0px;' width='40%'><div style='padding:5px;background-color:#f2f2f2;border-radius:2px;text-align:left;border:0px;'>".$data;
|
|
||||||
echo '</div></td>';
|
|
||||||
echo '</tr>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function get_value_sum($arr)
|
|
||||||
{
|
|
||||||
foreach ($arr as $clave) {
|
|
||||||
foreach ($clave as $valor) {
|
|
||||||
if (is_numeric($valor) === true) {
|
|
||||||
$result += $valor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function execution_time()
|
|
||||||
{
|
|
||||||
$times = db_get_all_rows_sql('SELECT datos FROM tagente_datos WHERE id_agente_modulo = 29 ORDER BY utimestamp DESC LIMIT 2');
|
|
||||||
if ($times[0]['datos'] > ($times[1]['datos'] * 1.2)) {
|
|
||||||
return "<a class= 'content' style= 'color: red;'>Warning Status</a><a>   The execution time could be degrading. For a more extensive information of this data consult the Execution Time graph</a>";
|
|
||||||
} else {
|
|
||||||
return "<a style ='color: green;'>Normal Status</a><a>   The execution time is correct. For more information about this data, check the Execution Time graph</a>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function get_logs_size($file)
|
|
||||||
{
|
|
||||||
$file_name = '/var'.$file.'';
|
|
||||||
$size_server_log = filesize($file_name);
|
|
||||||
return $size_server_log;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function get_status_logs($path)
|
|
||||||
{
|
|
||||||
$status_server_log = '';
|
|
||||||
$size_server_log = number_format(get_logs_size($path));
|
|
||||||
$size_server_log = (0 + str_replace(',', '', $size_server_log));
|
|
||||||
if ($size_server_log <= 10485760) {
|
|
||||||
$status_server_log = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   You have less than 10 MB of logs</a>";
|
|
||||||
} else {
|
|
||||||
$status_server_log = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   You have more than 10 MB of logs</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_server_log;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function percentage_modules_per_agent()
|
|
||||||
{
|
|
||||||
$status_average_modules = '';
|
|
||||||
$total_agents = db_get_value_sql('SELECT count(*) FROM tagente');
|
|
||||||
$total_modules = db_get_value_sql('SELECT count(*) FROM tagente_modulo');
|
|
||||||
$average_modules_per_agent = ($total_modules / $total_agents);
|
|
||||||
if ($average_modules_per_agent <= 40) {
|
|
||||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The average of modules per agent is less than 40</a>";
|
|
||||||
} else {
|
|
||||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>  The average of modules per agent is more than 40. You can have performance problems</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_average_modules;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function license_capacity()
|
|
||||||
{
|
|
||||||
$license = enterprise_hook('license_get_info');
|
|
||||||
$license_limit = $license['limit'];
|
|
||||||
$status_license_capacity = '';
|
|
||||||
$current_count = db_get_value_sql('SELECT count(*) FROM tagente');
|
|
||||||
if ($current_count > ($license_limit * 90 / 100)) {
|
|
||||||
$status_license_capacity = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   License capacity exceeds 90 percent</a>";
|
|
||||||
} else {
|
|
||||||
$status_license_capacity = "<a style= 'color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   License capacity is less than 90 percent</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_license_capacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function status_license_params($license_param)
|
|
||||||
{
|
|
||||||
$status_license_par = '';
|
|
||||||
if ($license_param <= 0) {
|
|
||||||
$status_license_par = 'OFF';
|
|
||||||
} else {
|
|
||||||
$status_license_par = 'ON';
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_license_par;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function interval_average_of_network_modules()
|
|
||||||
{
|
|
||||||
$total_network_modules = db_get_value_sql('SELECT count(*) FROM tagente_modulo WHERE id_tipo_modulo BETWEEN 6 AND 18');
|
|
||||||
$total_module_interval_time = db_get_value_sql('SELECT SUM(module_interval) FROM tagente_modulo WHERE id_tipo_modulo BETWEEN 6 AND 18');
|
|
||||||
$average_time = ((int) $total_module_interval_time / $total_network_modules);
|
|
||||||
|
|
||||||
if ($average_time < 180) {
|
|
||||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The system is overloaded (average time $average_time) and a very fine configuration is required</a>";
|
|
||||||
} else {
|
|
||||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system is not overloaded (average time $average_time) </a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($average_time == 0) {
|
|
||||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system has no load</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_average_modules;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$attachment_total_files = count(glob($config['homedir'].'/attachment/{*.*}', GLOB_BRACE));
|
|
||||||
|
|
||||||
|
|
||||||
function files_attachment_folder($total_files)
|
|
||||||
{
|
|
||||||
if ($total_files <= 700) {
|
|
||||||
$status_total_files = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The attached folder contains less than 700 files.</a>";
|
|
||||||
} else {
|
|
||||||
$status_total_files = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The attached folder contains more than 700 files.</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_total_files;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$tagente_datos_size = db_get_value_sql('SELECT COUNT(*) FROM tagente_datos');
|
|
||||||
|
|
||||||
|
|
||||||
function status_tagente_datos($tagente_datos_size)
|
|
||||||
{
|
|
||||||
if ($tagente_datos_size <= 3000000) {
|
|
||||||
$tagente_datos_size = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The tagente_datos table contains an acceptable amount of data.</a>";
|
|
||||||
} else {
|
|
||||||
$tagente_datos_size = "<a class= 'content' style ='color: red;text-decoration: none;'>Warning Status</a><a>   The tagente_datos table contains too much data. A historical database is recommended.</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $tagente_datos_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function status_values($val_rec, $val)
|
|
||||||
{
|
|
||||||
if ($val_rec <= $val) {
|
|
||||||
return $val."<a style='text-decoration: none;'> (Min. Recommended Value </a>".$val_rec.'<a>)</a>';
|
|
||||||
} else {
|
|
||||||
return $val."<a style='text-decoration: none;'> (Min. Recommended Value </a>".$val_rec."<a>)</a><a class= 'content' style ='color: red;text-decoration: none;'> Warning Status</a>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$tables_fragmentation = db_get_sql(
|
|
||||||
"SELECT (data_free/(index_length+data_length))
|
|
||||||
as frag_ratio from information_schema.tables where DATA_FREE > 0 and table_name='tagente_datos' and table_schema='pandora'"
|
|
||||||
);
|
|
||||||
$db_size = db_get_all_rows_sql(
|
|
||||||
'SELECT table_schema,
|
|
||||||
ROUND(SUM(data_length+index_length)/1024/1024,3)
|
|
||||||
FROM information_schema.TABLES
|
|
||||||
GROUP BY table_schema;'
|
|
||||||
);
|
|
||||||
|
|
||||||
if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
|
||||||
$total_server_threads = shell_exec('ps -T aux | grep pandora_server | grep -v grep | wc -l');
|
|
||||||
$percentage_threads_ram = shell_exec("ps axo pmem,cmd | grep pandora_server | awk '{sum+=$1} END {print sum}'");
|
|
||||||
$percentage_threads_cpu = shell_exec("ps axo pcpu,cmd | grep pandora_server | awk '{sum+=$1} END {print sum}'");
|
|
||||||
$innodb_buffer_pool_size_min_rec_value = shell_exec("cat /proc/meminfo | grep -i total | head -1 | awk '{print $(NF-1)*0.4/1024}'");
|
|
||||||
}
|
|
||||||
|
|
||||||
$path_server_logs = '/log/pandora/pandora_server.log';
|
|
||||||
$path_err_logs = '/log/pandora/pandora_server.error';
|
|
||||||
$path_console_logs = '/www/html/pandora_console/pandora_console.log';
|
|
||||||
$innodb_log_file_size_min_rec_value = '64M';
|
|
||||||
$innodb_log_buffer_size_min_rec_value = '16M';
|
|
||||||
$innodb_flush_log_at_trx_commit_min_rec_value = 0;
|
|
||||||
$query_cache_limit_min_rec_value = 2;
|
|
||||||
$max_allowed_packet_min_rec_value = 32;
|
|
||||||
$innodb_buffer_pool_size_min_rec_value = shell_exec("cat /proc/meminfo | grep -i total | head -1 | awk '{print $(NF-1)*0.4/1024}'");
|
|
||||||
$sort_buffer_size_min_rec_value = 32;
|
|
||||||
$join_buffer_size_min_rec_value = 265;
|
|
||||||
$query_cache_type_min_rec_value = 'ON';
|
|
||||||
$query_cache_size_min_rec_value = 24;
|
|
||||||
$innodb_lock_wait_timeout_max_rec_value = 120;
|
|
||||||
$tables_fragmentation_max_rec_value = 10;
|
|
||||||
$thread_cache_size_max_rec_value = 8;
|
|
||||||
$thread_stack_min_rec_value = 256;
|
|
||||||
$max_connections_max_rec_value = 150;
|
|
||||||
$key_buffer_size_min_rec_value = 256;
|
|
||||||
$read_buffer_size_min_rec_value = 32;
|
|
||||||
$read_rnd_buffer_size_min_rec_value = 32;
|
|
||||||
$query_cache_min_res_unit_min_rec_value = 2;
|
|
||||||
$innodb_file_per_table_min_rec_value = 1;
|
|
||||||
|
|
||||||
|
|
||||||
function status_fragmentation_tables($tables_fragmentation_max_rec_value, $tables_fragmentation)
|
|
||||||
{
|
|
||||||
$status_tables_frag = '';
|
|
||||||
if ($tables_fragmentation > $tables_fragmentation_max_rec_value) {
|
|
||||||
$status_tables_frag = "<a class= 'content' style ='color: red; text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   Table fragmentation is higher than recommended. They should be defragmented.</a>";
|
|
||||||
} else {
|
|
||||||
$status_tables_frag = "<a style ='color: green; text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   Table fragmentation is correct.</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_tables_frag;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$console_mode = 1;
|
|
||||||
if (!isset($argc)) {
|
|
||||||
$console_mode = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($console_mode == 1) {
|
|
||||||
echo "\nPandora FMS PHP diagnostic tool v3.2 (c) Artica ST 2009-2010 \n";
|
|
||||||
|
|
||||||
if ($argc == 1 || in_array($argv[1], ['--help', '-help', '-h', '-?'])) {
|
|
||||||
echo "\nThis command line script contains information about Pandora FMS database.
|
|
||||||
This program can only be executed from the console, and it needs a parameter, the
|
|
||||||
full path to Pandora FMS 'config.php' file.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
php pandora_diag.php path_to_pandora_console
|
|
||||||
|
|
||||||
Example:
|
|
||||||
php pandora_diag.php /var/www/pandora_console
|
|
||||||
|
|
||||||
";
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (preg_match('/[^a-zA-Z0-9_\/\.]|(\/\/)|(\.\.)/', $argv[1])) {
|
|
||||||
echo "Invalid path: $argv[1]. Always use absolute paths.";
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
include $argv[1].'/include/config.php';
|
|
||||||
} else {
|
|
||||||
if (file_exists('../include/config.php')) {
|
|
||||||
include '../include/config.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Not from console, this is a web session.
|
|
||||||
if ((!isset($config['id_user'])) || (!check_acl($config['id_user'], 0, 'PM'))) {
|
|
||||||
echo "<h2>You don't have privileges to use diagnostic tool</h2>";
|
|
||||||
echo '<p>Please login with an administrator account before try to use this tool</p>';
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Header.
|
|
||||||
ui_print_page_header(
|
|
||||||
__('Pandora FMS Diagnostic tool'),
|
|
||||||
'',
|
|
||||||
false,
|
|
||||||
'diagnostic_tool_tab',
|
|
||||||
true
|
|
||||||
);
|
|
||||||
|
|
||||||
echo "<table id='diagnostic_info' width='1000px' border='0' style='border:0px;' class='databox data' cellpadding='4' cellspacing='4'>";
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Pandora status info').'</th></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
render_row($build_version, 'Pandora FMS Build');
|
|
||||||
render_row($pandora_version, 'Pandora FMS Version');
|
|
||||||
render_info_data("SELECT value FROM tconfig where token ='MR'", 'Minor Release');
|
|
||||||
render_row($config['homedir'], 'Homedir');
|
|
||||||
render_row($config['homeurl'], 'HomeUrl');
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'enterprise_installed'",
|
|
||||||
'Enterprise installed'
|
|
||||||
);
|
|
||||||
|
|
||||||
$full_key = db_get_sql(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE `key` = 'customer_key'"
|
|
||||||
);
|
|
||||||
|
|
||||||
$compressed_key = substr($full_key, 0, 5).'...'.substr($full_key, -5);
|
|
||||||
|
|
||||||
render_row($compressed_key, 'Update Key');
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE `key` = 'updating_code_path'",
|
|
||||||
'Updating code path'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE `key` = 'current_update'",
|
|
||||||
'Current Update #'
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('PHP setup').'</th></tr>';
|
|
||||||
|
|
||||||
|
|
||||||
render_row(phpversion(), 'PHP Version');
|
|
||||||
|
|
||||||
render_row(ini_get('max_execution_time').' seconds', 'PHP Max execution time');
|
|
||||||
|
|
||||||
render_row(ini_get('max_input_time').' seconds', 'PHP Max input time');
|
|
||||||
|
|
||||||
render_row(ini_get('memory_limit'), 'PHP Memory limit');
|
|
||||||
|
|
||||||
render_row(ini_get('session.cookie_lifetime'), 'Session cookie lifetime');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Database size stats').'</th></tr>';
|
|
||||||
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagente', 'Total agents');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagente_modulo', 'Total modules');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tgrupo', 'Total groups');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagente_datos', 'Total module data records');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagent_access', 'Total agent access record');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tevento', 'Total events');
|
|
||||||
|
|
||||||
if ($config['enterprise_installed']) {
|
|
||||||
render_info_data('SELECT COUNT(*) FROM ttrap', 'Total traps');
|
|
||||||
}
|
|
||||||
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tusuario', 'Total users');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tsesion', 'Total sessions');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Database sanity').'</th></tr>';
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
'SELECT COUNT( DISTINCT tagente.id_agente)
|
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
|
||||||
WHERE tagente.disabled = 0
|
|
||||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
|
||||||
AND tagente_modulo.disabled = 0
|
|
||||||
AND tagente_estado.id_agente = tagente.id_agente
|
|
||||||
AND tagente_estado.estado = 3',
|
|
||||||
'Total unknown agents'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
'SELECT COUNT(tagente_estado.estado)
|
|
||||||
FROM tagente_estado
|
|
||||||
WHERE tagente_estado.estado = 4',
|
|
||||||
'Total not-init modules'
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
$last_run_difference = '';
|
|
||||||
|
|
||||||
$diferencia = (time() - date(
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_maintance'"
|
|
||||||
)
|
|
||||||
));
|
|
||||||
|
|
||||||
$last_run_difference_months = 0;
|
|
||||||
$last_run_difference_weeks = 0;
|
|
||||||
$last_run_difference_days = 0;
|
|
||||||
$last_run_difference_minutos = 0;
|
|
||||||
$last_run_difference_seconds = 0;
|
|
||||||
|
|
||||||
while ($diferencia >= 2419200) {
|
|
||||||
$diferencia -= 2419200;
|
|
||||||
$last_run_difference_months++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 604800) {
|
|
||||||
$diferencia -= 604800;
|
|
||||||
$last_run_difference_weeks++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 86400) {
|
|
||||||
$diferencia -= 86400;
|
|
||||||
$last_run_difference_days++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 3600) {
|
|
||||||
$diferencia -= 3600;
|
|
||||||
$last_run_difference_hours++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 60) {
|
|
||||||
$diferencia -= 60;
|
|
||||||
$last_run_difference_minutes++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$last_run_difference_seconds = $diferencia;
|
|
||||||
|
|
||||||
if ($last_run_difference_months > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_months.'month/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_weeks > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_weeks.' week/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_days > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_days.' day/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_hours > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_hours.' hour/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_minutes > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_minutes.' minute/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
$last_run_difference .= $last_run_difference_seconds.' second/s ago';
|
|
||||||
|
|
||||||
render_row(
|
|
||||||
date(
|
|
||||||
'Y/m/d H:i:s',
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_maintance'"
|
|
||||||
)
|
|
||||||
).' ('.$last_run_difference.')'.' *',
|
|
||||||
'PandoraDB Last run'
|
|
||||||
);
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Database status info').'</th></tr>';
|
|
||||||
|
|
||||||
switch ($config['dbtype']) {
|
|
||||||
case 'mysql':
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_scheme_first_version'",
|
|
||||||
'DB Schema Version (first installed)'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_scheme_version'",
|
|
||||||
'DB Schema Version (actual)'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_scheme_build'",
|
|
||||||
'DB Schema Build'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_row(get_value_sum($db_size).'M', 'DB Size');
|
|
||||||
|
|
||||||
|
|
||||||
if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('System info').'</th></tr>';
|
|
||||||
|
|
||||||
$output = 'cat /proc/cpuinfo | grep "model name" | tail -1 | cut -f 2 -d ":"';
|
|
||||||
$output2 = 'cat /proc/cpuinfo | grep "processor" | wc -l';
|
|
||||||
|
|
||||||
render_row(exec($output).' x '.exec($output2), 'CPU');
|
|
||||||
|
|
||||||
$output = 'cat /proc/meminfo | grep "MemTotal"';
|
|
||||||
|
|
||||||
render_row(exec($output), 'RAM');
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'postgresql':
|
|
||||||
render_info_data(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig
|
|
||||||
WHERE \"token\" = 'db_scheme_version'",
|
|
||||||
'DB Schema Version'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig
|
|
||||||
WHERE \"token\" = 'db_scheme_build'",
|
|
||||||
'DB Schema Build'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig
|
|
||||||
WHERE \"token\" = 'enterprise_installed'",
|
|
||||||
'Enterprise installed'
|
|
||||||
);
|
|
||||||
render_row(
|
|
||||||
date(
|
|
||||||
'Y/m/d H:i:s',
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig WHERE \"token\" = 'db_maintance'"
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'PandoraDB Last run'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'customer_key';",
|
|
||||||
'Update Key'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'updating_code_path'",
|
|
||||||
'Updating code path'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'current_update'",
|
|
||||||
'Current Update #'
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'oracle':
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'db_scheme_version'",
|
|
||||||
'DB Schema Version'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'db_scheme_build'",
|
|
||||||
'DB Schema Build'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'enterprise_installed'",
|
|
||||||
'Enterprise installed'
|
|
||||||
);
|
|
||||||
render_row(
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'db_maintance'"
|
|
||||||
),
|
|
||||||
'PandoraDB Last run'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
'SELECT '.db_escape_key_identifier('value')." FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'customer_key'",
|
|
||||||
'Update Key'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
'SELECT '.db_escape_key_identifier('value')." FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'updating_code_path'",
|
|
||||||
'Updating code path'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
'SELECT '.db_escape_key_identifier('value')." FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'current_update'",
|
|
||||||
'Current Update #'
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$innodb_log_file_size = (db_get_value_sql('SELECT @@innodb_log_file_size') / 1048576);
|
|
||||||
$innodb_log_buffer_size = (db_get_value_sql('SELECT @@innodb_log_buffer_size') / 1048576);
|
|
||||||
$innodb_flush_log_at_trx_commit = db_get_value_sql('SELECT @@innodb_flush_log_at_trx_commit');
|
|
||||||
$max_allowed_packet = (db_get_value_sql('SELECT @@max_allowed_packet') / 1048576);
|
|
||||||
$innodb_buffer_pool_size = (db_get_value_sql('SELECT @@innodb_buffer_pool_size') / 1024);
|
|
||||||
$sort_buffer_size = number_format((db_get_value_sql('SELECT @@sort_buffer_size') / 1024), 2);
|
|
||||||
$join_buffer_size = (db_get_value_sql('SELECT @@join_buffer_size') / 1024);
|
|
||||||
$query_cache_type = db_get_value_sql('SELECT @@query_cache_type');
|
|
||||||
$query_cache_size = (db_get_value_sql('SELECT @@query_cache_size') / 1048576);
|
|
||||||
$query_cache_limit = (db_get_value_sql('SELECT @@query_cache_limit') / 1048576);
|
|
||||||
$innodb_lock_wait_timeout = db_get_value_sql('SELECT @@innodb_lock_wait_timeout');
|
|
||||||
$thread_cache_size = db_get_value_sql('SELECT @@thread_cache_size');
|
|
||||||
$thread_stack = (db_get_value_sql('SELECT @@thread_stack') / 1024);
|
|
||||||
$max_connections = db_get_value_sql('SELECT @@max_connections');
|
|
||||||
$key_buffer_size = (db_get_value_sql('SELECT @@key_buffer_size') / 1024);
|
|
||||||
$read_buffer_size = (db_get_value_sql('SELECT @@read_buffer_size') / 1024);
|
|
||||||
$read_rnd_buffer_size = (db_get_value_sql('SELECT @@read_rnd_buffer_size') / 1024);
|
|
||||||
$query_cache_min_res_unit = (db_get_value_sql('SELECT @@query_cache_min_res_unit') / 1024);
|
|
||||||
$innodb_file_per_table = db_get_value_sql('SELECT @@innodb_file_per_table');
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('MySQL Performance metrics').' '.ui_print_help_icon('performance_metrics_tab', true).'</th></tr>';
|
|
||||||
|
|
||||||
render_row(status_values($innodb_log_file_size_min_rec_value, $innodb_log_file_size), 'InnoDB log file size ', 'InnoDB log file size ');
|
|
||||||
render_row(status_values($innodb_log_buffer_size_min_rec_value, $innodb_log_buffer_size), 'InnoDB log buffer size ', 'InnoDB log buffer size ');
|
|
||||||
render_row(status_values($innodb_flush_log_at_trx_commit_min_rec_value, $innodb_flush_log_at_trx_commit), 'InnoDB flush log at trx-commit ', 'InnoDB flush log at trx-commit ');
|
|
||||||
render_row(status_values($max_allowed_packet_min_rec_value, $max_allowed_packet), 'Maximun allowed packet ', 'Maximun allowed packet ');
|
|
||||||
render_row(status_values($innodb_buffer_pool_size_min_rec_value, $innodb_buffer_pool_size), 'InnoDB buffer pool size ', 'InnoDB buffer pool size ');
|
|
||||||
render_row(status_values($sort_buffer_size_min_rec_value, $sort_buffer_size), 'Sort buffer size ', 'Sort buffer size ');
|
|
||||||
render_row(status_values($join_buffer_size_min_rec_value, $join_buffer_size), 'Join buffer size ', 'Join buffer size ');
|
|
||||||
render_row(status_values($query_cache_type_min_rec_value, $query_cache_type), 'Query cache type ', 'Query cache type ');
|
|
||||||
render_row(status_values($query_cache_size_min_rec_value, $query_cache_size), 'Query cache size ', 'Query cache size ');
|
|
||||||
render_row(status_values($query_cache_limit_min_rec_value, $query_cache_limit), 'Query cache limit ', 'Query cache limit ');
|
|
||||||
render_row(status_values($innodb_lock_wait_timeout_max_rec_value, $innodb_lock_wait_timeout), 'InnoDB lock wait timeout ', 'InnoDB lock wait timeout ');
|
|
||||||
render_row(status_values($thread_cache_size_max_rec_value, $thread_cache_size), 'Thread cache size ', 'Thread cache size ');
|
|
||||||
render_row(status_values($thread_stack_min_rec_value, $thread_stack), 'Thread stack ', 'Thread stack ');
|
|
||||||
render_row(status_values($max_connections_max_rec_value, $max_connections), 'Maximum connections ', 'Maximun connections ');
|
|
||||||
render_row(status_values($key_buffer_size_min_rec_value, $key_buffer_size), 'Key buffer size ', 'Key buffer size ');
|
|
||||||
render_row(status_values($read_buffer_size_min_rec_value, $read_buffer_size), 'Read buffer size ', 'Read buffer size ');
|
|
||||||
render_row(status_values($read_rnd_buffer_size_min_rec_value, $read_rnd_buffer_size), 'Read rnd-buffer size ', 'Read rnd-buffer size ');
|
|
||||||
render_row(status_values($query_cache_min_res_unit_min_rec_value, $query_cache_min_res_unit), 'Query cache min-res-unit ', 'Query cache min-res-unit ');
|
|
||||||
render_row(status_values($innodb_file_per_table_min_rec_value, $innodb_file_per_table), 'InnoDB file per table ', 'InnoDB file per table ');
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Tables fragmentation in the Pandora FMS database').'</th></tr>';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
render_row($tables_fragmentation_max_rec_value.'%', 'Tables fragmentation (maximum recommended value)');
|
|
||||||
render_row(number_format($tables_fragmentation, 2).'%', 'Tables fragmentation (current value)');
|
|
||||||
render_row(status_fragmentation_tables($tables_fragmentation_max_rec_value, $tables_fragmentation), 'Table fragmentation status');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS logs dates').'</th></tr>';
|
|
||||||
|
|
||||||
render_row(number_format((get_logs_size($path_server_logs) / 1048576), 3).'M', 'Size server logs (current value)');
|
|
||||||
render_row(get_status_logs($path_server_logs), 'Status server logs');
|
|
||||||
render_row(number_format((get_logs_size($path_err_logs) / 1048576), 3).'M', 'Size error logs (current value)');
|
|
||||||
render_row(get_status_logs($path_err_logs), 'Status error logs');
|
|
||||||
render_row(number_format((get_logs_size($path_console_logs) / 1048576), 3).'M', 'Size console logs (current value)');
|
|
||||||
render_row(get_status_logs($path_console_logs), 'Status console logs');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS Licence Information').'</th></tr>';
|
|
||||||
|
|
||||||
render_row(html_print_textarea('keys[customer_key]', 10, 255, $settings->customer_key, 'style="height:40px; width:450px;"', true), 'Customer key');
|
|
||||||
render_row($license['expiry_date'], 'Expires');
|
|
||||||
render_row($license['limit'].' agents', 'Platform Limit');
|
|
||||||
render_row($license['count'].' agents', 'Current Platform Count');
|
|
||||||
render_row($license['count_enabled'].' agents', 'Current Platform Count (enabled: items)');
|
|
||||||
render_row($license['count_disabled'].' agents', 'Current Platform Count (disabled: items)');
|
|
||||||
render_row($license['license_mode'], 'License Mode');
|
|
||||||
render_row(status_license_params($license['nms']), 'Network Management System');
|
|
||||||
render_row(status_license_params($license['dhpm']), 'Satellite');
|
|
||||||
render_row($license['licensed_to'], 'Licensed to');
|
|
||||||
render_row(license_capacity(), 'Status of agents capacity');
|
|
||||||
render_row(percentage_modules_per_agent(), 'Status of average modules per agent');
|
|
||||||
render_row(interval_average_of_network_modules(), 'Interval average of the network modules');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Status of the attachment folder').'</th></tr>';
|
|
||||||
|
|
||||||
render_row($attachment_total_files, 'Total files in the attached folder');
|
|
||||||
render_row(files_attachment_folder($attachment_total_files), 'Status of the attachment folder');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Information from the tagente_datos table').'</th></tr>';
|
|
||||||
|
|
||||||
render_row($tagente_datos_size, 'Total data in tagente_datos table');
|
|
||||||
render_row(status_tagente_datos($tagente_datos_size), 'Tangente_datos table status');
|
|
||||||
render_row(execution_time(), 'Execution time degradation when executing a count');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS server threads').'</th></tr>';
|
|
||||||
|
|
||||||
render_row($total_server_threads, 'Total server threads');
|
|
||||||
render_row($percentage_threads_ram.'%', 'Percentage of threads used by the RAM');
|
|
||||||
render_row($percentage_threads_cpu.'%', 'Percentage of threads used by the CPU');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Graphs modules that represent the self-monitoring system').'</th></tr>';
|
|
||||||
|
|
||||||
$server_name = db_get_value_sql('SELECT name FROM tserver WHERE master = 1');
|
|
||||||
$agent_id = db_get_value_sql("SELECT id_agente FROM tagente WHERE nombre = '$server_name'");
|
|
||||||
|
|
||||||
$id_modules = agents_get_modules($agent_id);
|
|
||||||
|
|
||||||
$id_modules = [
|
|
||||||
modules_get_agentmodule_id('Agents_Unknown', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Database Maintenance', $agent_id),
|
|
||||||
modules_get_agentmodule_id('FreeDisk_SpoolDir', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Free_RAM', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Queued_Modules', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Status', $agent_id),
|
|
||||||
modules_get_agentmodule_id('System_Load_AVG', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Execution_time', $agent_id),
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($id_modules as $id_module) {
|
|
||||||
$params = [
|
|
||||||
'agent_module_id' => $id_module['id_agente_modulo'],
|
|
||||||
'period' => SECONDS_1MONTH,
|
|
||||||
'date' => time(),
|
|
||||||
'height' => '150',
|
|
||||||
];
|
|
||||||
render_row(grafico_modulo_sparse($params), 'Graph of the '.$id_module['nombre'].' module.');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($console_mode == 0) {
|
|
||||||
echo '</table>';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "<hr color='#b1b1b1' size=1 width=1000 align=left>";
|
|
||||||
|
|
||||||
echo '<span>'.__(
|
|
||||||
'(*) Please check your Pandora Server setup and make sure that the database maintenance daemon is running. It\' is very important to
|
|
||||||
keep the database up-to-date to get the best performance and results in Pandora'
|
|
||||||
).'</span><br><br><br>';
|
|
||||||
|
@ -60,6 +60,10 @@ ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_next` bigint(20) NOT NULL def
|
|||||||
ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tlocal_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tlocal_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
|
|
||||||
|
ALTER TABLE `tlocal_component` MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_next` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_two_tailed` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `tpolicy_modules`
|
-- Table `tpolicy_modules`
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
@ -138,6 +142,10 @@ CREATE TABLE IF NOT EXISTS `tpolicy_modules` (
|
|||||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
||||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tpolicy_modules` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
|
ALTER TABLE `tpolicy_modules` MODIFY COLUMN `ip_target` varchar(100) NULL DEFAULT '',
|
||||||
|
MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_next` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_two_tailed` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tpolicies`
|
-- Table `tpolicies`
|
||||||
@ -187,6 +195,7 @@ CREATE TABLE IF NOT EXISTS `tpolicy_agents` (
|
|||||||
|
|
||||||
ALTER TABLE `tpolicy_agents` ADD COLUMN `id_node` int(10) NOT NULL DEFAULT '0';
|
ALTER TABLE `tpolicy_agents` ADD COLUMN `id_node` int(10) NOT NULL DEFAULT '0';
|
||||||
ALTER TABLE `tpolicy_agents` ADD UNIQUE(`id_policy`, `id_agent`, `id_node`);
|
ALTER TABLE `tpolicy_agents` ADD UNIQUE(`id_policy`, `id_agent`, `id_node`);
|
||||||
|
ALTER TABLE `tpolicy_agents` DROP INDEX `id_policy`, ADD UNIQUE INDEX `id_policy` (`id_policy`, `id_agent`, `id_node`), DROP INDEX `id_policy_2`;
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `tpolicy_groups`
|
-- Table `tpolicy_groups`
|
||||||
@ -219,14 +228,17 @@ CREATE TABLE IF NOT EXISTS `tdashboard` (
|
|||||||
-- Table `tdatabase`
|
-- Table `tdatabase`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
CREATE TABLE IF NOT EXISTS `tdatabase` (
|
CREATE TABLE IF NOT EXISTS `tdatabase` (
|
||||||
`id` int(10) unsigned NOT NULL auto_increment,
|
`id` INT(10) unsigned NOT NULL auto_increment,
|
||||||
`host` varchar(100) default '',
|
`host` VARCHAR(255) default '',
|
||||||
`os_port` int(4) unsigned default '22',
|
`label` VARCHAR(255) default '',
|
||||||
`os_user` varchar(100) default '',
|
`os_port` INT UNSIGNED NOT NULL DEFAULT 22,
|
||||||
`db_port` int(4) unsigned default '3306',
|
`os_user` VARCHAR(255) default '',
|
||||||
|
`db_port` INT UNSIGNED NOT NULL DEFAULT 3306,
|
||||||
`status` tinyint(1) unsigned default '0',
|
`status` tinyint(1) unsigned default '0',
|
||||||
`action` tinyint(1) unsigned default '0',
|
`action` tinyint(1) unsigned default '0',
|
||||||
`last_error` varchar(255) default '',
|
`ssh_key` TEXT,
|
||||||
|
`ssh_pubkey` TEXT,
|
||||||
|
`last_error` TEXT,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
||||||
|
|
||||||
@ -374,6 +386,12 @@ ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbhost` text;
|
|||||||
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbport` text;
|
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbport` text;
|
||||||
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbname` text;
|
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbname` text;
|
||||||
|
|
||||||
|
ALTER TABLE `tmetaconsole_setup` MODIFY COLUMN `meta_dbuser` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbpass` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbhost` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbport` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbname` text NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tprofile_view`
|
-- Table `tprofile_view`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -561,6 +579,39 @@ CREATE TABLE IF NOT EXISTS `tevent_rule` (
|
|||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
ALTER TABLE `tevent_rule` ADD COLUMN `group_recursion` INT(1) unsigned default 0;
|
ALTER TABLE `tevent_rule` ADD COLUMN `group_recursion` INT(1) unsigned default 0;
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `log_content` TEXT;
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `log_source` TEXT;
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `log_agent` TEXT;
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_agent` text COMMENT 'Operator for agent';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_id_usuario` text COMMENT 'Operator for id_usuario';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_id_grupo` text COMMENT 'Operator for id_grupo';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_evento` text COMMENT 'Operator for evento';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_event_type` text COMMENT 'Operator for event_type';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_module` text COMMENT 'Operator for module';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_alert` text COMMENT 'Operator for alert';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_criticity` text COMMENT 'Operator for criticity';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_user_comment` text COMMENT 'Operator for user_comment';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_id_tag` text COMMENT 'Operator for id_tag';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_content` text COMMENT 'Operator for log_content';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_source` text COMMENT 'Operator for log_source';
|
||||||
|
ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_agent` text COMMENT 'Operator for log_agent';
|
||||||
|
ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` enum('','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal') default '';
|
||||||
|
ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` int(4) unsigned DEFAULT NULL;
|
||||||
|
ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` mediumint(4) DEFAULT NULL;
|
||||||
|
|
||||||
|
UPDATE `tevent_rule` SET `operator_agent` = "REGEX" WHERE `agent` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_id_usuario` = "REGEX" WHERE `id_usuario` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_id_grupo` = "REGEX" WHERE `id_grupo` > 0;
|
||||||
|
UPDATE `tevent_rule` SET `operator_evento` = "REGEX" WHERE `evento` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_event_type` = "REGEX" WHERE `event_type` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_module` = "REGEX" WHERE `module` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_alert` = "REGEX" WHERE `alert` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_criticity` = "REGEX" WHERE `criticity` != '99';
|
||||||
|
UPDATE `tevent_rule` SET `operator_user_comment` = "REGEX" WHERE `user_comment` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_id_tag` = "REGEX" WHERE `id_tag` > 0;
|
||||||
|
UPDATE `tevent_rule` SET `operator_log_content` = "REGEX" WHERE `log_content` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_log_source` = "REGEX" WHERE `log_source` != '';
|
||||||
|
UPDATE `tevent_rule` SET `operator_log_agent` = "REGEX" WHERE `log_agent` != '';
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `tevent_alert`
|
-- Table `tevent_alert`
|
||||||
@ -609,6 +660,9 @@ CREATE TABLE IF NOT EXISTS `tevent_alert` (
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `tevent_alert` ADD COLUMN `special_days` tinyint(1) default 0;
|
||||||
|
ALTER TABLE `tevent_alert` MODIFY COLUMN `time_threshold` int(10) NOT NULL default 86400;
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `tevent_alert_action`
|
-- Table `tevent_alert_action`
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
@ -710,6 +764,8 @@ CREATE TABLE IF NOT EXISTS `treport_template` (
|
|||||||
`footer` MEDIUMTEXT default NULL,
|
`footer` MEDIUMTEXT default NULL,
|
||||||
`custom_font` varchar(200) default NULL,
|
`custom_font` varchar(200) default NULL,
|
||||||
`metaconsole` tinyint(1) DEFAULT 0,
|
`metaconsole` tinyint(1) DEFAULT 0,
|
||||||
|
`agent_regex` varchar(600) NOT NULL default '',
|
||||||
|
|
||||||
PRIMARY KEY(`id_report`)
|
PRIMARY KEY(`id_report`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
@ -761,23 +817,6 @@ CREATE TABLE IF NOT EXISTS `treport_content_template` (
|
|||||||
PRIMARY KEY(`id_rc`)
|
PRIMARY KEY(`id_rc`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
|
||||||
-- Table `tnews`
|
|
||||||
-- ----------------------------------------------------------------------
|
|
||||||
CREATE TABLE IF NOT EXISTS `tnews` (
|
|
||||||
`id_news` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
`author` varchar(255) NOT NULL DEFAULT '',
|
|
||||||
`subject` varchar(255) NOT NULL DEFAULT '',
|
|
||||||
`text` TEXT NOT NULL,
|
|
||||||
`timestamp` DATETIME NOT NULL DEFAULT 0,
|
|
||||||
`id_group` int(10) NOT NULL default 0,
|
|
||||||
`modal` tinyint(1) DEFAULT 0,
|
|
||||||
`expire` tinyint(1) DEFAULT 0,
|
|
||||||
`expire_timestamp` DATETIME NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY(`id_news`)
|
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE treport_content_template ADD COLUMN `historical_db` tinyint(1) NOT NULL DEFAULT '0';
|
ALTER TABLE treport_content_template ADD COLUMN `historical_db` tinyint(1) NOT NULL DEFAULT '0';
|
||||||
ALTER TABLE treport_content_template ADD COLUMN `lapse_calc` tinyint(1) default '0';
|
ALTER TABLE treport_content_template ADD COLUMN `lapse_calc` tinyint(1) default '0';
|
||||||
ALTER TABLE treport_content_template ADD COLUMN `lapse` int(11) default '300';
|
ALTER TABLE treport_content_template ADD COLUMN `lapse` int(11) default '300';
|
||||||
@ -798,6 +837,29 @@ ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) D
|
|||||||
ALTER TABLE `treport_content_template` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
ALTER TABLE `treport_content_template` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
||||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '1';
|
ALTER TABLE `treport_content_template` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '1';
|
||||||
ALTER TABLE `treport_content_template` ADD COLUMN `failover_type` tinyint(1) DEFAULT '1';
|
ALTER TABLE `treport_content_template` ADD COLUMN `failover_type` tinyint(1) DEFAULT '1';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content_template` MODIFY COLUMN `historical_db` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse_calc` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse` int(11) unsigned NOT NULL DEFAULT '300',
|
||||||
|
MODIFY COLUMN `visual_format` tinyint(1) unsigned NOT NULL DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `landscape` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `pagebreak` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
-- Table `tnews`
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `tnews` (
|
||||||
|
`id_news` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
`author` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`subject` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`text` TEXT NOT NULL,
|
||||||
|
`timestamp` DATETIME NOT NULL DEFAULT 0,
|
||||||
|
`id_group` int(10) NOT NULL default 0,
|
||||||
|
`modal` tinyint(1) DEFAULT 0,
|
||||||
|
`expire` tinyint(1) DEFAULT 0,
|
||||||
|
`expire_timestamp` DATETIME NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY(`id_news`)
|
||||||
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `treport_content_sla_com_temp` (treport_content_sla_combined_template)
|
-- Table `treport_content_sla_com_temp` (treport_content_sla_combined_template)
|
||||||
@ -909,6 +971,7 @@ CREATE TABLE IF NOT EXISTS `tmetaconsole_event` (
|
|||||||
|
|
||||||
ALTER TABLE `tmetaconsole_event` ADD COLUMN `data` double(22,5) default NULL;
|
ALTER TABLE `tmetaconsole_event` ADD COLUMN `data` double(22,5) default NULL;
|
||||||
ALTER TABLE `tmetaconsole_event` ADD COLUMN `module_status` int(4) NOT NULL default '0';
|
ALTER TABLE `tmetaconsole_event` ADD COLUMN `module_status` int(4) NOT NULL default '0';
|
||||||
|
ALTER TABLE `tmetaconsole_event` ADD INDEX `server_id` (`server_id`);
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmetaconsole_event_history`
|
-- Table `tmetaconsole_event_history`
|
||||||
@ -1044,6 +1107,14 @@ CREATE TABLE IF NOT EXISTS `tmetaconsole_agent` (
|
|||||||
FOREIGN KEY (`id_tmetaconsole_setup`) REFERENCES tmetaconsole_setup(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (`id_tmetaconsole_setup`) REFERENCES tmetaconsole_setup(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `tmetaconsole_agent` ADD COLUMN `remote` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
ADD COLUMN `cascade_protection_module` int(10) unsigned NULL DEFAULT '0',
|
||||||
|
ADD COLUMN `transactional_agent` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
ADD COLUMN `alias` varchar(600) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
MODIFY COLUMN `update_secondary_groups` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0',
|
||||||
|
ADD INDEX `id_tagente_idx` (`id_tagente`);
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `ttransaction`
|
-- Table `ttransaction`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1099,6 +1170,8 @@ CREATE TABLE IF NOT EXISTS `titem` (
|
|||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `titem` MODIFY COLUMN `source_data` varchar(250) NULL DEFAULT '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmap`
|
-- Table `tmap`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1122,10 +1195,11 @@ CREATE TABLE IF NOT EXISTS `tmap` (
|
|||||||
`generation_method` INTEGER UNSIGNED NOT NULL default 0,
|
`generation_method` INTEGER UNSIGNED NOT NULL default 0,
|
||||||
`generated` INTEGER UNSIGNED NOT NULL default 0,
|
`generated` INTEGER UNSIGNED NOT NULL default 0,
|
||||||
`filter` TEXT,
|
`filter` TEXT,
|
||||||
|
`id_group_map` INT(10) UNSIGNED NOT NULL default 0,
|
||||||
|
|
||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `trel_item`
|
-- Table `trel_item`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1143,6 +1217,10 @@ CREATE TABLE IF NOT EXISTS `trel_item` (
|
|||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `trel_item` MODIFY COLUMN `id_map` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `id_parent_source_data` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `id_child_source_data` int(10) unsigned NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_templates`
|
-- Table `talert_templates`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1166,6 +1244,11 @@ ALTER TABLE talert_snmp ADD COLUMN `al_field12` TEXT NOT NULL DEFAULT "";
|
|||||||
ALTER TABLE talert_snmp ADD COLUMN `al_field13` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_snmp ADD COLUMN `al_field13` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_snmp ADD COLUMN `al_field14` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_snmp ADD COLUMN `al_field14` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_snmp ADD COLUMN `al_field15` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_snmp ADD COLUMN `al_field15` TEXT NOT NULL DEFAULT "";
|
||||||
|
ALTER TABLE `talert_snmp` MODIFY COLUMN `al_field11` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field12` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field13` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field14` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field15` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_snmp_action`
|
-- Table `talert_snmp_action`
|
||||||
@ -1180,6 +1263,7 @@ ALTER TABLE talert_snmp_action ADD COLUMN `al_field15` TEXT NOT NULL DEFAULT "";
|
|||||||
-- Table `tserver`
|
-- Table `tserver`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
ALTER TABLE tserver ADD COLUMN `server_keepalive` int(11) DEFAULT 0;
|
ALTER TABLE tserver ADD COLUMN `server_keepalive` int(11) DEFAULT 0;
|
||||||
|
ALTER TABLE `tserver` MODIFY COLUMN `server_keepalive` int(11) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Table `tagente_estado`
|
-- Table `tagente_estado`
|
||||||
@ -1191,6 +1275,11 @@ ALTER TABLE tagente_estado ADD COLUMN last_unknown_update bigint(20) NOT NULL de
|
|||||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
ALTER TABLE `tagente_estado` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
||||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
ALTER TABLE `tagente_estado` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
||||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
ALTER TABLE `tagente_estado` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
||||||
|
ALTER TABLE `tagente_estado` MODIFY COLUMN `datos` mediumtext NOT NULL,
|
||||||
|
MODIFY COLUMN `known_status` tinyint(4) NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `last_known_status` tinyint(4) NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `last_dynamic_update` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `last_unknown_update` bigint(20) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_actions`
|
-- Table `talert_actions`
|
||||||
@ -1214,6 +1303,11 @@ ALTER TABLE talert_actions ADD COLUMN `field12_recovery` TEXT NOT NULL DEFAULT "
|
|||||||
ALTER TABLE talert_actions ADD COLUMN `field13_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field13_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN `field14_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field14_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
|
ALTER TABLE `talert_actions` MODIFY COLUMN `field11` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field12` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field13` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field14` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field15` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_commands`
|
-- Table `talert_commands`
|
||||||
@ -1227,15 +1321,12 @@ UPDATE `talert_actions` SET `field4` = 'text/html', `field4_recovery` = 'text/ht
|
|||||||
|
|
||||||
DELETE FROM `talert_commands` WHERE `id` = 11;
|
DELETE FROM `talert_commands` WHERE `id` = 11;
|
||||||
|
|
||||||
|
ALTER TABLE `talert_commands` MODIFY COLUMN `id_group` mediumint(8) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmap`
|
-- Table `tmap`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tmap MODIFY `id_user` varchar(128);
|
ALTER TABLE `tmap` MODIFY COLUMN `id_user` varchar(250) NOT NULL DEFAULT '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
|
||||||
-- Table `titem`
|
|
||||||
-- ---------------------------------------------------------------------
|
|
||||||
ALTER TABLE titem MODIFY `source_data` int(10) unsigned;
|
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tconfig`
|
-- Table `tconfig`
|
||||||
@ -1243,19 +1334,39 @@ ALTER TABLE titem MODIFY `source_data` int(10) unsigned;
|
|||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 30);
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 35);
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
||||||
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
||||||
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '737');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '742');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
||||||
UPDATE `tconfig` SET `value` = 'mini_severity,evento,id_agente,estado,timestamp' WHERE `token` LIKE 'event_fields';
|
UPDATE `tconfig` SET `value` = 'mini_severity,evento,id_agente,estado,timestamp' WHERE `token` LIKE 'event_fields';
|
||||||
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_enabled';
|
|
||||||
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_api_password';
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_api_password';
|
||||||
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_inventory';
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_inventory';
|
||||||
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_url';
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_url';
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_user', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_hostname', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_api_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_req_timeout', 5);
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_content', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_content', '');
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tconfig_os`
|
-- Table `tconfig_os`
|
||||||
@ -1290,6 +1401,10 @@ ALTER TABLE tevent_filter ADD COLUMN `date_to` date DEFAULT NULL;
|
|||||||
ALTER TABLE tevent_filter ADD COLUMN `user_comment` text NOT NULL;
|
ALTER TABLE tevent_filter ADD COLUMN `user_comment` text NOT NULL;
|
||||||
ALTER TABLE tevent_filter ADD COLUMN `source` tinytext NOT NULL;
|
ALTER TABLE tevent_filter ADD COLUMN `source` tinytext NOT NULL;
|
||||||
ALTER TABLE tevent_filter ADD COLUMN `id_extra` tinytext NOT NULL;
|
ALTER TABLE tevent_filter ADD COLUMN `id_extra` tinytext NOT NULL;
|
||||||
|
ALTER TABLE tevent_filter ADD COLUMN `id_source_event` int(10);
|
||||||
|
ALTER TABLE `tevent_filter` MODIFY COLUMN `user_comment` text NOT NULL;
|
||||||
|
ALTER TABLE `tevent_filter` MODIFY COLUMN `severity` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tusuario`
|
-- Table `tusuario`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1304,7 +1419,11 @@ ALTER TABLE `tusuario` ADD COLUMN `default_custom_view` int(10) unsigned NULL de
|
|||||||
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_user` VARCHAR(60);
|
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_user` VARCHAR(60);
|
||||||
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_pass` VARCHAR(45);
|
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_pass` VARCHAR(45);
|
||||||
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_enabled` TINYINT(1);
|
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_enabled` TINYINT(1);
|
||||||
|
ALTER TABLE `tusuario` MODIFY COLUMN `default_event_filter` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
ADD INDEX `fk_filter_id` (`id_filter`),
|
||||||
|
ADD CONSTRAINT `fk_filter_id` FOREIGN KEY `fk_filter_id` (`id_filter`) REFERENCES `tevent_filter` (`id_filter`) ON DELETE SET NULL ON UPDATE RESTRICT,
|
||||||
|
DROP FOREIGN KEY `fk_id_filter`,
|
||||||
|
DROP INDEX `fk_id_filter`;
|
||||||
|
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1315,14 +1434,23 @@ ALTER TABLE tagente_modulo ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned d
|
|||||||
ALTER TABLE tagente_modulo ADD COLUMN `parent_module_id` int(10) unsigned NOT NULL default 0;
|
ALTER TABLE tagente_modulo ADD COLUMN `parent_module_id` int(10) unsigned NOT NULL default 0;
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `cps` int NOT NULL default 0;
|
ALTER TABLE `tagente_modulo` ADD COLUMN `cps` int NOT NULL default 0;
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
ALTER TABLE `tagente_modulo` DROP COLUMN `ff_normal`,
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
DROP COLUMN `ff_warning`,
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
DROP COLUMN `ff_critical`,
|
||||||
|
MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_next` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_two_tailed` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagente_datos`
|
-- Table `tagente_datos`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tagente_datos MODIFY `datos` double(22,5);
|
ALTER TABLE tagente_datos MODIFY `datos` double(22,5);
|
||||||
|
ALTER TABLE `tagente_datos` DROP INDEX `data_index1`, ADD INDEX `data_index1` (`id_agente_modulo`, `utimestamp`);
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tagente_datos_string`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `tagente_datos_string` MODIFY COLUMN `datos` mediumtext NOT NULL, DROP INDEX `data_string_index_1`, ADD INDEX `data_string_index_1` (`id_agente_modulo`, `utimestamp`);
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagente_datos_inc`
|
-- Table `tagente_datos_inc`
|
||||||
@ -1338,6 +1466,7 @@ ALTER TABLE tnetwork_component ADD COLUMN `dynamic_min` int(4) default '0';
|
|||||||
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
||||||
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tnetwork_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tnetwork_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
|
ALTER TABLE `tnetwork_component` MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagente`
|
-- Table `tagente`
|
||||||
@ -1352,6 +1481,12 @@ ALTER TABLE `tagente` ADD COLUMN `cps` int NOT NULL default 0;
|
|||||||
|
|
||||||
UPDATE tagente SET tagente.alias = tagente.nombre;
|
UPDATE tagente SET tagente.alias = tagente.nombre;
|
||||||
|
|
||||||
|
ALTER TABLE `tagente` MODIFY COLUMN `remote` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `cascade_protection_module` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `update_secondary_groups` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `alias` varchar(600) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tservice`
|
-- Table `tservice`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1371,6 +1506,8 @@ ALTER TABLE tlayout MODIFY `name` varchar(600) NOT NULL;
|
|||||||
|
|
||||||
UPDATE tlayout SET is_favourite = 1 WHERE name REGEXP '^(' OR name REGEXP '^\\[';
|
UPDATE tlayout SET is_favourite = 1 WHERE name REGEXP '^(' OR name REGEXP '^\\[';
|
||||||
|
|
||||||
|
ALTER TABLE `tlayout` MODIFY COLUMN `is_favourite` int(10) unsigned NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tlayout_data`
|
-- Table `tlayout_data`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1389,6 +1526,13 @@ ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_status_as_service_warning`
|
|||||||
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0;
|
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0;
|
||||||
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_node_id` INT(10) NOT NULL default 0;
|
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_node_id` INT(10) NOT NULL default 0;
|
||||||
ALTER TABLE `tlayout_data` ADD COLUMN `cache_expiration` INTEGER UNSIGNED NOT NULL DEFAULT 0;
|
ALTER TABLE `tlayout_data` ADD COLUMN `cache_expiration` INTEGER UNSIGNED NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE `tlayout_data` MODIFY COLUMN `type_graph` varchar(50) NOT NULL DEFAULT 'area',
|
||||||
|
MODIFY COLUMN `label_position` varchar(50) NOT NULL DEFAULT 'down',
|
||||||
|
MODIFY COLUMN `linked_layout_node_id` int(10) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `linked_layout_status_type` enum('default','weight','service') NULL DEFAULT 'default',
|
||||||
|
MODIFY COLUMN `element_group` int(10) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_warning` float(20,3) NOT NULL DEFAULT '0.000',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_critical` float(20,3) NOT NULL DEFAULT '0.000';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagent_custom_fields`
|
-- Table `tagent_custom_fields`
|
||||||
@ -1410,6 +1554,7 @@ ALTER TABLE tgraph ADD COLUMN `summatory_series` tinyint(1) UNSIGNED NOT NULL de
|
|||||||
ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
||||||
ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
||||||
ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '0';
|
ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '0';
|
||||||
|
ALTER TABLE `tgraph` MODIFY COLUMN `percentil` tinyint(1) unsigned NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tnetflow_filter`
|
-- Table `tnetflow_filter`
|
||||||
@ -1454,12 +1599,22 @@ ALTER TABLE `treport_content` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
|||||||
ALTER TABLE `treport_content` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '0';
|
ALTER TABLE `treport_content` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '0';
|
||||||
ALTER TABLE `treport_content` ADD COLUMN `failover_type` tinyint(1) DEFAULT '0';
|
ALTER TABLE `treport_content` ADD COLUMN `failover_type` tinyint(1) DEFAULT '0';
|
||||||
ALTER table `treport_content` MODIFY COLUMN `name` varchar(300) NULL;
|
ALTER table `treport_content` MODIFY COLUMN `name` varchar(300) NULL;
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content` MODIFY COLUMN `historical_db` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse_calc` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse` int(11) unsigned NOT NULL DEFAULT '300',
|
||||||
|
MODIFY COLUMN `visual_format` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `failover_mode` tinyint(1) NULL DEFAULT '1',
|
||||||
|
MODIFY COLUMN `failover_type` tinyint(1) NULL DEFAULT '1';
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `landscape` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `pagebreak` tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmodule_relationship`
|
-- Table `tmodule_relationship`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tmodule_relationship ADD COLUMN `id_server` varchar(100) NOT NULL DEFAULT '';
|
ALTER TABLE tmodule_relationship ADD COLUMN `id_server` varchar(100) NOT NULL DEFAULT '';
|
||||||
ALTER TABLE `tmodule_relationship` ADD COLUMN `type` ENUM('direct', 'failover') DEFAULT 'direct';
|
ALTER TABLE `tmodule_relationship` ADD COLUMN `type` ENUM('direct', 'failover') DEFAULT 'direct';
|
||||||
|
ALTER TABLE `tmodule_relationship` MODIFY COLUMN `id_server` varchar(100) NOT NULL DEFAULT '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tpolicy_module`
|
-- Table `tpolicy_module`
|
||||||
@ -1490,6 +1645,14 @@ ALTER TABLE trecon_task ADD `wmi_enabled` tinyint(1) unsigned DEFAULT '0';
|
|||||||
ALTER TABLE trecon_task ADD `auth_strings` text;
|
ALTER TABLE trecon_task ADD `auth_strings` text;
|
||||||
ALTER TABLE trecon_task ADD `autoconfiguration_enabled` tinyint(1) unsigned default '0';
|
ALTER TABLE trecon_task ADD `autoconfiguration_enabled` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE trecon_task ADD `summary` text;
|
ALTER TABLE trecon_task ADD `summary` text;
|
||||||
|
ALTER TABLE `trecon_task` ADD COLUMN `type` int(11) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `snmp_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `vlan_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `wmi_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `auth_strings` text NULL,
|
||||||
|
MODIFY COLUMN `autoconfiguration_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `summary` text NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `twidget` AND Table `twidget_dashboard`
|
-- Table `twidget` AND Table `twidget_dashboard`
|
||||||
@ -1602,22 +1765,26 @@ ALTER TABLE tserver_export MODIFY `name` varchar(600) BINARY NOT NULL default ''
|
|||||||
|
|
||||||
ALTER TABLE tgraph_source ADD COLUMN id_server int(11) UNSIGNED NOT NULL default 0;
|
ALTER TABLE tgraph_source ADD COLUMN id_server int(11) UNSIGNED NOT NULL default 0;
|
||||||
ALTER TABLE tgraph_source ADD COLUMN `field_order` int(10) NOT NULL default 0;
|
ALTER TABLE tgraph_source ADD COLUMN `field_order` int(10) NOT NULL default 0;
|
||||||
|
ALTER TABLE `tgraph_source` MODIFY COLUMN `id_server` int(11) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `field_order` int(10) NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tserver_export_data`
|
-- Table `tserver_export_data`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
|
|
||||||
ALTER TABLE tserver_export_data MODIFY `module_name` varchar(600) BINARY NOT NULL default '';
|
ALTER TABLE tserver_export_data MODIFY `module_name` varchar(600) NOT NULL default '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tserver`
|
-- Table `tserver`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tserver ADD COLUMN exec_proxy tinyint(1) UNSIGNED NOT NULL default 0;
|
ALTER TABLE tserver ADD COLUMN exec_proxy tinyint(1) UNSIGNED NOT NULL default 0;
|
||||||
|
ALTER TABLE `tserver` ADD COLUMN `port` int(5) unsigned NOT NULL default 0;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tevent_response`
|
-- Table `tevent_response`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tevent_response ADD COLUMN server_to_exec int(10) unsigned NOT NULL DEFAULT 0;
|
ALTER TABLE tevent_response ADD COLUMN server_to_exec int(10) unsigned NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE tevent_response ADD COLUMN command_timeout int(5) unsigned NOT NULL DEFAULT 90;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmodule`
|
-- Table `tmodule`
|
||||||
@ -1629,7 +1796,12 @@ INSERT INTO tmodule VALUES (8, 'Wux module');
|
|||||||
-- Table `ttipo_modulo`
|
-- Table `ttipo_modulo`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
|
|
||||||
INSERT INTO ttipo_modulo VALUES (25,'web_analysis', 8, 'Web analysis data', 'module-wux.png');
|
INSERT INTO `ttipo_modulo` VALUES
|
||||||
|
(25,'web_analysis', 8, 'Web analysis data', 'module-wux.png'),
|
||||||
|
(34,'remote_cmd', 10, 'Remote execution, numeric data', 'mod_remote_cmd.png'),
|
||||||
|
(35,'remote_cmd_proc', 10, 'Remote execution, boolean data', 'mod_remote_cmd_proc.png'),
|
||||||
|
(36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'),
|
||||||
|
(37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png');
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tdashboard`
|
-- Table `tdashboard`
|
||||||
@ -1783,6 +1955,7 @@ create table IF NOT EXISTS `tmetaconsole_agent_secondary_group`(
|
|||||||
ALTER TABLE tagente ADD COLUMN `update_secondary_groups` tinyint(1) NOT NULL default '0';
|
ALTER TABLE tagente ADD COLUMN `update_secondary_groups` tinyint(1) NOT NULL default '0';
|
||||||
ALTER TABLE tmetaconsole_agent ADD COLUMN `update_secondary_groups` tinyint(1) NOT NULL default '0';
|
ALTER TABLE tmetaconsole_agent ADD COLUMN `update_secondary_groups` tinyint(1) NOT NULL default '0';
|
||||||
ALTER TABLE tusuario_perfil ADD COLUMN `no_hierarchy` tinyint(1) NOT NULL default '0';
|
ALTER TABLE tusuario_perfil ADD COLUMN `no_hierarchy` tinyint(1) NOT NULL default '0';
|
||||||
|
ALTER TABLE `tmetaconsole_agent_secondary_group` ADD INDEX `id_tagente` (`id_tagente`);
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tautoconfig`
|
-- Table `tautoconfig`
|
||||||
@ -1882,10 +2055,16 @@ CREATE TABLE IF NOT EXISTS `tlayout_template_data` (
|
|||||||
`linked_layout_status_as_service_warning` FLOAT(20, 3) NOT NULL default 0,
|
`linked_layout_status_as_service_warning` FLOAT(20, 3) NOT NULL default 0,
|
||||||
`linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0,
|
`linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0,
|
||||||
`linked_layout_node_id` INT(10) NOT NULL default 0,
|
`linked_layout_node_id` INT(10) NOT NULL default 0,
|
||||||
|
`cache_expiration` INTEGER UNSIGNED NOT NULL default 0,
|
||||||
PRIMARY KEY(`id`),
|
PRIMARY KEY(`id`),
|
||||||
FOREIGN KEY (`id_layout_template`) REFERENCES tlayout_template(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (`id_layout_template`) REFERENCES tlayout_template(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `tlayout_template_data` MODIFY COLUMN `linked_layout_node_id` int(10) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `linked_layout_status_type` enum('default','weight','service') NULL DEFAULT 'default',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_warning` float(20,3) NOT NULL DEFAULT '0.000',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_critical` float(20,3) NOT NULL DEFAULT '0.000';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tlog_graph_models`
|
-- Table `tlog_graph_models`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1931,6 +2110,7 @@ INSERT INTO tlog_graph_models VALUES (7, 'Users login',
|
|||||||
|
|
||||||
ALTER TABLE `treport` ADD COLUMN `hidden` tinyint(1) NOT NULL DEFAULT 0;
|
ALTER TABLE `treport` ADD COLUMN `hidden` tinyint(1) NOT NULL DEFAULT 0;
|
||||||
ALTER TABLE `treport` ADD COLUMN `orientation` varchar(25) NOT NULL default 'vertical';
|
ALTER TABLE `treport` ADD COLUMN `orientation` varchar(25) NOT NULL default 'vertical';
|
||||||
|
ALTER TABLE `treport` MODIFY COLUMN `hidden` tinyint(1) NULL DEFAULT '0' AFTER `non_interactive`;
|
||||||
|
|
||||||
ALTER TABLE `trecon_task` ADD COLUMN `snmp_version` varchar(5) NOT NULL default '1';
|
ALTER TABLE `trecon_task` ADD COLUMN `snmp_version` varchar(5) NOT NULL default '1';
|
||||||
ALTER TABLE `trecon_task` ADD COLUMN `snmp_auth_user` varchar(255) NOT NULL default '';
|
ALTER TABLE `trecon_task` ADD COLUMN `snmp_auth_user` varchar(255) NOT NULL default '';
|
||||||
@ -2067,7 +2247,8 @@ ALTER TABLE `tmensajes` ADD COLUMN `citicity` INT(10) UNSIGNED DEFAULT '0';
|
|||||||
ALTER TABLE `tmensajes` ADD COLUMN `id_source` BIGINT(20) UNSIGNED NOT NULL;
|
ALTER TABLE `tmensajes` ADD COLUMN `id_source` BIGINT(20) UNSIGNED NOT NULL;
|
||||||
ALTER TABLE `tmensajes` ADD COLUMN `subtype` VARCHAR(255) DEFAULT '';
|
ALTER TABLE `tmensajes` ADD COLUMN `subtype` VARCHAR(255) DEFAULT '';
|
||||||
ALTER TABLE `tmensajes` ADD CONSTRAINT `tsource_fk` FOREIGN KEY (`id_source`) REFERENCES `tnotification_source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
ALTER TABLE `tmensajes` ADD CONSTRAINT `tsource_fk` FOREIGN KEY (`id_source`) REFERENCES `tnotification_source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
ALTER TABLE `tmensajes` DROP COLUMN `id_usuario_destino`,
|
||||||
|
ADD UNIQUE INDEX `id_mensaje` (`id_mensaje`);
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Table `tnotification_user`
|
-- Table `tnotification_user`
|
||||||
@ -2169,7 +2350,7 @@ ALTER TABLE tagent_custom_fields ADD COLUMN `combo_values` VARCHAR(255) DEFAULT
|
|||||||
-- Add column in table `tnetflow_filter`
|
-- Add column in table `tnetflow_filter`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
ALTER TABLE `tnetflow_filter` DROP COLUMN `output`;
|
ALTER TABLE `tnetflow_filter` DROP COLUMN `output`;
|
||||||
|
ALTER TABLE `tnetflow_filter` MODIFY COLUMN `router_ip` text NOT NULL;
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Update table `tuser_task`
|
-- Update table `tuser_task`
|
||||||
@ -2188,6 +2369,17 @@ INSERT INTO `tnews` (`id_news`, `author`, `subject`, `text`, `timestamp`) VALUES
|
|||||||
|
|
||||||
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
||||||
|
|
||||||
|
ALTER TABLE `talert_templates` MODIFY COLUMN `field11` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field12` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field13` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field14` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field15` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field11_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field12_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field13_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field14_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field15_recovery` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tvisual_console_items_cache`
|
-- Table `tvisual_console_items_cache`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -2215,7 +2407,7 @@ CREATE TABLE `tvisual_console_elements_cache` (
|
|||||||
CREATE TABLE IF NOT EXISTS `tcredential_store` (
|
CREATE TABLE IF NOT EXISTS `tcredential_store` (
|
||||||
`identifier` varchar(100) NOT NULL,
|
`identifier` varchar(100) NOT NULL,
|
||||||
`id_group` mediumint(4) unsigned NOT NULL DEFAULT 0,
|
`id_group` mediumint(4) unsigned NOT NULL DEFAULT 0,
|
||||||
`product` enum('CUSTOM', 'AWS', 'AZURE', 'GOOGLE') default 'CUSTOM',
|
`product` enum('CUSTOM', 'AWS', 'AZURE', 'GOOGLE', 'SAP') default 'CUSTOM',
|
||||||
`username` text,
|
`username` text,
|
||||||
`password` text,
|
`password` text,
|
||||||
`extra_1` text,
|
`extra_1` text,
|
||||||
@ -2245,6 +2437,21 @@ CREATE TABLE `tagent_repository` (
|
|||||||
ON UPDATE CASCADE ON DELETE CASCADE
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
-- Table `treport_content_item`
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `treport_content_item` (
|
||||||
|
`id` INTEGER UNSIGNED NOT NULL auto_increment,
|
||||||
|
`id_report_content` INTEGER UNSIGNED NOT NULL,
|
||||||
|
`id_agent_module` int(10) unsigned NOT NULL,
|
||||||
|
`id_agent_module_failover` int(10) unsigned NOT NULL DEFAULT 0,
|
||||||
|
`server_name` text,
|
||||||
|
`operation` text,
|
||||||
|
PRIMARY KEY(`id`),
|
||||||
|
FOREIGN KEY (`id_report_content`) REFERENCES treport_content(`id_rc`)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Table `tdeployment_hosts`
|
-- Table `tdeployment_hosts`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
@ -2268,3 +2475,55 @@ CREATE TABLE `tdeployment_hosts` (
|
|||||||
FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`)
|
FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`)
|
||||||
ON UPDATE CASCADE ON DELETE SET NULL
|
ON UPDATE CASCADE ON DELETE SET NULL
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
-- Table `tremote_command`
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
CREATE TABLE `tremote_command` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`name` varchar(150) NOT NULL,
|
||||||
|
`timeout` int(10) unsigned NOT NULL default 30,
|
||||||
|
`retries` int(10) unsigned NOT NULL default 3,
|
||||||
|
`preconditions` text,
|
||||||
|
`script` text,
|
||||||
|
`postconditions` text,
|
||||||
|
`utimestamp` int(20) unsigned NOT NULL default 0,
|
||||||
|
`id_group` int(10) unsigned NOT NULL default 0,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
-- Table `tremote_command_target`
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
CREATE TABLE `tremote_command_target` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`rcmd_id` bigint unsigned NOT NULL,
|
||||||
|
`id_agent` int(10) unsigned NOT NULL,
|
||||||
|
`utimestamp` int(20) unsigned NOT NULL default 0,
|
||||||
|
`stdout` MEDIUMTEXT,
|
||||||
|
`stderr` MEDIUMTEXT,
|
||||||
|
`errorlevel` int(10) unsigned NOT NULL default 0,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY (`rcmd_id`) REFERENCES `tremote_command`(`id`)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
=========
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `trecon_script`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `trecon_script` ADD COLUMN `type` int(11) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tusuario_perfil`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `tusuario_perfil` MODIFY COLUMN `no_hierarchy` tinyint(1) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
|
|
||||||
|
-- Extra tnetwork_component
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('N. total processes','Number of running processes in a Windows system.',11,34,0,0,300,0,'tasklist /NH | find /c /v ""','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Free space in C:','Free space available in C:',11,34,0,0,300,0,'powershell $obj=(Get-WmiObject -class "Win32_LogicalDisk" -namespace "root\CIMV2") ; $obj.FreeSpace[0] * 100 /$obj.Size[0]','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux uptime','System uptime',43,36,0,0,300,0,'uptime |sed s/us\.*$//g | sed s/,\.*$//g','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux processes','Running processes',43,34,0,0,300,0,'ps elf | wc -l','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux system load','Current load (5 min)',43,34,0,0,300,0,'uptime | awk '{print $(NF-1)}' | tr -d ','','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available memory percent','Available memory %',43,34,0,0,300,0,'free | grep Mem | awk '{print $NF/$2 * 100}'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available disk /','Available free space in mountpoint /',43,34,0,0,300,0,'df / | tail -n +2 | awk '{print $(NF-1)}' | tr -d '%'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'0.00',0.00,0.00,'',0,'','inherited','',0,0,0.000000000000000,'','nowizard','','nowizard','0','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
@ -105,7 +105,7 @@ if (check_login()) {
|
|||||||
|
|
||||||
echo __(
|
echo __(
|
||||||
"This is the online help for %s console. This help is -in best cases- just a brief contextual help, not intented to teach you how to use %s. Official documentation of %s is about 900 pages, and you probably don't need to read it entirely, but sure, you should download it and take a look.<br><br>
|
"This is the online help for %s console. This help is -in best cases- just a brief contextual help, not intented to teach you how to use %s. Official documentation of %s is about 900 pages, and you probably don't need to read it entirely, but sure, you should download it and take a look.<br><br>
|
||||||
<a href='%s' target='_blanck' style='color: #82b92e; font-size: 10pt; text-decoration: underline;'>Download the official documentation</a>",
|
<a href='%s' target='_blanck' class='pandora_green_text' style='font-size: 10pt; text-decoration: underline;'>Download the official documentation</a>",
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
|
64
pandora_console/general/first_task/HA_cluster_builder.php
Normal file
64
pandora_console/general/first_task/HA_cluster_builder.php
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Manage database HA cluster.
|
||||||
|
*
|
||||||
|
* @category Manager
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Database HA cluster
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2007-2012 Artica Soluciones Tecnologicas, http://www.artica.es
|
||||||
|
* This code is NOT free software. This code is NOT licenced under GPL2 licence
|
||||||
|
* You cannnot redistribute it without written permission of copyright holder.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
check_login();
|
||||||
|
|
||||||
|
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||||
|
db_pandora_audit(
|
||||||
|
'ACL Violation',
|
||||||
|
'Trying to access HA cluster'
|
||||||
|
);
|
||||||
|
include 'general/noaccess.php';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_require_css_file('first_task');
|
||||||
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clusters defined yet.') ]);
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="new_task_cluster">
|
||||||
|
<div class="image_task_cluster">
|
||||||
|
<?php echo html_print_image('images/first_task/slave-mode.png', true, ['title' => __('Clusters')]); ?>
|
||||||
|
</div>
|
||||||
|
<div class="text_task_cluster">
|
||||||
|
<h3> <?php echo __('PANDORA FMS DB CLUSTER'); ?></h3>
|
||||||
|
<p id="description_task">
|
||||||
|
<?php
|
||||||
|
echo __('With Pandora FMS Enterprise you can add high availability to your Pandora FMS installation by adding redundant MySQL servers').'<br><br>';
|
||||||
|
|
||||||
|
echo __('Click on "add new node" to start transforming your Pandora FMS DB Cluster into a Pandora FMS DB Cluster.').'<br><br>';
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||||
|
echo "<div id='create_master_window'></div>";
|
||||||
|
echo "<div id='msg'></div>";
|
||||||
|
?>
|
||||||
|
<input style="margin-bottom:20px;" onclick="show_create_ha_cluster();" type="submit" class="button_task" value="<?php echo __('Add new node'); ?>" />
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -24,7 +24,7 @@ if (! check_acl($config['id_user'], 0, 'AR') && ! check_acl($config['id_user'],
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no clusters defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no clusters defined yet.') ]);
|
||||||
@ -32,7 +32,7 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no cluster
|
|||||||
|
|
||||||
<div class="new_task_cluster">
|
<div class="new_task_cluster">
|
||||||
<div class="image_task_cluster">
|
<div class="image_task_cluster">
|
||||||
<?php echo html_print_image('images/firts_task/icono-cluster-activo.png', true, ['title' => __('Clusters')]); ?>
|
<?php echo html_print_image('images/first_task/icono-cluster-activo.png', true, ['title' => __('Clusters')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task_cluster">
|
<div class="text_task_cluster">
|
||||||
<h3> <?php echo __('Create Cluster'); ?></h3>
|
<h3> <?php echo __('Create Cluster'); ?></h3>
|
@ -13,7 +13,7 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no collections defined yet.') ]); ?>
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no collections defined yet.') ]); ?>
|
||||||
|
|
@ -13,7 +13,7 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no custom fields defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no custom fields defined yet.') ]);
|
||||||
@ -21,7 +21,7 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no custom
|
|||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Custom Fields')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_reconserver.png', true, ['title' => __('Custom Fields')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Custom Fields'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Custom Fields'); ?></h3><p id="description_task">
|
@ -13,7 +13,7 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no custom graphs defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no custom graphs defined yet.') ]);
|
||||||
@ -21,7 +21,7 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no custom
|
|||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_custom_reporting.png', true, ['title' => __('Custom Graphs')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_custom_reporting.png', true, ['title' => __('Custom Graphs')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Custom Graph'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Custom Graph'); ?></h3><p id="description_task">
|
@ -13,13 +13,13 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no custom fields defined yet.') ]); ?>
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no custom fields defined yet.') ]); ?>
|
||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Fields Manager')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_reconserver.png', true, ['title' => __('Fields Manager')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Fields Manager'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Fields Manager'); ?></h3><p id="description_task">
|
@ -15,7 +15,7 @@ global $config;
|
|||||||
global $incident_w;
|
global $incident_w;
|
||||||
global $incident_m;
|
global $incident_m;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no incidents defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no incidents defined yet.') ]);
|
||||||
@ -25,7 +25,7 @@ if ($incident_w || $incident_m) {
|
|||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_incidencia.png', true, ['title' => __('Incidents')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_incidencia.png', true, ['title' => __('Incidents')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Incidents'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Incidents'); ?></h3><p id="description_task">
|
@ -15,7 +15,7 @@ global $config;
|
|||||||
global $vconsoles_write;
|
global $vconsoles_write;
|
||||||
global $vconsoles_manage;
|
global $vconsoles_manage;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
|
|
||||||
ui_print_info_message(
|
ui_print_info_message(
|
||||||
[
|
[
|
||||||
@ -28,7 +28,7 @@ if ($vconsoles_write || $vconsoles_manage) {
|
|||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_visualconsole.png', true, ['title' => __('Visual Console')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_visualconsole.png', true, ['title' => __('Visual Console')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Visual Console'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Visual Console'); ?></h3><p id="description_task">
|
@ -13,7 +13,7 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no network map defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no network map defined yet.') ]);
|
||||||
@ -23,7 +23,7 @@ $networkmap_types = networkmap_get_types($strict_user);
|
|||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Network Map')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_reconserver.png', true, ['title' => __('Network Map')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Network Map'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Network Map'); ?></h3><p id="description_task">
|
56
pandora_console/general/first_task/omnishell.php
Normal file
56
pandora_console/general/first_task/omnishell.php
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Omnishell first task.
|
||||||
|
*
|
||||||
|
* @category Omnishell
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Enterprise
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2007-2019 Artica Soluciones Tecnologicas, http://www.artica.es
|
||||||
|
* This code is NOT free software. This code is NOT licenced under GPL2 licence
|
||||||
|
* You cannnot redistribute it without written permission of copyright holder.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
global $config;
|
||||||
|
check_login();
|
||||||
|
ui_require_css_file('first_task');
|
||||||
|
?>
|
||||||
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There is no command defined yet.') ]); ?>
|
||||||
|
|
||||||
|
<div class="new_task">
|
||||||
|
<div class="image_task">
|
||||||
|
<?php echo html_print_image('images/first_task/omnishell.png', true, ['title' => __('Omnishell')]); ?>
|
||||||
|
</div>
|
||||||
|
<div class="text_task">
|
||||||
|
<h3> <?php echo __('Omnishell'); ?></h3><p id="description_task">
|
||||||
|
<?php
|
||||||
|
echo '<p>'.__(
|
||||||
|
'Omnishell is an enterprise feature which allows you to execute a structured command along any agent in your %s. The only requirement is to have remote configuration enabled in your agent.',
|
||||||
|
io_safe_output(get_product_name())
|
||||||
|
).'</p>';
|
||||||
|
|
||||||
|
echo '<p>'.__(
|
||||||
|
'You can execute any command on as many agents you need, and check the execution on all of them using the Omnishell Command View'
|
||||||
|
).'</p>';
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
<?php
|
||||||
|
if (enterprise_installed()) {
|
||||||
|
?>
|
||||||
|
<form action="index.php?sec=gextensions&sec2=enterprise/tools/omnishell&page=1" method="post">
|
||||||
|
<input type="submit" class="button_task" value="<?php echo __('Define a command'); ?>" />
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -13,13 +13,13 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no planned downtime defined yet.') ]); ?>
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no planned downtime defined yet.') ]); ?>
|
||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_visualconsole.png', true, ['title' => __('Planned Downtime')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_visualconsole.png', true, ['title' => __('Planned Downtime')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Planned Downtime'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Planned Downtime'); ?></h3><p id="description_task">
|
||||||
@ -33,7 +33,7 @@ ui_require_css_file('firts_task');
|
|||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<form action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" method="post">
|
<form action="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor" method="post">
|
||||||
<input type="submit" class="button_task" value="<?php echo __('Create Planned Downtime'); ?>" />
|
<input type="submit" class="button_task" value="<?php echo __('Create Planned Downtime'); ?>" />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
@ -13,13 +13,13 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no discovery tasks defined yet.') ]); ?>
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no discovery tasks defined yet.') ]); ?>
|
||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('Discovery server')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_reconserver.png', true, ['title' => __('Discovery server')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Discovery Task'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Discovery Task'); ?></h3><p id="description_task">
|
@ -15,14 +15,14 @@ global $config;
|
|||||||
global $agent_w;
|
global $agent_w;
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no services defined yet.') ]); ?>
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no services defined yet.') ]); ?>
|
||||||
|
|
||||||
<?php if ($agent_w) { ?>
|
<?php if ($agent_w) { ?>
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_servicios.png', true, ['title' => __('Services')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_servicios.png', true, ['title' => __('Services')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Services'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Services'); ?></h3><p id="description_task">
|
@ -13,13 +13,13 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no SNMP filter defined yet.') ]); ?>
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no SNMP filter defined yet.') ]); ?>
|
||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_reconserver.png', true, ['title' => __('SNMP Filter')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_reconserver.png', true, ['title' => __('SNMP Filter')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create SNMP Filter'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create SNMP Filter'); ?></h3><p id="description_task">
|
@ -13,13 +13,13 @@
|
|||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
global $config;
|
global $config;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no tags defined yet.') ]); ?>
|
<?php ui_print_info_message(['no_close' => true, 'message' => __('There are no tags defined yet.') ]); ?>
|
||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_gestiondetags.png', true, ['title' => __('Tags')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_gestiondetags.png', true, ['title' => __('Tags')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Tags'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Tags'); ?></h3><p id="description_task">
|
@ -15,7 +15,7 @@ global $config;
|
|||||||
global $networkmaps_write;
|
global $networkmaps_write;
|
||||||
global $networkmaps_manage;
|
global $networkmaps_manage;
|
||||||
check_login();
|
check_login();
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('first_task');
|
||||||
?>
|
?>
|
||||||
<?php
|
<?php
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no transactions defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no transactions defined yet.') ]);
|
||||||
@ -25,7 +25,7 @@ if ($networkmaps_write || $networkmaps_manage) {
|
|||||||
|
|
||||||
<div class="new_task">
|
<div class="new_task">
|
||||||
<div class="image_task">
|
<div class="image_task">
|
||||||
<?php echo html_print_image('images/firts_task/icono_grande_topology.png', true, ['title' => __('Transactions')]); ?>
|
<?php echo html_print_image('images/first_task/icono_grande_topology.png', true, ['title' => __('Transactions')]); ?>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_task">
|
<div class="text_task">
|
||||||
<h3> <?php echo __('Create Transactions'); ?></h3><p id="description_task">
|
<h3> <?php echo __('Create Transactions'); ?></h3><p id="description_task">
|
@ -1,87 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
|
||||||
// ==================================================
|
|
||||||
// Copyright (c) 2005-2018 Artica Soluciones Tecnologicas
|
|
||||||
// Please see http://pandorafms.org for full contribution list
|
|
||||||
// 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
|
|
||||||
// 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.
|
|
||||||
global $config;
|
|
||||||
|
|
||||||
check_login();
|
|
||||||
|
|
||||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
|
||||||
db_pandora_audit(
|
|
||||||
'ACL Violation',
|
|
||||||
'Trying to access HA cluster'
|
|
||||||
);
|
|
||||||
include 'general/noaccess.php';
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_require_css_file('firts_task');
|
|
||||||
?>
|
|
||||||
<?php
|
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clusters defined yet.') ]);
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div class="new_task_cluster">
|
|
||||||
<div class="image_task_cluster">
|
|
||||||
<?php echo html_print_image('images/firts_task/slave-mode.png', true, ['title' => __('Clusters')]); ?>
|
|
||||||
</div>
|
|
||||||
<div class="text_task_cluster">
|
|
||||||
<h3> <?php echo __('PANDORA FMS DB CLUSTER'); ?></h3>
|
|
||||||
<p id="description_task">
|
|
||||||
<?php
|
|
||||||
echo __('With Pandora FMS Enterprise you can add high availability to your Pandora FMS installation by adding redundant MySQL servers').'<br><br>';
|
|
||||||
|
|
||||||
echo __('Click on "add new node" to start transforming your Pandora FMS DB Cluster into a Pandora FMS DB Cluster.').'<br><br>';
|
|
||||||
?>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
if (check_acl($config['id_user'], 0, 'AW')) {
|
|
||||||
echo "<div id='create_master_window'></div>";
|
|
||||||
?>
|
|
||||||
<input style="margin-bottom:20px;" onclick="show_create_ha_cluster();" type="submit" class="button_task" value="<?php echo __('Add new node'); ?>" />
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script type="text/javascript">
|
|
||||||
function show_create_ha_cluster() {
|
|
||||||
var params = {};
|
|
||||||
params["dialog_master"] = 1;
|
|
||||||
params["page"] = "enterprise/include/ajax/HA_cluster.ajax";
|
|
||||||
jQuery.ajax ({
|
|
||||||
data: params,
|
|
||||||
dataType: "html",
|
|
||||||
type: "POST",
|
|
||||||
url: "ajax.php",
|
|
||||||
success: function (data) {
|
|
||||||
$("#create_master_window").dialog ({
|
|
||||||
title: '<?php echo __('Add master node'); ?>',
|
|
||||||
resizable: true,
|
|
||||||
draggable: true,
|
|
||||||
modal: true,
|
|
||||||
close: function() {
|
|
||||||
|
|
||||||
},
|
|
||||||
overlay: {
|
|
||||||
opacity: 0.5,
|
|
||||||
background: "black"
|
|
||||||
},
|
|
||||||
width: 800,
|
|
||||||
height: 600
|
|
||||||
}).empty()
|
|
||||||
.html(data)
|
|
||||||
.show ();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
@ -13,6 +13,8 @@
|
|||||||
require_once 'include/functions_messages.php';
|
require_once 'include/functions_messages.php';
|
||||||
require_once 'include/functions_servers.php';
|
require_once 'include/functions_servers.php';
|
||||||
require_once 'include/functions_notifications.php';
|
require_once 'include/functions_notifications.php';
|
||||||
|
require_once 'include/ajax/order_interpreter.php';
|
||||||
|
ui_require_css_file('order_interpreter');
|
||||||
|
|
||||||
// Check permissions
|
// Check permissions
|
||||||
// Global errors/warnings checking.
|
// Global errors/warnings checking.
|
||||||
@ -99,7 +101,8 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
|
|
||||||
if ($acl_head_search) {
|
if ($acl_head_search) {
|
||||||
// Search bar.
|
// Search bar.
|
||||||
$search_bar = '<form method="get" style="display: inline;" name="quicksearch" action="">';
|
$search_bar = '<form autocomplete="off" method="get" style="display: inline;" name="quicksearch" action="">';
|
||||||
|
'<input autocomplete="false" name="hidden" type="text" style="display:none;">';
|
||||||
if (!isset($config['search_keywords'])) {
|
if (!isset($config['search_keywords'])) {
|
||||||
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = true; </script>';
|
$search_bar .= '<script type="text/javascript"> var fieldKeyWordEmpty = true; </script>';
|
||||||
} else {
|
} else {
|
||||||
@ -110,7 +113,7 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$search_bar .= '<input type="text" id="keywords" name="keywords"';
|
$search_bar .= '<input id="keywords" name="keywords"';
|
||||||
if (!isset($config['search_keywords'])) {
|
if (!isset($config['search_keywords'])) {
|
||||||
$search_bar .= "value='".__('Enter keywords to search')."'";
|
$search_bar .= "value='".__('Enter keywords to search')."'";
|
||||||
} else if (strlen($config['search_keywords']) == 0) {
|
} else if (strlen($config['search_keywords']) == 0) {
|
||||||
@ -119,9 +122,11 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
$search_bar .= "value='".$config['search_keywords']."'";
|
$search_bar .= "value='".$config['search_keywords']."'";
|
||||||
}
|
}
|
||||||
|
|
||||||
$search_bar .= 'onfocus="javascript: if (fieldKeyWordEmpty) $(\'#keywords\').val(\'\');"
|
$search_bar .= 'type="search" onfocus="javascript: if (fieldKeyWordEmpty) $(\'#keywords\').val(\'\');"
|
||||||
onkeyup="javascript: fieldKeyWordEmpty = false;" class="search_input" />';
|
onkeyup="showinterpreter()" class="search_input"/>';
|
||||||
|
|
||||||
|
|
||||||
|
$search_bar .= '<div id="result_order" class="result_order"></div>';
|
||||||
// $search_bar .= 'onClick="javascript: document.quicksearch.submit()"';
|
// $search_bar .= 'onClick="javascript: document.quicksearch.submit()"';
|
||||||
$search_bar .= "<input type='hidden' name='head_search_keywords' value='abc' />";
|
$search_bar .= "<input type='hidden' name='head_search_keywords' value='abc' />";
|
||||||
$search_bar .= '</form>';
|
$search_bar .= '</form>';
|
||||||
@ -328,22 +333,40 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
$header_autorefresh_counter .= $autorefresh_additional;
|
$header_autorefresh_counter .= $autorefresh_additional;
|
||||||
$header_autorefresh_counter .= '</div>';
|
$header_autorefresh_counter .= '</div>';
|
||||||
|
|
||||||
|
// Button for feedback pandora.
|
||||||
|
if (enterprise_installed()) {
|
||||||
|
$header_feedback = '<div id="feedback-icon-header">';
|
||||||
|
$header_feedback .= '<div id="modal-feedback-form" style="display:none;"></div>';
|
||||||
|
$header_feedback .= '<div id="msg-header" style="display: none"></div>';
|
||||||
|
$header_feedback .= html_print_image(
|
||||||
|
'/images/feedback-header.png',
|
||||||
|
true,
|
||||||
|
[
|
||||||
|
'title' => __('Feedback'),
|
||||||
|
'id' => 'feedback-header',
|
||||||
|
'alt' => __('Feedback'),
|
||||||
|
'style' => 'cursor: pointer;',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$header_feedback .= '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Support.
|
// Support.
|
||||||
if (defined('PANDORA_ENTERPRISE')) {
|
if (enterprise_installed()) {
|
||||||
$header_support_link = 'https://support.artica.es/';
|
$header_support_link = $config['custom_support_url'];
|
||||||
} else {
|
} else {
|
||||||
$header_support_link = 'https://pandorafms.com/forums/';
|
$header_support_link = 'https://pandorafms.com/forums/';
|
||||||
}
|
}
|
||||||
|
|
||||||
$header_support = '<div id="header_support">';
|
$header_support = '<div id="header_support">';
|
||||||
$header_support .= '<a href="'.$header_support_link.'" target="_blank">';
|
$header_support .= '<a href="'.ui_get_full_external_url($header_support_link).'" target="_blank">';
|
||||||
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
|
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
|
||||||
$header_support .= '</a></div>';
|
$header_support .= '</a></div>';
|
||||||
|
|
||||||
// Documentation.
|
// Documentation.
|
||||||
$header_docu = '<div id="header_docu">';
|
$header_docu = '<div id="header_docu">';
|
||||||
$header_docu .= '<a href="https://wiki.pandorafms.com/index.php?title=Main_Page" target="_blank">';
|
$header_docu .= '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">';
|
||||||
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
|
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
|
||||||
$header_docu .= '</a></div>';
|
$header_docu .= '</a></div>';
|
||||||
|
|
||||||
@ -388,9 +411,9 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
|
|
||||||
echo '<div class="header_left"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$config['custom_subtitle_header'].'</span></div>
|
echo '<div class="header_left"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$config['custom_subtitle_header'].'</span></div>
|
||||||
<div class="header_center">'.$header_searchbar.'</div>
|
<div class="header_center">'.$header_searchbar.'</div>
|
||||||
<div class="header_right">'.$header_chat, $header_autorefresh, $header_autorefresh_counter, $header_discovery, $servers_list, $header_support, $header_docu, $header_user, $header_logout.'</div>';
|
<div class="header_right">'.$header_chat, $header_autorefresh, $header_autorefresh_counter, $header_discovery, $servers_list, $header_feedback, $header_support, $header_docu, $header_user, $header_logout.'</div>';
|
||||||
?>
|
?>
|
||||||
</div> <!-- Closes #table_header_inner -->
|
</div> <!-- Closes #table_header_inner -->
|
||||||
</div> <!-- Closes #table_header -->
|
</div> <!-- Closes #table_header -->
|
||||||
|
|
||||||
|
|
||||||
@ -604,14 +627,125 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resize event
|
// Resize event.
|
||||||
window.addEventListener("resize", function() {
|
window.addEventListener("resize", function() {
|
||||||
attatch_to_image();
|
attatch_to_image();
|
||||||
});
|
});
|
||||||
|
|
||||||
var fixed_header = <?php echo json_encode((bool) $config_fixed_header); ?>;
|
var fixed_header = <?php echo json_encode((bool) $config_fixed_header); ?>;
|
||||||
|
|
||||||
var new_chat = <?php echo (int) $_SESSION['new_chat']; ?>;
|
var new_chat = <?php echo (int) $_SESSION['new_chat']; ?>;
|
||||||
|
|
||||||
|
function showinterpreter(){
|
||||||
|
|
||||||
|
document.onclick = function(e) {
|
||||||
|
$('#result_order').hide();
|
||||||
|
$('#keywords').addClass('search_input');
|
||||||
|
$('#keywords').removeClass('results-found');
|
||||||
|
$('#keywords').value = '';
|
||||||
|
$('#keywords').attr('placeholder','Enter keywords to search');
|
||||||
|
}
|
||||||
|
|
||||||
|
if(event.keyCode == 13 && $("#result_items li.active").length != 0 )
|
||||||
|
{
|
||||||
|
window.location = $('#result_items').find("li.active a").attr('href');
|
||||||
|
}
|
||||||
|
var code = event.key;
|
||||||
|
switch (code){
|
||||||
|
case 'ArrowDown':
|
||||||
|
if($("#result_items li.active").length!=0)
|
||||||
|
{
|
||||||
|
var storeTarget = $('#result_items').find("li.active").next();
|
||||||
|
$("#result_items li.active").removeClass("active");
|
||||||
|
storeTarget.focus().addClass("active");
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#result_items').find("li:first").focus().addClass("active");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
|
case 'ArrowUp':
|
||||||
|
if($("#result_items li.active"))
|
||||||
|
{
|
||||||
|
var storeTarget = $('#result_items').find("li.active").prev();
|
||||||
|
$("#result_items li.active").removeClass("active");
|
||||||
|
storeTarget.focus().addClass("active");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#result_items').find("li:first").focus().addClass("active");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
|
case 'ArrowRight':
|
||||||
|
return;
|
||||||
|
case 'ArrowLeft':
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if( $('#keywords').val() === ''){
|
||||||
|
$('#keywords').addClass('search_input');
|
||||||
|
$('#keywords').removeClass('results-found');
|
||||||
|
$('#result_order').hide();
|
||||||
|
$('#keywords').attr('placeholder','Enter keywords to search');
|
||||||
|
}else {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "ajax.php",
|
||||||
|
dataType: "html",
|
||||||
|
data: {
|
||||||
|
page: 'include/ajax/order_interpreter',
|
||||||
|
method: 'getResult',
|
||||||
|
text: $('#keywords').val(),
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
$('#result_order').html(data);
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
console.error("Fatal error in AJAX call to interpreter order", data)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#keywords').removeClass('search_input');
|
||||||
|
$('#keywords').addClass('results-found');
|
||||||
|
$('#result_order').show();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Loads modal from AJAX to add feedback.
|
||||||
|
*/
|
||||||
|
function show_feedback() {
|
||||||
|
var btn_ok_text = '<?php echo __('Send'); ?>';
|
||||||
|
var btn_cancel_text = '<?php echo __('Cancel'); ?>';
|
||||||
|
var title = '<?php echo __('Report an issue'); ?>';
|
||||||
|
var url = '<?php echo 'tools/diagnostics'; ?>';
|
||||||
|
|
||||||
|
load_modal({
|
||||||
|
target: $('#modal-feedback-form'),
|
||||||
|
form: 'modal_form_feedback',
|
||||||
|
url: '<?php echo ui_get_full_url('ajax.php', false, false, false); ?>',
|
||||||
|
modal: {
|
||||||
|
title: title,
|
||||||
|
ok: btn_ok_text,
|
||||||
|
cancel: btn_cancel_text,
|
||||||
|
},
|
||||||
|
onshow: {
|
||||||
|
page: url,
|
||||||
|
method: 'formFeedback',
|
||||||
|
},
|
||||||
|
onsubmit: {
|
||||||
|
page: url,
|
||||||
|
method: 'createdScheduleFeedbackTask',
|
||||||
|
dataType: 'json',
|
||||||
|
},
|
||||||
|
ajax_callback: generalShowMsg,
|
||||||
|
idMsgCallback: 'msg-header',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready (function () {
|
$(document).ready (function () {
|
||||||
|
|
||||||
// Check new notifications on a periodic way
|
// Check new notifications on a periodic way
|
||||||
@ -661,7 +795,17 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
$("#ui_close_dialog_titlebar").click(function () {
|
$("#ui_close_dialog_titlebar").click(function () {
|
||||||
$("#agent_access").css("display","");
|
$("#agent_access").css("display","");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
<?php if (enterprise_installed()) { ?>
|
||||||
|
// Feedback.
|
||||||
|
$("#feedback-header").click(function () {
|
||||||
|
// Clean DOM.
|
||||||
|
$("#feedback-header").empty();
|
||||||
|
// Function charge Modal.
|
||||||
|
show_feedback();
|
||||||
|
});
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
function blinkpubli(){
|
function blinkpubli(){
|
||||||
$(".publienterprise").delay(100).fadeTo(300,0.2).delay(100).fadeTo(300,1, blinkpubli);
|
$(".publienterprise").delay(100).fadeTo(300,0.2).delay(100).fadeTo(300,1, blinkpubli);
|
||||||
}
|
}
|
||||||
|
77
pandora_console/general/help_feedback.php
Normal file
77
pandora_console/general/help_feedback.php
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Credential store
|
||||||
|
*
|
||||||
|
* @category HelperFeedBack
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Help Feedback
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* 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 for version 2.
|
||||||
|
* 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.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class HelpFeedBack.
|
||||||
|
*/
|
||||||
|
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
require_once $config['homedir'].'/include/class/HelpFeedBack.class.php';
|
||||||
|
|
||||||
|
$ajaxPage = 'general/help_feedback';
|
||||||
|
|
||||||
|
// Control call flow.
|
||||||
|
try {
|
||||||
|
// User access and validation is being processed on class constructor.
|
||||||
|
$helpfeedback = new HelpFeedBack($ajaxPage);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
if (is_ajax()) {
|
||||||
|
echo json_encode(['error' => '[HelpFeedBack]'.$e->getMessage() ]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
echo '[HelpFeedBack]'.$e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stop this execution, but continue 'globally'.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ajax controller.
|
||||||
|
if (is_ajax()) {
|
||||||
|
$method = get_parameter('method', '');
|
||||||
|
|
||||||
|
if (method_exists($helpfeedback, $method) === true) {
|
||||||
|
if ($helpfeedback->ajaxMethod($method) === true) {
|
||||||
|
$helpfeedback->{$method}();
|
||||||
|
} else {
|
||||||
|
$helpfeedback->error('Unavailable method.');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$helpfeedback->error('Method not found. ['.$method.']');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Stop any execution.
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
// Run.
|
||||||
|
$helpfeedback->run();
|
||||||
|
}
|
@ -87,7 +87,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
|
|||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
|
||||||
echo '<td style="border:1px solid #FFF; text-align:center;">';
|
echo '<td style="border:1px solid #FFF; text-align:center;">';
|
||||||
echo '<a href="'.$config['custom_docs_url'].'" target="_blank" style="text-decoration:none;">'.html_print_image(
|
echo '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank" style="text-decoration:none;">'.html_print_image(
|
||||||
'images/documentation.png',
|
'images/documentation.png',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
@ -96,7 +96,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
|
|||||||
]
|
]
|
||||||
).'</a>';
|
).'</a>';
|
||||||
echo '<br style="margin-bottom: 40px;" />';
|
echo '<br style="margin-bottom: 40px;" />';
|
||||||
echo '<a style="font-size: 9pt;" href="'.$config['custom_docs_url'].'" target="_blank">'.__('Documentation').'</span></a>';
|
echo '<a style="font-size: 9pt;"href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">'.__('Documentation').'</span></a>';
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
|
@ -82,33 +82,71 @@ if (!empty($page) && !empty($sec)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$login_body_style = '';
|
$login_body_style = '';
|
||||||
|
$login_body_class = '';
|
||||||
// Overrides the default background with the defined by the user.
|
// Overrides the default background with the defined by the user.
|
||||||
if (!empty($config['login_background'])) {
|
if (!empty($config['login_background'])) {
|
||||||
$background_url = 'images/backgrounds/'.$config['login_background'];
|
$background_url = 'images/backgrounds/'.$config['login_background'];
|
||||||
$login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\"";
|
$login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Support for Internet Explorer and Microsoft Edge browsers
|
||||||
|
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Edge') !== false) {
|
||||||
|
$login_body_class = "class='login_body_trident'";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get alternative custom in case of db fail.
|
||||||
|
$custom_fields = [
|
||||||
|
'custom_logo_login',
|
||||||
|
'custom_splash_login',
|
||||||
|
'custom_title1_login',
|
||||||
|
'custom_title2_login',
|
||||||
|
'rb_product_name',
|
||||||
|
'custom_docs_url',
|
||||||
|
'custom_support_url',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($custom_fields as $field) {
|
||||||
|
if (!isset($config[$field])) {
|
||||||
|
if (isset($config[$field.'_alt'])) {
|
||||||
|
$config[$field] = $config[$field.'_alt'];
|
||||||
|
$custom_conf_enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get the custom icons.
|
// Get the custom icons.
|
||||||
$docs_logo = ui_get_docs_logo();
|
$docs_logo = ui_get_docs_logo();
|
||||||
$support_logo = ui_get_support_logo();
|
$support_logo = ui_get_support_logo();
|
||||||
echo '<div id="login_body" '.$login_body_style.'>';
|
echo '<div id="login_body" '.$login_body_class.' '.$login_body_style.'>';
|
||||||
echo '<div id="header_login">';
|
echo '<div id="header_login">';
|
||||||
|
|
||||||
echo '<div id="list_icon_docs_support"><ul>';
|
echo '<div id="list_icon_docs_support"><ul>';
|
||||||
if ($docs_logo !== false) {
|
|
||||||
echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank"><img src="'.$docs_logo.'" alt="docs"></a></li>';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank">'.__('Docs').'</li>';
|
if (isset($config['custom_docs_url'])) {
|
||||||
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
if ($docs_logo !== false) {
|
||||||
if ($support_logo !== false) {
|
echo '<li><a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank"><img src="'.$docs_logo.'" alt="docs"></a></li>';
|
||||||
echo '<li id="li_margin_left"><a href="'.$config['custom_support_url'].'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<li><a href="'.$config['custom_support_url'].'" target="_blank">'.__('Support').'</li>';
|
echo '<li><a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">'.__('Docs').'</li>';
|
||||||
} else {
|
} else if (!$custom_conf_enabled) {
|
||||||
echo '<li id="li_margin_left"><a href="https://pandorafms.com/monitoring-services/support/" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
echo '<li><a href="http://wiki.pandorafms.com/" target="_blank"><img src="'.$docs_logo.'" alt="docs"></a></li>';
|
||||||
echo '<li>'.__('Support').'</li>';
|
echo '<li><a href="http://wiki.pandorafms.com/" target="_blank">'.__('Docs').'</li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['custom_support_url'])) {
|
||||||
|
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
||||||
|
if ($support_logo !== false) {
|
||||||
|
echo '<li id="li_margin_left"><a href="'.ui_get_full_external_url($config['custom_support_url']).'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<li><a href="'.ui_get_full_external_url($config['custom_support_url']).'" target="_blank">'.__('Support').'</li>';
|
||||||
|
} else {
|
||||||
|
echo '<li id="li_margin_left"><a href="https://pandorafms.com/monitoring-services/support/" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
||||||
|
echo '<li>'.__('Support').'</li>';
|
||||||
|
}
|
||||||
|
} else if (!$custom_conf_enabled) {
|
||||||
|
echo '<li id="li_margin_left"><a href="https://support.artica.es" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
||||||
|
echo '<li><a href="https://support.artica.es" target="_blank">'.__('Docs').'</li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</ul></div>';
|
echo '</ul></div>';
|
||||||
@ -133,7 +171,7 @@ if (defined('METACONSOLE')) {
|
|||||||
html_print_image('enterprise/images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
html_print_image('enterprise/images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!isset($config['custom_logo_login']) || $config['custom_logo_login'] == 0) {
|
if (!isset($config['custom_logo_login']) || $config['custom_logo_login'] === 0) {
|
||||||
html_print_image('images/custom_logo_login/pandora_logo.png', false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
html_print_image('images/custom_logo_login/pandora_logo.png', false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
||||||
} else {
|
} else {
|
||||||
html_print_image('images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
html_print_image('images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
||||||
@ -389,9 +427,12 @@ if (isset($login_failed)) {
|
|||||||
echo '<h1>'.__('ERROR').'</h1>';
|
echo '<h1>'.__('ERROR').'</h1>';
|
||||||
echo '<p>'.$config['auth_error'].'</p>';
|
echo '<p>'.$config['auth_error'].'</p>';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
echo '<div class="text_message_alert">';
|
if ($config['enable_pass_policy']) {
|
||||||
echo '<p><strong>Remaining attempts: '.$attemps.'</strong></p>';
|
echo '<div class="text_message_alert">';
|
||||||
echo '</div>';
|
echo '<p><strong>Remaining attempts: '.$attemps.'</strong></p>';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
echo '<div class="button_message_alert">';
|
echo '<div class="button_message_alert">';
|
||||||
html_print_submit_button('Ok', 'hide-login-error', false);
|
html_print_submit_button('Ok', 'hide-login-error', false);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
@ -420,9 +461,14 @@ if ($login_screen == 'logout') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch ($login_screen) {
|
switch ($login_screen) {
|
||||||
case 'error_authconfig':
|
|
||||||
case 'error_dbconfig':
|
case 'error_dbconfig':
|
||||||
$title = __('Problem with %s database', get_product_name());
|
case 'error_authconfig':
|
||||||
|
if (!isset($config['rb_product_name_alt'])) {
|
||||||
|
$title = __('Problem with %s database', get_product_name());
|
||||||
|
} else {
|
||||||
|
$title = __('Problem with %s database', $config['rb_product_name_alt']);
|
||||||
|
}
|
||||||
|
|
||||||
$message = __(
|
$message = __(
|
||||||
'Cannot connect to the database, please check your database setup in the <b>include/config.php</b> file.<i><br/><br/>
|
'Cannot connect to the database, please check your database setup in the <b>include/config.php</b> file.<i><br/><br/>
|
||||||
Probably your database, hostname, user or password values are incorrect or
|
Probably your database, hostname, user or password values are incorrect or
|
||||||
|
@ -172,6 +172,7 @@ unset($table);
|
|||||||
echo '<div id="right">';
|
echo '<div id="right">';
|
||||||
|
|
||||||
// News.
|
// News.
|
||||||
|
require_once 'general/news_dialog.php';
|
||||||
$options = [];
|
$options = [];
|
||||||
$options['id_user'] = $config['id_user'];
|
$options['id_user'] = $config['id_user'];
|
||||||
$options['modal'] = false;
|
$options['modal'] = false;
|
||||||
@ -188,6 +189,7 @@ if (!empty($news)) {
|
|||||||
$comparation_suffix = __('ago');
|
$comparation_suffix = __('ago');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$output_news = '<div id="news_board" class="new">';
|
$output_news = '<div id="news_board" class="new">';
|
||||||
foreach ($news as $article) {
|
foreach ($news as $article) {
|
||||||
$image = false;
|
$image = false;
|
||||||
|
@ -77,6 +77,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#opacity{
|
#opacity{
|
||||||
|
background:black;opacity:0.1;left:0px;top:0px;width:100%;height:100%;
|
||||||
background:black;
|
background:black;
|
||||||
opacity:0.1;
|
opacity:0.1;
|
||||||
left:0px;
|
left:0px;
|
||||||
@ -99,12 +100,11 @@ img.modalclose {
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div id="alert_messages_na">
|
<div id="alert_messages_na">
|
||||||
|
|
||||||
<div class='modalheade'>
|
<div class='modalheade'>
|
||||||
<span class='modalheadertex'>
|
<span class='modalheadertex'>
|
||||||
<?php echo __('Database error'); ?>
|
<?php echo __('Database error'); ?>
|
||||||
</span>
|
</span>
|
||||||
<img class='modalclose' src='<?php echo $config['homeurl']; ?>images/icono_cerrar.png'>
|
<img class='modalclose' src='<?php echo $config['homeurl']; ?>images/icono_cerrar.png'>
|
||||||
</div>
|
</div>
|
||||||
@ -113,14 +113,44 @@ img.modalclose {
|
|||||||
<img class='modalcontentim' src='<?php echo $config['homeurl']; ?>/images/mysqlerr.png'>
|
<img class='modalcontentim' src='<?php echo $config['homeurl']; ?>/images/mysqlerr.png'>
|
||||||
<div class='modalcontenttex'>
|
<div class='modalcontenttex'>
|
||||||
<?php
|
<?php
|
||||||
echo __('Failure to connect to Database server, please check the configuration file config.php or contact system administrator if you need assistance.');
|
if ($config['history_db_connection'] === false) {
|
||||||
|
echo __('Failure to connect to historical database, please check the configuration or contact system administrator if you need assistance.');
|
||||||
|
} else {
|
||||||
|
echo __('Failure to connect to Database server, please check the configuration file config.php or contact system administrator if you need assistance.');
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a href='https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Configuration' target='_blank'>
|
<?php
|
||||||
<div class='modalwikibutto'>
|
$custom_conf_enabled = false;
|
||||||
<span class='modalwikibuttontex'> <?php echo __('Documentation'); ?></span>
|
foreach ($config as $key => $value) {
|
||||||
</div>
|
if (preg_match('/._alt/i', $key)) {
|
||||||
|
$custom_conf_enabled = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$custom_conf_enabled || isset($config['custom_docs_url_alt'])) {
|
||||||
|
if (isset($config['custom_docs_url_alt'])) {
|
||||||
|
$docs_url = $config['custom_docs_url_alt'];
|
||||||
|
} else {
|
||||||
|
$docs_url = 'https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Configuration';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<a href="'.ui_get_full_external_url($docs_url).'" target="_blank">
|
||||||
|
<div class="modalwikibutto">
|
||||||
|
<span class="modalwikibuttontex">'.__('Documentation').'
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
';
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ if (!empty($news)) {
|
|||||||
// Prints news dialog template
|
// Prints news dialog template
|
||||||
echo '<div id="news_dialog" title="" style="display: none;">';
|
echo '<div id="news_dialog" title="" style="display: none;">';
|
||||||
|
|
||||||
echo '<div style="position:absolute; top:30px; left: 10px; text-align: left; right:0%; height:70px; min-width:560px; width: 95%; margin: 0 auto; border: 1px solid #FFF; line-height: 19px;">';
|
echo '<div style="position:absolute; top:30px; left: 10px; text-align: left; right:0%; height:70px; min-width:560px; width: 95%; margin: 0 auto; line-height: 19px;">';
|
||||||
echo '<span style="display: block; height: 260px; overflow: auto; text-align: justify; padding: 5px 15px 4px 10px; background: #ECECEC; border-radius: 4px;" id="new_text"></span>';
|
echo '<span style="display: block; height: 260px; overflow: auto; text-align: justify; padding: 5px 15px 4px 10px; background: #ECECEC; border-radius: 4px;" id="new_text"></span>';
|
||||||
echo '<span style="font-size: 12px; display: block; margin-top: 20px;" id="new_author"></span>';
|
echo '<span style="font-size: 12px; display: block; margin-top: 20px;" id="new_author"></span>';
|
||||||
echo '<span style="font-size: 12px; display: block; font-style: italic;" id="new_timestamp"></span>';
|
echo '<span style="font-size: 12px; display: block; font-style: italic;" id="new_timestamp"></span>';
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_update_manager.php';
|
require_once $config['homedir'].'/include/functions_update_manager.php';
|
||||||
|
require_once $config['homedir'].'/include/class/WelcomeWindow.class.php';
|
||||||
|
|
||||||
|
|
||||||
if (is_ajax()) {
|
if (is_ajax()) {
|
||||||
@ -122,6 +123,8 @@ if (is_ajax()) {
|
|||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ui_require_css_file('register');
|
ui_require_css_file('register');
|
||||||
|
|
||||||
$initial = isset($config['initial_wizard']) !== true
|
$initial = isset($config['initial_wizard']) !== true
|
||||||
@ -170,6 +173,16 @@ if (!$config['disabled_newsletter']) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$welcome = !$registration && !$show_newsletter && !$initial;
|
||||||
|
try {
|
||||||
|
$welcome_window = new WelcomeWindow($welcome);
|
||||||
|
if ($welcome_window !== null) {
|
||||||
|
$welcome_window->run();
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$welcome = false;
|
||||||
|
}
|
||||||
|
|
||||||
$newsletter = null;
|
$newsletter = null;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
77
pandora_console/general/sap_view.php
Normal file
77
pandora_console/general/sap_view.php
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Credential store
|
||||||
|
*
|
||||||
|
* @category HelperFeedBack
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Help Feedback
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* 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 for version 2.
|
||||||
|
* 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.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class sap_views.
|
||||||
|
*/
|
||||||
|
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
enterprise_include_once('/include/class/SAPView.class.php');
|
||||||
|
|
||||||
|
$ajaxPage = 'general/sap_view';
|
||||||
|
|
||||||
|
// Control call flow.
|
||||||
|
try {
|
||||||
|
// User access and validation is being processed on class constructor.
|
||||||
|
$sap_views = new SAPView($ajaxPage);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
if (is_ajax()) {
|
||||||
|
echo json_encode(['error' => '[sap_views]'.$e->getMessage() ]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
echo '[sap_views]'.$e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stop this execution, but continue 'globally'.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ajax controller.
|
||||||
|
if (is_ajax()) {
|
||||||
|
$method = get_parameter('method', '');
|
||||||
|
|
||||||
|
if (method_exists($sap_views, $method) === true) {
|
||||||
|
if ($sap_views->ajaxMethod($method) === true) {
|
||||||
|
$sap_views->{$method}();
|
||||||
|
} else {
|
||||||
|
$sap_views->error('Unavailable method.');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$sap_views->error('Method not found. ['.$method.']');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Stop any execution.
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
// Run.
|
||||||
|
$sap_views->run();
|
||||||
|
}
|
@ -13,7 +13,8 @@ switch ($_GET['module']) {
|
|||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT id_tipo, descripcion
|
'SELECT id_tipo, descripcion
|
||||||
FROM ttipo_modulo
|
FROM ttipo_modulo
|
||||||
WHERE categoria between 3 and 5 '
|
WHERE categoria between 3 and 5
|
||||||
|
OR categoria = 10 '
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ if (!$new_agent && $alias != '') {
|
|||||||
$table_agent_name = '<div class="label_select"><p class="input_label">'.__('Agent name').': '.ui_print_help_tip(__("The agent's name must be the same as the one defined at the console"), true).'</p>';
|
$table_agent_name = '<div class="label_select"><p class="input_label">'.__('Agent name').': '.ui_print_help_tip(__("The agent's name must be the same as the one defined at the console"), true).'</p>';
|
||||||
$table_agent_name .= '<div class="label_select_parent">';
|
$table_agent_name .= '<div class="label_select_parent">';
|
||||||
$table_agent_name .= '<div class="label_select_child_left" style="width: 60%;">'.html_print_input_text('agente', $nombre_agente, '', 50, 100, true).'</div>';
|
$table_agent_name .= '<div class="label_select_child_left" style="width: 60%;">'.html_print_input_text('agente', $nombre_agente, '', 50, 100, true).'</div>';
|
||||||
$table_agent_name .= '<div class="label_select_child_right agent_options_agent_name" style="width: 40%;">';
|
$table_agent_name .= '<div class="label_select_child_right agent_options_agent_name" style="width: 70%;">';
|
||||||
|
|
||||||
if ($id_agente) {
|
if ($id_agente) {
|
||||||
$table_agent_name .= '<label>'.__('ID').'</label><input style="width: 50%;" type="text" readonly value="'.$id_agente.'" />';
|
$table_agent_name .= '<label>'.__('ID').'</label><input style="width: 50%;" type="text" readonly value="'.$id_agente.'" />';
|
||||||
@ -275,7 +275,7 @@ if ($new_agent) {
|
|||||||
|
|
||||||
$table_alias = '<div class="label_select"><p class="input_label">'.__('Alias').': '.ui_print_help_tip(__('Characters /,\,|,%,#,&,$ will be ignored'), true).'</p>';
|
$table_alias = '<div class="label_select"><p class="input_label">'.__('Alias').': '.ui_print_help_tip(__('Characters /,\,|,%,#,&,$ will be ignored'), true).'</p>';
|
||||||
$table_alias .= '<div class='.$label_select_parent.'>';
|
$table_alias .= '<div class='.$label_select_parent.'>';
|
||||||
$table_alias .= '<div class='.$label_select_child_left.'>'.html_print_input_text('alias', $alias, '', 50, 100, true).'</div>';
|
$table_alias .= '<div class='.$label_select_child_left.'>'.html_print_input_text('alias', $alias, '', 50, 100, true, false, true).'</div>';
|
||||||
if ($new_agent) {
|
if ($new_agent) {
|
||||||
$table_alias .= '<div class="label_select_child_right">'.html_print_checkbox_switch('alias_as_name', 1, $config['alias_as_name'], true).__('Use alias as name').'</div>';
|
$table_alias .= '<div class="label_select_child_right">'.html_print_checkbox_switch('alias_as_name', 1, $config['alias_as_name'], true).__('Use alias as name').'</div>';
|
||||||
}
|
}
|
||||||
@ -612,17 +612,19 @@ if (enterprise_installed()) {
|
|||||||
$cascade_protection,
|
$cascade_protection,
|
||||||
true
|
true
|
||||||
).__('Cascade protection').' ';
|
).__('Cascade protection').' ';
|
||||||
|
|
||||||
|
$table_adv_parent .= __('Module').' '.html_print_select(
|
||||||
|
$modules_values,
|
||||||
|
'cascade_protection_module',
|
||||||
|
$cascade_protection_module,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
0,
|
||||||
|
true
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$table_adv_parent .= __('Module').' '.html_print_select(
|
$table_adv_parent .= '</div></div>';
|
||||||
$modules_values,
|
|
||||||
'cascade_protection_module',
|
|
||||||
$cascade_protection_module,
|
|
||||||
'',
|
|
||||||
'',
|
|
||||||
0,
|
|
||||||
true
|
|
||||||
).'</div></div>';
|
|
||||||
|
|
||||||
// Learn mode / Normal mode.
|
// Learn mode / Normal mode.
|
||||||
$table_adv_module_mode = '<div class="label_select"><p class="input_label">'.__('Module definition').': </p>';
|
$table_adv_module_mode = '<div class="label_select"><p class="input_label">'.__('Module definition').': </p>';
|
||||||
@ -667,7 +669,7 @@ $table_adv_status .= html_print_checkbox_switch(
|
|||||||
$disabled,
|
$disabled,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
$table_adv_status .= '<p class="input_label input_label_simple">'.__('Disabled').': '.ui_print_help_tip(__('If the remote configuration is enabled, it will also go into standby mode when disabling it.'), true).'</p>';
|
$table_adv_status .= '<p class="input_label input_label_simple">'.__('Disabled mode').': '.ui_print_help_tip(__('If the remote configuration is enabled, it will also go into standby mode when disabling it.'), true).'</p>';
|
||||||
$table_adv_status .= '</div>';
|
$table_adv_status .= '</div>';
|
||||||
|
|
||||||
// Url address.
|
// Url address.
|
||||||
@ -765,7 +767,7 @@ $table_adv_agent_icon .= html_print_select(
|
|||||||
).'</div>';
|
).'</div>';
|
||||||
|
|
||||||
if ($config['activate_gis']) {
|
if ($config['activate_gis']) {
|
||||||
$table_adv_gis = '<div class="label_select_simple label_simple_one_item"><p class="input_label input_label_simple">'.__('Ignore new GIS data:').'</p>';
|
$table_adv_gis = '<div class="label_select_simple label_simple_one_item"><p class="input_label input_label_simple">'.__('Update new GIS data:').'</p>';
|
||||||
if ($new_agent) {
|
if ($new_agent) {
|
||||||
$update_gis_data = true;
|
$update_gis_data = true;
|
||||||
}
|
}
|
||||||
@ -774,11 +776,14 @@ if ($config['activate_gis']) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (enterprise_installed()) {
|
||||||
|
$advanced_div = '<div class="secondary_groups_list">';
|
||||||
|
} else {
|
||||||
|
$advanced_div = '<div class="secondary_groups_list" style="display: none">';
|
||||||
|
}
|
||||||
|
|
||||||
// General display distribution.
|
// General display distribution.
|
||||||
$table_adv_options = '
|
$table_adv_options = $advanced_div.$adv_secondary_groups_label.'
|
||||||
<div class="secondary_groups_list">
|
|
||||||
'.$adv_secondary_groups_label.'
|
|
||||||
<div class="sg_source">
|
<div class="sg_source">
|
||||||
'.$adv_secondary_groups_left.'
|
'.$adv_secondary_groups_left.'
|
||||||
</div>
|
</div>
|
||||||
@ -804,20 +809,20 @@ $table_adv_options .= '
|
|||||||
'.$table_adv_gis.$table_adv_agent_icon.$table_adv_url.$table_adv_quiet.$table_adv_status.$table_adv_remote.$table_adv_safe.'
|
'.$table_adv_gis.$table_adv_agent_icon.$table_adv_url.$table_adv_quiet.$table_adv_status.$table_adv_remote.$table_adv_safe.'
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
|
if (enterprise_installed()) {
|
||||||
echo '<div class="ui_toggle">';
|
echo '<div class="ui_toggle">';
|
||||||
ui_toggle(
|
ui_toggle(
|
||||||
$table_adv_options,
|
$table_adv_options,
|
||||||
__('Advanced options'),
|
__('Advanced options'),
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
'white_box white_box_opened',
|
'white_box white_box_opened',
|
||||||
'no-border flex'
|
'no-border flex'
|
||||||
);
|
);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
$table = new stdClass();
|
$table = new stdClass();
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
@ -825,7 +830,7 @@ $table->class = 'custom_fields_table';
|
|||||||
|
|
||||||
$table->head = [
|
$table->head = [
|
||||||
0 => __('Click to display').ui_print_help_tip(
|
0 => __('Click to display').ui_print_help_tip(
|
||||||
__('This field allows url insertion using the BBCode\'s url tag').'.<br />'.__('The format is: [url=\'url to navigate\']\'text to show\'[/url]').'.<br /><br />'.__('e.g.: [url=google.com]Google web search[/url]'),
|
__('This field allows url insertion using the BBCode\'s url tag').'.<br />'.__('The format is: [url=\'url to navigate\']\'text to show\'[/url] or [url]\'url to navigate\'[/url] ').'.<br /><br />'.__('e.g.: [url=google.com]Google web search[/url] or [url]www.goole.com[/url]'),
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
@ -931,18 +936,48 @@ foreach ($fields as $field) {
|
|||||||
$i += 2;
|
$i += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($fields)) {
|
if (enterprise_installed()) {
|
||||||
|
if (!empty($fields)) {
|
||||||
|
echo '<div class="ui_toggle">';
|
||||||
|
ui_toggle(
|
||||||
|
html_print_table($table, true),
|
||||||
|
__('Custom fields'),
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
'white_box white_box_opened',
|
||||||
|
'no-border'
|
||||||
|
);
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
echo '<div class="ui_toggle">';
|
echo '<div class="ui_toggle">';
|
||||||
ui_toggle(
|
ui_toggle(
|
||||||
html_print_table($table, true),
|
$table_adv_options,
|
||||||
__('Custom fields'),
|
__('Advanced options'),
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
'white_box white_box_opened',
|
'white_box white_box_opened',
|
||||||
'no-border'
|
'no-border flex'
|
||||||
);
|
);
|
||||||
|
if (!empty($fields)) {
|
||||||
|
ui_toggle(
|
||||||
|
html_print_table($table, true),
|
||||||
|
__('Custom fields'),
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
'white_box white_box_opened',
|
||||||
|
'no-border'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<div class="action-buttons" style="display: flex; justify-content: flex-end; align-items: center; width: '.$table->width.'">';
|
||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,3 +45,22 @@ switch ($wizard_section) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require 'agent_wizard.'.$wizard_section.'.php';
|
require 'agent_wizard.'.$wizard_section.'.php';
|
||||||
|
|
||||||
|
?>
|
||||||
|
<script language="javascript" type="text/javascript">
|
||||||
|
|
||||||
|
function satellite_remote_warn(id_satellite, remote)
|
||||||
|
{
|
||||||
|
if(!remote)
|
||||||
|
{
|
||||||
|
$('#server_to_exec option[value='+id_satellite+']').prop('disabled', true);
|
||||||
|
$('#satellite_remote_tip').removeAttr("style").show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#satellite_remote_tip').removeAttr("style").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user