Merge remote-tracking branch 'origin/develop' into ent-7049-permitir-seleccionar-a-nivel-de-usuario-si-autenticara-local-o-remotamente-ldap-ad
This commit is contained in:
commit
5ba7b47b85
|
@ -3,4 +3,5 @@ variables:
|
|||
|
||||
test:
|
||||
script:
|
||||
- docker run --rm -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base /tmp/pandorafms/tests/test.sh
|
||||
- docker pull pandorafms/pandorafms-base:centos6
|
||||
- docker run --rm -h pandorafms -t -v "$CI_PROJECT_DIR:/tmp/pandorafms" pandorafms/pandorafms-base:centos6 /tmp/pandorafms/tests/test.sh
|
||||
|
|
10
README.md
10
README.md
|
@ -1,12 +1,16 @@
|
|||
[](https://travis-ci.org/pandorafms/pandorafms)
|
||||
|
||||
[](http://pandorafms.org)
|
||||

|
||||
|
||||
Pandora FMS is a monitoring software for IT infrastructure management which includes network equipment, Windows and Unix servers, virtual infrastructure and all different kind of applications. It has a large amount of features, making it a new generation software which discovers all the monitoring issues that an organization may need.
|
||||
With more than 50,000 customer installations across the five continents, Pandora FMS is an out-of-the-box monitoring solution: profitable and scalable, covering most infrastructure deployment options.
|
||||
|
||||
Pandora FMS gives you the agility to find and solve problems quickly, scaling them so they can be derived from any source, on-premise, multi cloud or both of them mixed. Now you have that capability across your entire IT stack and analytics to find any problem, even the ones that are hard to find.
|
||||
|
||||
Thanks to more than 500 plugins available, you can control and manage any application and technology, from SAP, Oracle, Lotus, Citrix or Jboss to VMware, AWS, SQL Server, Redhat, Websphere, etc.
|
||||
|
||||
### Support
|
||||
|
||||
For community support you can visit our forums at http://forums.pandorafms.org. Visit our community page at http://pandorafms.org and if you need commercial information or/and professional support visit http://pandorafms.com.
|
||||
For community support you can visit our forums at https://pandorafms.com/community/ and if you need commercial information or/and professional support visit https://pandorafms.com
|
||||
|
||||
### How to install Pandora FMS
|
||||
|
||||
|
|
|
@ -82,10 +82,10 @@ execute_cmd "[ $PANDORA_SERVER_IP ]" 'Check Server IP Address' 'Please define e
|
|||
# Check OS.
|
||||
OS=$([[ $(grep '^ID_LIKE=' /etc/os-release) ]] && grep ^ID_LIKE= /etc/os-release | cut -d '=' -f2 | tr -d '"' || grep ^ID= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
|
||||
[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
|
||||
[[ $OS == 'fedora' ]] && OS_RELEASE=$OS
|
||||
[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
|
||||
[[ $OS == 'debian' ]] && OS_RELEASE=$OS
|
||||
[[ $OS =~ 'rhel' ]] && OS_RELEASE=$OS
|
||||
[[ $OS =~ 'debian' ]] && OS_RELEASE=$OS
|
||||
#[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
|
||||
#[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
|
||||
|
||||
# initialice logfile
|
||||
execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE"
|
||||
|
@ -113,7 +113,7 @@ execute_cmd "cd $HOME/pandora_deploy_tmp" "Moving to workspace: $HOME/pandora_d
|
|||
|
||||
# Downloading and installing packages
|
||||
|
||||
if [[ $OS_RELEASE == 'rhel fedora' ]] || [[ $OS_RELEASE == 'centos rhel fedora' ]]; then
|
||||
if [[ $OS_RELEASE =~ 'rhel' ]]; then
|
||||
yum install -y perl wget curl perl-Sys-Syslog unzip &>> $LOGFILE
|
||||
echo -e "${cyan}Instaling agent dependencies...${reset}" ${green}OK${reset}
|
||||
|
||||
|
|
|
@ -1,20 +1,33 @@
|
|||
#!/bin/bash
|
||||
#######################################################
|
||||
# PandoraFMS Community online installation script
|
||||
#######################################################
|
||||
## Tested versions ##
|
||||
# Centos 7.9
|
||||
|
||||
# define variables
|
||||
#Constants
|
||||
PANDORA_CONSOLE=/var/www/html/pandora_console
|
||||
CONSOLE_PATH=/var/www/html/pandora_console
|
||||
PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
||||
PANDORA_SERVER_BIN=/usr/bin/pandora_server
|
||||
PANDORA_HA_BIN=/usr/bin/pandora_ha
|
||||
PANDORA_TABLES_MIN=160
|
||||
DBHOST=127.0.0.1
|
||||
DBNAME=pandora
|
||||
DBUSER=pandora
|
||||
DBPASS=pandora
|
||||
DBPORT=3306
|
||||
S_VERSION='2021012801'
|
||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2022020801'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
[ "$TZ" ] || TZ="Europe/Madrid"
|
||||
[ "$DBHOST" ] || DBHOST=127.0.0.1
|
||||
[ "$DBNAME" ] || DBNAME=pandora
|
||||
[ "$DBUSER" ] || DBUSER=pandora
|
||||
[ "$DBPASS" ] || DBPASS=pandora
|
||||
[ "$DBPORT" ] || DBPORT=3306
|
||||
[ "$DBROOTPASS" ] || DBROOTPASS=pandora
|
||||
[ "$SKIP_PRECHECK" ] || SKIP_PRECHECK=0
|
||||
[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0
|
||||
[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0
|
||||
[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
[ "$PANDORA_BETA" ] || PANDORA_BETA=0
|
||||
|
||||
# Ansi color code variables
|
||||
red="\e[0;91m"
|
||||
green="\e[0;92m"
|
||||
|
@ -60,7 +73,7 @@ check_pre_pandora () {
|
|||
|
||||
echo -en "${cyan}Checking environment ... ${reset}"
|
||||
rpm -qa | grep pandora &>> /dev/null && local fail=true
|
||||
[ -d "$CONSOLE_PATH" ] && local fail=true
|
||||
[ -d "$PANDORA_CONSOLE" ] && local fail=true
|
||||
[ -f /usr/bin/pandora_server ] && local fail=true
|
||||
echo "use $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true
|
||||
|
||||
|
@ -98,6 +111,10 @@ fi
|
|||
|
||||
execute_cmd "grep -i centos /etc/redhat-release" "Checking Centos" 'Error This is not a Centos Base system'
|
||||
|
||||
#Detect OS
|
||||
os_name=$(grep ^PRETTY_NAME= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
execute_cmd "echo $os_name" "OS detected: ${os_name}"
|
||||
|
||||
echo -en "${cyan}Check Centos Version...${reset}"
|
||||
[ $(sed -nr 's/VERSION_ID+=\s*"([0-9])"$/\1/p' /etc/os-release) -eq '7' ]
|
||||
check_cmd_status 'Error OS version, Centos 7 is expected'
|
||||
|
@ -111,7 +128,10 @@ echo "Community installer version: $S_VERSION" >> $LOGFILE
|
|||
check_root_permissions
|
||||
|
||||
# Pre installed pandora
|
||||
check_pre_pandora
|
||||
[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora
|
||||
|
||||
#advicing BETA PROGRAM
|
||||
[ "$PANDORA_BETA" -ne '0' ] && echo -e "${red}BETA version enable using nightly PandoraFMS packages${reset}"
|
||||
|
||||
# Connectivity
|
||||
check_repo_connection
|
||||
|
@ -125,6 +145,9 @@ execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]"
|
|||
# Check disk size at least 10 Gb free space
|
||||
execute_cmd "[ $(df -BM / | tail -1 | awk '{print $4}' | tr -d M) -gt 10000 ]" 'Checking Disk (required: 10 GB free min)'
|
||||
|
||||
# Setting timezone
|
||||
execute_cmd "timedatectl set-timezone $TZ" "Setting Timezone $TZ"
|
||||
|
||||
# Execute tools check
|
||||
execute_cmd "awk --version" 'Checking needed tools: awk'
|
||||
execute_cmd "grep --version" 'Checking needed tools: grep'
|
||||
|
@ -148,10 +171,10 @@ http://rpms.remirepo.net/enterprise/remi-release-7.rpm \
|
|||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "yum install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "yum-config-manager --enable remi-php73" "Configuring PHP"
|
||||
execute_cmd "yum-config-manager --enable remi-php74" "Configuring PHP"
|
||||
|
||||
# Install percona Database
|
||||
[ -f /etc/my.cnf ] && rm -rf /etc/my.cnf
|
||||
#[ -f /etc/my.cnf ] && rm -rf /etc/my.cnf
|
||||
execute_cmd "yum install -y Percona-Server-server-57" "Installing Percona Server"
|
||||
|
||||
# Console dependencies
|
||||
|
@ -256,6 +279,7 @@ server_dependencies=" \
|
|||
perl(XML::Twig) \
|
||||
expect \
|
||||
openssh-clients \
|
||||
java \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm"
|
||||
execute_cmd "yum install -y $server_dependencies" "Installing Pandora FMS Server dependencies"
|
||||
|
@ -275,32 +299,61 @@ execute_cmd "yum install -y $vmware_dependencies" "Installing SDK VMware perl de
|
|||
oracle_dependencies=" \
|
||||
https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm \
|
||||
https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm"
|
||||
execute_cmd "yum install -y $oracle_dependencies" "Installing Oracle Instant client"
|
||||
execute_cmd "yum install -y $oracle_dependencies || yum reinstall -y $oracle_dependencies" "Installing Oracle Instant client"
|
||||
|
||||
#ipam dependencies
|
||||
ipam_dependencies=" \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
perl(NetAddr::IP) \
|
||||
perl(Sys::Syslog) \
|
||||
perl(DBI) \
|
||||
perl(XML::Simple) \
|
||||
perl(Geo::IP) \
|
||||
perl(IO::Socket::INET6) \
|
||||
perl(XML::Twig)"
|
||||
execute_cmd "yum install -y $ipam_dependencies" "Installing IPAM Instant client"
|
||||
|
||||
# MSSQL dependencies el7
|
||||
execute_cmd "curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/mssql-release.repo" "Configuring Microsoft repositories"
|
||||
execute_cmd "yum remove unixODBC-utf16 unixODBC-utf16-devel" "Removing default unixODBC packages"
|
||||
execute_cmd "env ACCEPT_EULA=Y yum install -y msodbcsql17" "Installing ODBC Driver for Microsoft(R) SQL Server(R)"
|
||||
MS_ID=$(head -1 /etc/odbcinst.ini | tr -d '[]') &>> "$LOGFILE"
|
||||
#yum config-manager --set-disable packages-microsoft-com-prod
|
||||
|
||||
# Disabling SELINUX and firewalld
|
||||
setenforce 0
|
||||
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
|
||||
systemctl disable firewalld --now &>> $LOGFILE
|
||||
|
||||
# Adding standar cnf for initial setup.
|
||||
cat > /etc/my.cnf << EO_CONFIG_TMP
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
symbolic-links=0
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
EO_CONFIG_TMP
|
||||
|
||||
#Configuring Database
|
||||
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
||||
execute_cmd "systemctl start mysqld" "Starting database engine"
|
||||
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
|
||||
echo """
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!');
|
||||
UNINSTALL PLUGIN validate_password;
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pandora');
|
||||
""" | mysql --connect-expired-password -uroot
|
||||
|
||||
export MYSQL_PWD=$DBPASS
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS');
|
||||
""" | mysql --connect-expired-password -uroot &>> "$LOGFILE"
|
||||
fi
|
||||
export MYSQL_PWD=$DBROOTPASS
|
||||
echo -en "${cyan}Creating Pandora FMS database...${reset}"
|
||||
echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
check_cmd_status 'Error creating database pandora, is this an empty node? if you have a previus installation please contact with support.'
|
||||
check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support."
|
||||
|
||||
echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%' identified by \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
export MYSQL_PWD=$DBPASS
|
||||
|
||||
#Generating my.cnf
|
||||
POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
cat > /etc/my.cnf << EO_CONFIG_F
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
|
@ -347,10 +400,21 @@ EO_CONFIG_F
|
|||
|
||||
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
||||
|
||||
#Define packages
|
||||
if [ "$PANDORA_BETA" -eq '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
elif [ "$PANDORA_BETA" -ne '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://pandorafms.com/community/community-console-rpm-beta/"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "wget http://firefly.artica.es/centos7/pandorafms_agent_unix-7.0NG.751_x86_64.rpm" "Downloading Pandora FMS Agent community"
|
||||
execute_cmd "curl -LSs --output pandorafms_server-7.0NG.noarch.rpm ${PANDORA_SERVER_PACKAGE}" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "curl -LSs --output pandorafms_console-7.0NG.noarch.rpm ${PANDORA_CONSOLE_PACKAGE}" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA_AGENT_PACKAGE}" "Downloading Pandora FMS Agent community"
|
||||
|
||||
# Install Pandora
|
||||
execute_cmd "yum install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages"
|
||||
|
@ -374,13 +438,13 @@ mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb_data.sq
|
|||
check_cmd_status 'Error Loading database schema data'
|
||||
|
||||
# Configure console
|
||||
cat > $CONSOLE_PATH/include/config.php << EO_CONFIG_F
|
||||
cat > $PANDORA_CONSOLE/include/config.php << EO_CONFIG_F
|
||||
<?php
|
||||
\$config["dbtype"] = "mysql";
|
||||
\$config["dbname"]="$DBNAME";
|
||||
\$config["dbuser"]="$DBUSER";
|
||||
\$config["dbpass"]="$DBPASS";
|
||||
\$config["dbhost"]="localhost";
|
||||
\$config["dbhost"]="$DBHOST";
|
||||
\$config["homedir"]="$PANDORA_CONSOLE";
|
||||
\$config["homeurl"]="/pandora_console";
|
||||
error_reporting(0);
|
||||
|
@ -420,9 +484,9 @@ sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
|||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
||||
|
||||
# Fixing console permissions
|
||||
chmod 600 $CONSOLE_PATH/include/config.php
|
||||
chown apache. $CONSOLE_PATH/include/config.php
|
||||
mv $CONSOLE_PATH/install.php $CONSOLE_PATH/install.done
|
||||
chmod 600 $PANDORA_CONSOLE/include/config.php
|
||||
chown apache. $PANDORA_CONSOLE/include/config.php
|
||||
mv $PANDORA_CONSOLE/install.php $PANDORA_CONSOLE/install.done
|
||||
|
||||
# Prepare php.ini
|
||||
sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
|
||||
|
@ -449,6 +513,10 @@ sed -i -e "s/^dbname.*/dbname $DBNAME/g" $PANDORA_SERVER_CONF
|
|||
sed -i -e "s/^dbuser.*/dbuser $DBUSER/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s|^dbpass.*|dbpass $DBPASS|g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^dbport.*/dbport $DBPORT/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^#.mssql_driver.*/mssql_driver $MS_ID/g" $PANDORA_SERVER_CONF
|
||||
|
||||
# Enable agent remote config
|
||||
sed -i "s/^remote_config.*$/remote_config 1/g" $PANDORA_AGENT_CONF
|
||||
|
||||
# Set Oracle environment for pandora_server
|
||||
cat > /etc/pandora/pandora_server.env << 'EOF_ENV'
|
||||
|
@ -459,7 +527,7 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/$VERSION/client64/lib
|
|||
export ORACLE_HOME=/usr/lib/oracle/$VERSION/client64
|
||||
EOF_ENV
|
||||
|
||||
# Kernel optimization
|
||||
if [ "$SKIP_KERNEL_OPTIMIZATIONS" -eq '0' ] ; then
|
||||
cat >> /etc/sysctl.conf <<EO_KO
|
||||
# Pandora FMS Optimization
|
||||
|
||||
|
@ -487,6 +555,7 @@ net.core.optmem_max = 81920
|
|||
EO_KO
|
||||
|
||||
[ -d /dev/lxd/ ] || execute_cmd "sysctl --system" "Applying Kernel optimization"
|
||||
fi
|
||||
|
||||
# Fix pandora_server.{log,error} permissions to allow Console check them
|
||||
chown pandora:apache /var/log/pandora
|
||||
|
@ -563,7 +632,7 @@ execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate http://12
|
|||
echo "* * * * * root wget -q -O - --no-check-certificate http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
## Enabling agent
|
||||
systemctl enable pandora_agent_daemon &>> $LOGFILE
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "starting Pandora FMS Agent"
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent"
|
||||
|
||||
#SSH banner
|
||||
[ "$(curl -s ifconfig.me)" ] && ipplublic=$(curl -s ifconfig.me)
|
||||
|
@ -593,4 +662,4 @@ execute_cmd "rm -rf $HOME/pandora_deploy_tmp" "Removing temporary files"
|
|||
GREEN='\033[01;32m'
|
||||
NONE='\033[0m'
|
||||
printf " -> Go to Public ${green}http://"$ipplublic"/pandora_console${reset} to manage this server"
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use this credentials to login in the console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use these credentials to log in Pandora Console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
|
@ -1,17 +1,36 @@
|
|||
#!/bin/bash
|
||||
#######################################################
|
||||
# PandoraFMS Community online installation script
|
||||
#######################################################
|
||||
## Tested versions ##
|
||||
# Centos 8.4, 8.5
|
||||
# Rocky 8.4, 8.5
|
||||
# Almalinuz 8.4, 8.5
|
||||
# RedHat 8.5
|
||||
|
||||
# define variables
|
||||
#Constants
|
||||
PANDORA_CONSOLE=/var/www/html/pandora_console
|
||||
CONSOLE_PATH=/var/www/html/pandora_console
|
||||
PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
||||
DBHOST=127.0.0.1
|
||||
DBNAME=pandora
|
||||
DBUSER=pandora
|
||||
DBPASS=pandora
|
||||
DBPORT=3306
|
||||
S_VERSION='2021070101'
|
||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||
|
||||
|
||||
S_VERSION='2022020801'
|
||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||
|
||||
# define default variables
|
||||
[ "$TZ" ] || TZ="Europe/Madrid"
|
||||
[ "$DBHOST" ] || DBHOST=127.0.0.1
|
||||
[ "$DBNAME" ] || DBNAME=pandora
|
||||
[ "$DBUSER" ] || DBUSER=pandora
|
||||
[ "$DBPASS" ] || DBPASS=pandora
|
||||
[ "$DBPORT" ] || DBPORT=3306
|
||||
[ "$DBROOTPASS" ] || DBROOTPASS=pandora
|
||||
[ "$SKIP_PRECHECK" ] || SKIP_PRECHECK=0
|
||||
[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0
|
||||
[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0
|
||||
[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
[ "$PANDORA_BETA" ] || PANDORA_BETA=0
|
||||
|
||||
# Ansi color code variables
|
||||
red="\e[0;91m"
|
||||
green="\e[0;92m"
|
||||
|
@ -56,7 +75,7 @@ check_pre_pandora () {
|
|||
|
||||
echo -en "${cyan}Checking environment ... ${reset}"
|
||||
rpm -qa | grep pandora &>> /dev/null && local fail=true
|
||||
[ -d "$CONSOLE_PATH" ] && local fail=true
|
||||
[ -d "$PANDORA_CONSOLE" ] && local fail=true
|
||||
[ -f /usr/bin/pandora_server ] && local fail=true
|
||||
echo "use $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true
|
||||
|
||||
|
@ -74,7 +93,7 @@ check_root_permissions () {
|
|||
echo -en "${cyan}Checking root account... ${reset}"
|
||||
if [ "$(whoami)" != "root" ]; then
|
||||
echo -e "${red}Fail${reset}"
|
||||
echo "Please use a root account or sudo for installing PandoraFMS"
|
||||
echo "Please use a root account or sudo for installing Pandora FMS"
|
||||
echo "Error installing Pandora FMS for detailed error please check log: $LOGFILE"
|
||||
exit 1
|
||||
|
||||
|
@ -87,15 +106,19 @@ check_root_permissions () {
|
|||
echo "Starting PandoraFMS Community deployment EL8 ver. $S_VERSION"
|
||||
|
||||
# Centos Version
|
||||
if [ ! "$(grep -Ei 'centos|rocky' /etc/redhat-release)" ]; then
|
||||
printf "\n ${red}Error this is not a Centos/Rocky Base system, this installer is compatible with Centos/Rocky systems only${reset}\n"
|
||||
if [ ! "$(grep -Ei 'centos|rocky|Almalinux|Red Hat Enterprise' /etc/redhat-release)" ]; then
|
||||
printf "\n ${red}Error this is not a Centos/Rocky/Almalinux Base system, this installer is compatible with RHEL/Almalinux/Centos/Rockylinux systems only${reset}\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
echo -en "${cyan}Check Centos Version...${reset}"
|
||||
[ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '8' ]
|
||||
check_cmd_status 'Error OS version, Centos/Rocky 8+ is expected'
|
||||
check_cmd_status 'Error OS version, RHEL/Almalinux/Centos/Rockylinux 8+ is expected'
|
||||
|
||||
#Detect OS
|
||||
os_name=$(grep ^PRETTY_NAME= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||
execute_cmd "echo $os_name" "OS detected: ${os_name}"
|
||||
|
||||
# initialice logfile
|
||||
execute_cmd "echo 'Starting community deployment' > $LOGFILE" "All installer activity is logged on $LOGFILE"
|
||||
|
@ -106,7 +129,10 @@ echo "Community installer version: $S_VERSION" >> "$LOGFILE"
|
|||
check_root_permissions
|
||||
|
||||
# Pre installed pandora
|
||||
check_pre_pandora
|
||||
[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora
|
||||
|
||||
#advicing BETA PROGRAM
|
||||
[ "$PANDORA_BETA" -ne '0' ] && echo -e "${red}BETA version enable using nightly PandoraFMS packages${reset}"
|
||||
|
||||
# Connectivity
|
||||
check_repo_connection
|
||||
|
@ -120,6 +146,10 @@ execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]"
|
|||
# Check disk size at least 10 Gb free space
|
||||
execute_cmd "[ $(df -BM / | tail -1 | awk '{print $4}' | tr -d M) -gt 10000 ]" 'Checking Disk (required: 10 GB free min)'
|
||||
|
||||
# Setting timezone
|
||||
rm -rf /etc/localtime &>> "$LOGFILE"
|
||||
execute_cmd "timedatectl set-timezone $TZ" "Setting Timezone $TZ"
|
||||
|
||||
# Execute tools check
|
||||
execute_cmd "awk --version" 'Checking needed tools: awk'
|
||||
execute_cmd "grep --version" 'Checking needed tools: grep'
|
||||
|
@ -131,25 +161,57 @@ rm -rf "$HOME"/pandora_deploy_tmp/*.rpm* &>> "$LOGFILE"
|
|||
mkdir "$HOME"/pandora_deploy_tmp &>> "$LOGFILE"
|
||||
execute_cmd "cd $HOME/pandora_deploy_tmp" "Moving to workspace: $HOME/pandora_deploy_tmp"
|
||||
|
||||
## Extra steps on redhat envs
|
||||
if [ "$(grep -Ei 'Red Hat Enterprise' /etc/redhat-release)" ]; then
|
||||
## In case REDHAT
|
||||
# Check susbscription manager status:
|
||||
echo -en "${cyan}Checking Red Hat Enterprise subscription... ${reset}"
|
||||
subscription-manager status &>> "$LOGFILE"
|
||||
subscription-manager list &>> "$LOGFILE"
|
||||
subscription-manager list | grep 'Status:' | grep Subscribed &>> "$LOGFILE"
|
||||
check_cmd_status 'Error checking subscription status, make sure your server is activated and suscribed to Red Hat Enterprise repositories'
|
||||
|
||||
# Ckeck repolist
|
||||
dnf repolist &>> "$LOGFILE"
|
||||
echo -en "${cyan}Checking Red Hat Enterprise repolist... ${reset}"
|
||||
dnf repolist | grep 'rhel-8-for-x86_64-baseos-rpms' &>> "$LOGFILE"
|
||||
check_cmd_status 'Error checking repositories status, could try a subscription-manager attach command or contact sysadmin'
|
||||
|
||||
#install extra repos
|
||||
extra_repos=" \
|
||||
tar \
|
||||
dnf-utils \
|
||||
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms" "Enabling subscription to codeready-builder"
|
||||
else
|
||||
# For alma/rocky/centos
|
||||
extra_repos=" \
|
||||
tar \
|
||||
dnf-utils \
|
||||
epel-release \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "dnf config-manager --set-enabled powertools" "Configuring Powertools"
|
||||
fi
|
||||
|
||||
|
||||
#Installing wget
|
||||
execute_cmd "dnf install -y wget" "Installing wget"
|
||||
|
||||
#Installing extra repositiries
|
||||
extra_repos=" \
|
||||
tar \
|
||||
dnf-utils \
|
||||
epel-release \
|
||||
http://rpms.remirepo.net/enterprise/remi-release-8.rpm \
|
||||
https://repo.percona.com/yum/percona-release-latest.noarch.rpm"
|
||||
|
||||
execute_cmd "dnf install -y $extra_repos" "Installing extra repositories"
|
||||
execute_cmd "dnf config-manager --set-enabled powertools" "Configuring Powertools"
|
||||
execute_cmd "dnf module reset -y php " "Disabling standard PHP module"
|
||||
execute_cmd "dnf module install -y php:remi-7.3" "Configuring PHP"
|
||||
execute_cmd "dnf module install -y php:remi-7.4" "Configuring PHP"
|
||||
|
||||
# Install percona Database
|
||||
execute_cmd "dnf module disable -y mysql" "Disabiling mysql module"
|
||||
rm -rf /etc/my.cnf
|
||||
#rm -rf /etc/my.cnf
|
||||
execute_cmd "dnf install -y Percona-Server-server-57" "Installing Percona Server"
|
||||
|
||||
# Console dependencies
|
||||
|
@ -231,6 +293,7 @@ console_dependencies=" \
|
|||
xorg-x11-fonts-misc \
|
||||
poppler-data \
|
||||
php-yaml \
|
||||
mod_ssl \
|
||||
http://firefly.artica.es/centos8/perl-Net-Telnet-3.04-1.el8.noarch.rpm \
|
||||
http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm \
|
||||
http://firefly.artica.es/centos8/phantomjs-2.1.1-1.el7.x86_64.rpm"
|
||||
|
@ -255,7 +318,8 @@ server_dependencies=" \
|
|||
perl(IO::Socket::INET6) \
|
||||
perl(XML::Twig) \
|
||||
expect \
|
||||
openssh-clients \
|
||||
openssh-clients \
|
||||
java \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm"
|
||||
execute_cmd "dnf install -y $server_dependencies" "Installing Pandora FMS Server dependencies"
|
||||
|
@ -281,6 +345,7 @@ oracle_dependencies=" \
|
|||
https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm"
|
||||
execute_cmd "dnf install -y $oracle_dependencies" "Installing Oracle Instant client"
|
||||
|
||||
#ipam dependencies
|
||||
ipam_dependencies=" \
|
||||
http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \
|
||||
perl(NetAddr::IP) \
|
||||
|
@ -290,32 +355,49 @@ ipam_dependencies=" \
|
|||
perl(Geo::IP) \
|
||||
perl(IO::Socket::INET6) \
|
||||
perl(XML::Twig)"
|
||||
execute_cmd "dnf install -y $ipam_dependencies" "Installing Oracle Instant client"
|
||||
execute_cmd "dnf install -y $ipam_dependencies" "Installing IPAM Instant client"
|
||||
|
||||
# MSSQL dependencies el8
|
||||
execute_cmd "curl https://packages.microsoft.com/config/rhel/8/prod.repo -o /etc/yum.repos.d/mssql-release.repo" "Configuring Microsoft repositories"
|
||||
execute_cmd "dnf remove unixODBC-utf16 unixODBC-utf16-devel" "Removing default unixODBC packages"
|
||||
execute_cmd "env ACCEPT_EULA=Y dnf install -y msodbcsql17" "Installing ODBC Driver for Microsoft(R) SQL Server(R)"
|
||||
MS_ID=$(head -1 /etc/odbcinst.ini | tr -d '[]') &>> "$LOGFILE"
|
||||
#dnf config-manager --set-disable packages-microsoft-com-prod
|
||||
|
||||
# Disabling SELINUX and firewalld
|
||||
setenforce 0 &>> "$LOGFILE"
|
||||
sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config &>> "$LOGFILE"
|
||||
systemctl disable firewalld --now &>> "$LOGFILE"
|
||||
|
||||
# Adding standar cnf for initial setup.
|
||||
cat > /etc/my.cnf << EO_CONFIG_TMP
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
symbolic-links=0
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
||||
EO_CONFIG_TMP
|
||||
|
||||
#Configuring Database
|
||||
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
||||
execute_cmd "systemctl start mysqld" "Starting database engine"
|
||||
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
|
||||
echo """
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!');
|
||||
UNINSTALL PLUGIN validate_password;
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pandora');
|
||||
""" | mysql --connect-expired-password -uroot
|
||||
|
||||
export MYSQL_PWD=$DBPASS
|
||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS');
|
||||
""" | mysql --connect-expired-password -uroot &>> "$LOGFILE"
|
||||
fi
|
||||
export MYSQL_PWD=$DBROOTPASS
|
||||
echo -en "${cyan}Creating Pandora FMS database...${reset}"
|
||||
echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
check_cmd_status 'Error creating database pandora, is this an empty node? if you have a previus installation please contact with support.'
|
||||
check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support."
|
||||
|
||||
echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%' identified by \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST
|
||||
export MYSQL_PWD=$DBPASS
|
||||
|
||||
#Generating my.cnf
|
||||
POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g")
|
||||
cat > /etc/my.cnf << EO_CONFIG_F
|
||||
[mysqld]
|
||||
datadir=/var/lib/mysql
|
||||
|
@ -362,13 +444,25 @@ EO_CONFIG_F
|
|||
|
||||
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
||||
|
||||
|
||||
#Define packages
|
||||
if [ "$PANDORA_BETA" -eq '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
elif [ "$PANDORA_BETA" -ne '0' ] ; then
|
||||
[ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_server-latest.x86_64.rpm"
|
||||
[ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="https://pandorafms.com/community/community-console-rpm-beta/"
|
||||
[ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm"
|
||||
fi
|
||||
|
||||
# Downloading Pandora Packages
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "wget http://firefly.artica.es/centos7/pandorafms_agent_unix-7.0NG.751_x86_64.rpm" "Downloading Pandora FMS Agent community"
|
||||
execute_cmd "curl -LSs --output pandorafms_server-7.0NG.noarch.rpm ${PANDORA_SERVER_PACKAGE}" "Downloading Pandora FMS Server community"
|
||||
execute_cmd "curl -LSs --output pandorafms_console-7.0NG.noarch.rpm ${PANDORA_CONSOLE_PACKAGE}" "Downloading Pandora FMS Console community"
|
||||
execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA_AGENT_PACKAGE}" "Downloading Pandora FMS Agent community"
|
||||
|
||||
# Install Pandora
|
||||
execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages"
|
||||
execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "Installing Pandora FMS packages"
|
||||
|
||||
# Copy gotty utility
|
||||
execute_cmd "wget https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz" 'Dowloading gotty util'
|
||||
|
@ -391,13 +485,13 @@ mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb_data.sq
|
|||
check_cmd_status 'Error Loading database schema data'
|
||||
|
||||
# Configure console
|
||||
cat > $CONSOLE_PATH/include/config.php << EO_CONFIG_F
|
||||
cat > $PANDORA_CONSOLE/include/config.php << EO_CONFIG_F
|
||||
<?php
|
||||
\$config["dbtype"] = "mysql";
|
||||
\$config["dbname"]="$DBNAME";
|
||||
\$config["dbuser"]="$DBUSER";
|
||||
\$config["dbpass"]="$DBPASS";
|
||||
\$config["dbhost"]="localhost";
|
||||
\$config["dbhost"]="$DBHOST";
|
||||
\$config["homedir"]="$PANDORA_CONSOLE";
|
||||
\$config["homeurl"]="/pandora_console";
|
||||
error_reporting(0);
|
||||
|
@ -437,9 +531,9 @@ sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/images/.htaccess
|
|||
sed -i -e "s/php_flag engine off//g" $PANDORA_CONSOLE/attachment/.htaccess
|
||||
|
||||
# Fixing console permissions
|
||||
chmod 600 $CONSOLE_PATH/include/config.php
|
||||
chown apache. $CONSOLE_PATH/include/config.php
|
||||
mv $CONSOLE_PATH/install.php $CONSOLE_PATH/install.done
|
||||
chmod 600 $PANDORA_CONSOLE/include/config.php
|
||||
chown apache. $PANDORA_CONSOLE/include/config.php
|
||||
mv $PANDORA_CONSOLE/install.php $PANDORA_CONSOLE/install.done &>> "$LOGFILE"
|
||||
|
||||
# Prepare php.ini
|
||||
sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
|
||||
|
@ -466,6 +560,10 @@ sed -i -e "s/^dbname.*/dbname $DBNAME/g" $PANDORA_SERVER_CONF
|
|||
sed -i -e "s/^dbuser.*/dbuser $DBUSER/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s|^dbpass.*|dbpass $DBPASS|g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^dbport.*/dbport $DBPORT/g" $PANDORA_SERVER_CONF
|
||||
sed -i -e "s/^#.mssql_driver.*/mssql_driver $MS_ID/g" $PANDORA_SERVER_CONF
|
||||
|
||||
# Enable agent remote config
|
||||
sed -i "s/^remote_config.*$/remote_config 1/g" $PANDORA_AGENT_CONF
|
||||
|
||||
# Set Oracle environment for pandora_server
|
||||
cat > /etc/pandora/pandora_server.env << 'EOF_ENV'
|
||||
|
@ -477,6 +575,8 @@ export ORACLE_HOME=/usr/lib/oracle/$VERSION/client64
|
|||
EOF_ENV
|
||||
|
||||
# Kernel optimization
|
||||
|
||||
if [ "$SKIP_KERNEL_OPTIMIZATIONS" -eq '0' ] ; then
|
||||
cat >> /etc/sysctl.conf <<EO_KO
|
||||
# Pandora FMS Optimization
|
||||
|
||||
|
@ -504,6 +604,7 @@ net.core.optmem_max = 81920
|
|||
EO_KO
|
||||
|
||||
[ -d /dev/lxd/ ] || execute_cmd "sysctl --system" "Applying Kernel optimization"
|
||||
fi
|
||||
|
||||
# Fix pandora_server.{log,error} permissions to allow Console check them
|
||||
chown pandora:apache /var/log/pandora
|
||||
|
@ -558,7 +659,7 @@ chmod 0644 /etc/logrotate.d/pandora_server
|
|||
chmod 0644 /etc/logrotate.d/pandora_agent
|
||||
|
||||
# Add websocket engine start script.
|
||||
mv /var/www/html/pandora_console/pandora_websocket_engine /etc/init.d/
|
||||
mv /var/www/html/pandora_console/pandora_websocket_engine /etc/init.d/ &>> "$LOGFILE"
|
||||
chmod +x /etc/init.d/pandora_websocket_engine
|
||||
|
||||
# Start Websocket engine
|
||||
|
@ -569,7 +670,7 @@ systemctl enable pandora_websocket_engine &>> "$LOGFILE"
|
|||
|
||||
# Enable pandora ha service
|
||||
systemctl enable pandora_server --now &>> "$LOGFILE"
|
||||
execute_cmd "systemctl start pandora_server" "Starting Pandora FMS Server"
|
||||
execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
|
||||
|
||||
# starting tentacle server
|
||||
systemctl enable tentacle_serverd &>> "$LOGFILE"
|
||||
|
@ -580,7 +681,7 @@ execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate http://12
|
|||
echo "* * * * * root wget -q -O - --no-check-certificate http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab
|
||||
## Enabling agent
|
||||
systemctl enable pandora_agent_daemon &>> "$LOGFILE"
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "starting Pandora FMS Agent"
|
||||
execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent"
|
||||
|
||||
#SSH banner
|
||||
[ "$(curl -s ifconfig.me)" ] && ipplublic=$(curl -s ifconfig.me)
|
||||
|
@ -610,4 +711,4 @@ execute_cmd "rm -rf $HOME/pandora_deploy_tmp" "Removing temporary files"
|
|||
GREEN='\033[01;32m'
|
||||
NONE='\033[0m'
|
||||
printf " -> Go to Public ${green}http://"$ipplublic"/pandora_console${reset} to manage this server"
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use this credentials to login in the console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
||||
ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v -e "172.1[0-9].0.1" | awk '{print $2}' | awk -v g=$GREEN -v n=$NONE -F '/' '{printf "\n -> Go to Local "g"http://"$1"/pandora_console"n" to manage this server \n -> Use these credentials to log in Pandora Console "g"[ User: admin / Password: pandora ]"n" \n"}'
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, AIX version
|
||||
# Version 7.0NG.760, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, FreeBSD Version
|
||||
# Version 7.0NG.760, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, HP-UX Version
|
||||
# Version 7.0NG.760, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, Solaris Version
|
||||
# Version 7.0NG.760, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# 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
|
||||
# Foundation; either version 2 of the Licence or any later version
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759, AIX version
|
||||
# Version 7.0NG.760, AIX version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# FreeBSD/IPSO version
|
||||
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759, HPUX Version
|
||||
# Version 7.0NG.760, HPUX Version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# Licensed under GPL license v2,
|
||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# Licensed under GPL license v2,
|
||||
# please visit http://pandora.sourceforge.net
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Fichero de configuracion base de agentes de Pandora
|
||||
# Base config file for Pandora agents
|
||||
# Version 7.0NG.759, Solaris version
|
||||
# Version 7.0NG.760, Solaris version
|
||||
|
||||
# General Parameters
|
||||
# ==================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, AIX version
|
||||
# Version 7.0NG.760, AIX version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-agent-unix
|
||||
Version: 7.0NG.759-220202
|
||||
Version: 7.0NG.760-220218
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.759-220202"
|
||||
pandora_version="7.0NG.760-220218"
|
||||
|
||||
echo "Test if you has the tools for to make the packages."
|
||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||
|
|
|
@ -31,7 +31,7 @@ fi
|
|||
if [ "$#" -ge 2 ]; then
|
||||
VERSION="$2"
|
||||
else
|
||||
VERSION="7.0NG.759"
|
||||
VERSION="7.0NG.760"
|
||||
fi
|
||||
|
||||
# Path for the generated DMG file
|
||||
|
|
|
@ -19,11 +19,11 @@
|
|||
<choice id="com.pandorafms.pandorafms_src" visible="false">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.759" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.760" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||
<choice id="com.pandorafms.pandorafms_uninstall" visible="true" customLocation="/Applications">
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall"/>
|
||||
</choice>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.759" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.760" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||
<!-- <installation-check script="check()" />
|
||||
<script>
|
||||
<![CDATA[
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
<key>CFBundleIconFile</key> <string>pandorafms.icns</string>
|
||||
<key>CFBundleIdentifier</key> <string>com.pandorafms.pandorafms_uninstall</string>
|
||||
|
||||
<key>CFBundleVersion</key> <string>7.0NG.759</string>
|
||||
<key>CFBundleGetInfoString</key> <string>7.0NG.759 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||
<key>CFBundleShortVersionString</key> <string>7.0NG.759</string>
|
||||
<key>CFBundleVersion</key> <string>7.0NG.760</string>
|
||||
<key>CFBundleGetInfoString</key> <string>7.0NG.760 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||
<key>CFBundleShortVersionString</key> <string>7.0NG.760</string>
|
||||
|
||||
<key>NSPrincipalClass</key><string>NSApplication</string>
|
||||
<key>NSMainNibFile</key><string>MainMenu</string>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, FreeBSD Version
|
||||
# Version 7.0NG.760, FreeBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, HP-UX Version
|
||||
# Version 7.0NG.760, HP-UX Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, GNU/Linux
|
||||
# Version 7.0NG.760, GNU/Linux
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, NetBSD Version
|
||||
# Version 7.0NG.760, NetBSD Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -47,4 +47,3 @@ License
|
|||
|
||||
The project is distributed under the GPL License v2 or later.
|
||||
Copyright (C) 2004-2011 Pandora FMS development team
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Base config file for Pandora FMS agents
|
||||
# Version 7.0NG.759, Solaris Version
|
||||
# Version 7.0NG.760, Solaris Version
|
||||
# Licensed under GPL license v2,
|
||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||
# http://www.pandorafms.com
|
||||
|
|
|
@ -1014,8 +1014,8 @@ my $Sem = undef;
|
|||
# Semaphore used to control the number of threads
|
||||
my $ThreadSem = undef;
|
||||
|
||||
use constant AGENT_VERSION => '7.0NG.759';
|
||||
use constant AGENT_BUILD => '220202';
|
||||
use constant AGENT_VERSION => '7.0NG.760';
|
||||
use constant AGENT_BUILD => '220218';
|
||||
|
||||
# Agent log default file size maximum and instances
|
||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.759
|
||||
%define release 220202
|
||||
%define version 7.0NG.760
|
||||
%define release 220218
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
#Pandora FMS Linux Agent
|
||||
#
|
||||
%define name pandorafms_agent_unix
|
||||
%define version 7.0NG.759
|
||||
%define release 220202
|
||||
%define version 7.0NG.760
|
||||
%define release 220218
|
||||
|
||||
Summary: Pandora FMS Linux agent, PERL version
|
||||
Name: %{name}
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
||||
# **********************************************************************
|
||||
|
||||
PI_VERSION="7.0NG.759"
|
||||
PI_BUILD="220202"
|
||||
PI_VERSION="7.0NG.760"
|
||||
PI_BUILD="220218"
|
||||
OS_NAME=`uname -s`
|
||||
|
||||
FORCE=0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Base config file for Pandora FMS Windows Agent
|
||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||
# Version 7.0NG.759
|
||||
# Version 7.0NG.760
|
||||
# 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
|
||||
# Foundation; either version 2 of the Licence or any later version
|
||||
|
|
|
@ -3,7 +3,7 @@ AllowLanguageSelection
|
|||
{Yes}
|
||||
|
||||
AppName
|
||||
{Pandora FMS Windows Agent v7.0NG.759}
|
||||
{Pandora FMS Windows Agent v7.0NG.760}
|
||||
|
||||
ApplicationID
|
||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||
{}
|
||||
|
||||
Version
|
||||
{220202}
|
||||
{220218}
|
||||
|
||||
ViewReadme
|
||||
{Yes}
|
||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||
using namespace Pandora_Strutils;
|
||||
|
||||
#define PATH_SIZE _MAX_PATH+1
|
||||
#define PANDORA_VERSION ("7.0NG.759 Build 220202")
|
||||
#define PANDORA_VERSION ("7.0NG.760 Build 220218")
|
||||
|
||||
string pandora_path;
|
||||
string pandora_dir;
|
||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
|||
VALUE "LegalCopyright", "Artica ST"
|
||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||
VALUE "ProductVersion", "(7.0NG.759(Build 220202))"
|
||||
VALUE "ProductVersion", "(7.0NG.760(Build 220218))"
|
||||
VALUE "FileVersion", "1.0.0.0"
|
||||
END
|
||||
END
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package: pandorafms-console
|
||||
Version: 7.0NG.759-220202
|
||||
Version: 7.0NG.760-220218
|
||||
Architecture: all
|
||||
Priority: optional
|
||||
Section: admin
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
pandora_version="7.0NG.759-220202"
|
||||
pandora_version="7.0NG.760-220218"
|
||||
|
||||
package_pear=0
|
||||
package_pandora=1
|
||||
|
|
|
@ -89,7 +89,11 @@ if (isset($_GET['loginhash']) === true) {
|
|||
$config['id_user'] = $loginhash_user;
|
||||
} else {
|
||||
include_once 'general/login_page.php';
|
||||
db_pandora_audit('Logon Failed (loginhash', '', 'system');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_USER_REGISTRATION,
|
||||
'Loginhash failed',
|
||||
'system'
|
||||
);
|
||||
while (ob_get_length() > 0) {
|
||||
ob_end_flush();
|
||||
}
|
||||
|
@ -111,8 +115,8 @@ if (class_exists($auth_class) === false || $public_hash === false) {
|
|||
} else {
|
||||
if ($auth_class::validatePublicHash($public_hash) === false) {
|
||||
db_pandora_audit(
|
||||
'Invalid public hash',
|
||||
'Trying to access public dashboard'
|
||||
AUDIT_LOG_USER_REGISTRATION,
|
||||
'Trying to access public dashboard (Invalid public hash)'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
|
|
|
@ -284,7 +284,7 @@ function mainAgentsModules()
|
|||
// ACL Check.
|
||||
if (! check_acl($config['id_user'], 0, 'AR')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Agent view (Grouped)'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -304,7 +304,10 @@ function mainAgentsModules()
|
|||
|
||||
db_process_sql_update('tagente_modulo', ['flag' => 1], $where);
|
||||
} else {
|
||||
db_pandora_audit('ACL Violation', 'Trying to set flag for groups');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to set flag for groups'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
|
|
@ -63,7 +63,7 @@ function extension_api_checker()
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Profile Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -32,7 +32,7 @@ function extension_db_status()
|
|||
|
||||
if (!is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access db status'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -89,7 +89,10 @@ function dbmgr_extension_main()
|
|||
global $config;
|
||||
|
||||
if (!is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Setup Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
@ -143,7 +146,13 @@ function dbmgr_extension_main()
|
|||
echo '<strong>An error has occured when querying the database.</strong><br />';
|
||||
echo $error;
|
||||
|
||||
db_pandora_audit('DB Interface Extension', 'Error in SQL', false, false, $sql);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_SYSTEM,
|
||||
'DB Interface Extension. Error in SQL',
|
||||
false,
|
||||
false,
|
||||
$sql
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -151,7 +160,13 @@ function dbmgr_extension_main()
|
|||
if (! is_array($result)) {
|
||||
echo '<strong>Output: <strong>'.$result;
|
||||
|
||||
db_pandora_audit('DB Interface Extension', 'SQL', false, false, $sql);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_SYSTEM,
|
||||
'DB Interface Extension. SQL',
|
||||
false,
|
||||
false,
|
||||
$sql
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -16,7 +16,10 @@ function load_matrix_console()
|
|||
global $config;
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'ER')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access event viewer');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access event viewer'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ function extension_uploader_extensions()
|
|||
|
||||
if (!check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -61,7 +61,10 @@ function extension_uploader_extensions()
|
|||
}
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Extension manager', 'Upload extension '.$_FILES['extension']['name']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_EXTENSION_MANAGER,
|
||||
'Upload extension '.$_FILES['extension']['name']
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
|
|
|
@ -106,7 +106,10 @@ function pandora_files_repo_godmode()
|
|||
// ACL Check
|
||||
check_login();
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access to Files repository');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access to Files repository'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -58,7 +58,10 @@ function mainInsertData()
|
|||
ui_print_page_header(__('Insert data'), 'images/extensions.png', false, '', true, '');
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'AW') && ! is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Setup Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,10 @@ global $config;
|
|||
|
||||
if (is_ajax()) {
|
||||
if (! check_acl($config['id_user'], 0, 'ER')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access event viewer');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access event viewer'
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ check_login();
|
|||
// ACL Check.
|
||||
if (!check_acl($config['id_user'], 0, 'AR')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Module Groups view'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -56,7 +56,10 @@ function pandoralogs_extension_main()
|
|||
global $config;
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Setup Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ function quickShell()
|
|||
|
||||
if (check_acl($config['id_user'], 0, 'PM') === false) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Profile Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -29,7 +29,10 @@ if (isset($_GET['get_ptr'])) {
|
|||
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Setup Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
@ -404,7 +407,10 @@ function resource_exportation_extension_main()
|
|||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Setup Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -143,14 +143,14 @@ function process_upload_xml_report($xml, $group_filter=0)
|
|||
|
||||
if ($id_report) {
|
||||
db_pandora_audit(
|
||||
'Report management',
|
||||
AUDIT_LOG_REPORT_MANAGEMENT,
|
||||
'Create report '.$id_report,
|
||||
false,
|
||||
false
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Report management',
|
||||
AUDIT_LOG_REPORT_MANAGEMENT,
|
||||
'Fail to create report',
|
||||
false,
|
||||
false
|
||||
|
@ -554,7 +554,11 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
|
|||
);
|
||||
|
||||
if ($id_visual_map !== false) {
|
||||
db_pandora_audit('CREATE VISUAL CONSOLE', $id_visual_map, $config['id_user']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
|
||||
sprintf('Create Visual Console #%s', $id_visual_map),
|
||||
$config['id_user']
|
||||
);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
@ -716,7 +720,11 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
|
|||
);
|
||||
|
||||
if ($id_item !== false) {
|
||||
db_pandora_audit('CREATE ITEM VISUAL CONSOLE', $values['id_layout'].' - '.$id_item, $config['id_user']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
|
||||
sprintf('Create Item %s in Visual Console #%s', $id_item, $values['id_layout']),
|
||||
$config['id_user']
|
||||
);
|
||||
}
|
||||
} else {
|
||||
foreach ($agents_in_item as $id => $agent) {
|
||||
|
@ -725,7 +733,7 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
|
|||
|
||||
$id_item = db_process_sql_insert('tlayout_data', $values);
|
||||
|
||||
if (isset($item->other_id)) {
|
||||
if (isset($item->other_id) === true) {
|
||||
$relation_other_ids[(string) $item->other_id] = $id_item;
|
||||
}
|
||||
|
||||
|
@ -736,9 +744,14 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
|
|||
);
|
||||
|
||||
if ($id_item !== false) {
|
||||
db_pandora_audit('CREATE ITEM VISUAL CONSOLE', $values['id_layout'].' - '.$id_item, $config['id_user']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
|
||||
sprintf('Create Item %s in Visual Console #%s', $id_item, $values['id_layout']),
|
||||
$config['id_user']
|
||||
);
|
||||
}
|
||||
} else {
|
||||
// TODO: Review this else.
|
||||
foreach ($agent['modules'] as $id_module => $module) {
|
||||
$values['id_agent'] = $id;
|
||||
$values['id_agente_modulo'] = $id_module;
|
||||
|
@ -752,7 +765,11 @@ function process_upload_xml_visualmap($xml, $filter_group=0)
|
|||
);
|
||||
|
||||
if ($id_item !== false) {
|
||||
db_pandora_audit('CREATE ITEM VISUAL CONSOLE', $values['id_layout'].' - '.$id_item, $config['id_user']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_VISUAL_CONSOLE_MANAGEMENT,
|
||||
sprintf('Create Item %s in Visual Console #%s', $id_item, $values['id_layout']),
|
||||
$config['id_user']
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1063,7 +1080,10 @@ function resource_registration_extension_main()
|
|||
global $config;
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Setup Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Setup Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
@ -1100,7 +1120,7 @@ function resource_registration_extension_main()
|
|||
}
|
||||
|
||||
echo '<div class=notify>';
|
||||
echo __('This extension makes registering resource templates easier.').' '.__('Here you can upload a resource template in .ptr format.').' '.__('Please refer to our documentation for more information on how to obtain and use %s resources.', get_product_name()).' '.'<br> <br>'.__('You can get more resurces in our <a href="http://pandorafms.com/Library/Library/">Public Resource Library</a>');
|
||||
echo __('This extension makes registering resource templates easier.').' '.__('Here you can upload a resource template in .ptr format.').' '.__('Please refer to our documentation for more information on how to obtain and use %s resources.', get_product_name()).' '.'<br> <br>'.__('You can get more resurces in our <a href="https://pandorafms.com/Library/Library/">Public Resource Library</a>');
|
||||
echo '</div>';
|
||||
|
||||
echo '<br /><br />';
|
||||
|
|
|
@ -117,4 +117,6 @@ mobile/include/style/jquery.mobile-1.3.1.css
|
|||
godmode/alerts/configure_alert_special_days.php
|
||||
godmode/admin_access_logs.php
|
||||
enterprise/extensions/backup/main.php
|
||||
enterprise/extensions/backup.php
|
||||
enterprise/extensions/backup.php
|
||||
mobile/include/javascript/jquery.mobile-1.4.5.js
|
||||
mobile/include/style/jquery.mobile-1.4.5.css
|
|
@ -5,4 +5,17 @@ CREATE INDEX `IDX_tservice_element` ON `tservice_element`(`id_service`,`id_agent
|
|||
ALTER TABLE `tusuario` ADD COLUMN `local_user` tinyint(1) unsigned NOT NULL DEFAULT 0;
|
||||
ALTER TABLE tevent_response ADD COLUMN display_command tinyint(1) default 0;
|
||||
|
||||
COMMIT;
|
||||
ALTER TABLE `talert_templates` ADD COLUMN `schedule` TEXT;
|
||||
ALTER TABLE `tevent_alert` ADD COLUMN `schedule` TEXT;
|
||||
|
||||
SOURCE procedures/alertTemplates.sql;
|
||||
CALL `migrateRanges`();
|
||||
DROP PROCEDURE `migrateRanges`;
|
||||
|
||||
SOURCE procedures/alertEvents.sql;
|
||||
CALL `migrateEventRanges`();
|
||||
DROP PROCEDURE `migrateEventRanges`;
|
||||
|
||||
ALTER TABLE `tautoconfig` ADD COLUMN `disabled` TINYINT DEFAULT 0;
|
||||
|
||||
COMMIT;
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
CREATE PROCEDURE migrateEventRanges()
|
||||
BEGIN
|
||||
DECLARE done INT DEFAULT FALSE;
|
||||
DECLARE i INT;
|
||||
DECLARE r TEXT;
|
||||
DECLARE cur1 CURSOR FOR SELECT `id` FROM `tevent_alert`;
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||
|
||||
UPDATE `tevent_alert` SET `schedule` = '{"monday":_1_,"tuesday":_2_,"wednesday":_3_,"thursday":_4_,"friday":_5_,"saturday":_6_,"sunday":_7_}';
|
||||
UPDATE `tevent_alert` SET `time_from` = "00:00:00", `time_to` = "00:00:00" WHERE `time_from` = `time_to`;
|
||||
|
||||
OPEN cur1;
|
||||
read_loop: LOOP
|
||||
FETCH cur1 INTO i;
|
||||
|
||||
IF done THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
SELECT concat('[{"start":"', `time_from`, '","end":"', `time_to`, '"}]') into r FROM `tevent_alert` WHERE `id` = i;
|
||||
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_1_", r) WHERE `monday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_2_", r) WHERE `tuesday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_3_", r) WHERE `wednesday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_4_", r) WHERE `thursday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_5_", r) WHERE `friday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_6_", r) WHERE `saturday` > 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_7_", r) WHERE `sunday` > 0 AND `id` = i;
|
||||
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_1_", '""') WHERE `monday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_2_", '""') WHERE `tuesday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_3_", '""') WHERE `wednesday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_4_", '""') WHERE `thursday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_5_", '""') WHERE `friday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_6_", '""') WHERE `saturday` = 0 AND `id` = i;
|
||||
UPDATE `tevent_alert` SET `schedule` = REPLACE(`schedule`, "_7_", '""') WHERE `sunday` = 0 AND `id` = i;
|
||||
END LOOP;
|
||||
CLOSE cur1;
|
||||
END ;
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
CREATE PROCEDURE migrateRanges()
|
||||
BEGIN
|
||||
DECLARE done INT DEFAULT FALSE;
|
||||
DECLARE i INT;
|
||||
DECLARE r TEXT;
|
||||
DECLARE cur1 CURSOR FOR SELECT `id` FROM `talert_templates`;
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
||||
|
||||
UPDATE `talert_templates` SET `schedule` = '{"monday":_1_,"tuesday":_2_,"wednesday":_3_,"thursday":_4_,"friday":_5_,"saturday":_6_,"sunday":_7_}';
|
||||
UPDATE `talert_templates` SET `time_from` = "00:00:00", `time_to` = "00:00:00" WHERE `time_from` = `time_to`;
|
||||
|
||||
OPEN cur1;
|
||||
read_loop: LOOP
|
||||
FETCH cur1 INTO i;
|
||||
|
||||
IF done THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
SELECT concat('[{"start":"', `time_from`, '","end":"', `time_to`, '"}]') into r FROM `talert_templates` WHERE `id` = i;
|
||||
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_1_", r) WHERE `monday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_2_", r) WHERE `tuesday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_3_", r) WHERE `wednesday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_4_", r) WHERE `thursday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_5_", r) WHERE `friday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_6_", r) WHERE `saturday` > 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_7_", r) WHERE `sunday` > 0 AND `id` = i;
|
||||
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_1_", '""') WHERE `monday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_2_", '""') WHERE `tuesday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_3_", '""') WHERE `wednesday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_4_", '""') WHERE `thursday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_5_", '""') WHERE `friday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_6_", '""') WHERE `saturday` = 0 AND `id` = i;
|
||||
UPDATE `talert_templates` SET `schedule` = REPLACE(`schedule`, "_7_", '""') WHERE `sunday` = 0 AND `id` = i;
|
||||
END LOOP;
|
||||
CLOSE cur1;
|
||||
END ;
|
|
@ -715,6 +715,7 @@ ALTER TABLE `tevent_alert` ADD COLUMN `id_template_conditions` int(10) unsigned
|
|||
ALTER TABLE `tevent_alert` ADD COLUMN `id_template_fields` int(10) unsigned NOT NULL default 0;
|
||||
ALTER TABLE `tevent_alert` ADD COLUMN `last_evaluation` bigint(20) NOT NULL default 0;
|
||||
ALTER TABLE `tevent_alert` ADD COLUMN `pool_occurrences` int unsigned not null default 0;
|
||||
ALTER TABLE `tevent_alert` ADD COLUMN `schedule` TEXT;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tevent_alert_action`
|
||||
|
@ -1317,6 +1318,7 @@ ALTER TABLE talert_templates ADD COLUMN `field18_recovery` TEXT NOT NULL DEFAULT
|
|||
ALTER TABLE talert_templates ADD COLUMN `field19_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE talert_templates ADD COLUMN `field20_recovery` TEXT NOT NULL DEFAULT "";
|
||||
ALTER TABLE `talert_templates` ADD COLUMN `disable_event` tinyint(1) DEFAULT 0;
|
||||
ALTER TABLE `talert_templates` ADD COLUMN `schedule` TEXT;
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
-- Table `talert_snmp`
|
||||
|
@ -1451,13 +1453,13 @@ ALTER TABLE `ttag` MODIFY COLUMN `name` text NOT NULL default '';
|
|||
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 ('days_autodisable_deletion', '30');
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 51);
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 52);
|
||||
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_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';
|
||||
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package', 759);
|
||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package', 760);
|
||||
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';
|
||||
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_api_password';
|
||||
|
@ -2186,6 +2188,7 @@ CREATE TABLE IF NOT EXISTS `tautoconfig` (
|
|||
`name` varchar(100) NOT NULL,
|
||||
`order` int(11) NOT NULL DEFAULT '0',
|
||||
`description` text,
|
||||
`disabled` TINYINT,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access HA cluster'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -17,7 +17,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'AR') && ! check_acl($config['id_user'], 0, 'AW')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Inventory'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -27,7 +27,7 @@ $group = $id_grupo;
|
|||
|
||||
if (! check_acl($config['id_user'], $group, 'AW', $id_agente)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access agent manager'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -154,7 +154,10 @@ ui_require_javascript_file('openlayers.pandora');
|
|||
$new_agent = (empty($id_agente)) ? true : false;
|
||||
|
||||
if (! isset($id_agente) && ! $new_agent) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access agent manager witout an agent');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access agent manager witout an agent'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ if (!check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
|||
|
||||
if (!$access_granted) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access agent manager'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -198,7 +198,10 @@ if ($create_agent) {
|
|||
$grupo = (int) get_parameter_post('grupo');
|
||||
|
||||
if ((bool) check_acl($config['id_user'], $grupo, 'AW') === false) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access agent manager');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access agent manager'
|
||||
);
|
||||
include $config['homedir'].'/general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
@ -352,7 +355,7 @@ if ($create_agent) {
|
|||
|
||||
$unsafe_alias = io_safe_output($alias);
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Created agent '.$unsafe_alias,
|
||||
false,
|
||||
true,
|
||||
|
@ -1243,7 +1246,7 @@ if ($update_agent) {
|
|||
|
||||
ui_print_success_message(__('Successfully updated'));
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Updated agent '.io_safe_output($alias),
|
||||
false,
|
||||
false,
|
||||
|
@ -1259,7 +1262,10 @@ if ($id_agente) {
|
|||
// This has been done in the beginning of the page, but if an agent was created, this id might change.
|
||||
$id_grupo = agents_get_agent_group($id_agente);
|
||||
if (!check_acl_one_of_groups($config['id_user'], $all_groups, 'AW') && !check_acl_one_of_groups($config['id_user'], $all_groups, 'AD')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to admin an agent without access');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to admin an agent without access'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
@ -1319,7 +1325,7 @@ if ($update_module || $create_module) {
|
|||
|
||||
if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to create a module without admin rights'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -1803,7 +1809,7 @@ if ($update_module) {
|
|||
$edit_module = true;
|
||||
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
"Fail to try update module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
|
@ -1827,7 +1833,7 @@ if ($update_module) {
|
|||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
"Updated module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias']),
|
||||
false,
|
||||
false,
|
||||
|
@ -1989,7 +1995,7 @@ if ($create_module) {
|
|||
$edit_module = true;
|
||||
$moduletype = $id_module;
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
"Fail to try added module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
|
@ -2014,7 +2020,7 @@ if ($create_module) {
|
|||
|
||||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
"Added module '".io_safe_output($name)."' for agent ".io_safe_output($agent['alias']),
|
||||
false,
|
||||
true,
|
||||
|
@ -2049,12 +2055,12 @@ if ($enable_module) {
|
|||
$success_action = $result;
|
||||
if ($result === NOERR) {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Enable #'.$enable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Fail to enable #'.$enable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
}
|
||||
|
@ -2084,12 +2090,12 @@ if ($disable_module) {
|
|||
|
||||
if ($result === NOERR) {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Disable #'.$disable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Module management',
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Fail to disable #'.$disable_module.' | '.$module_name.' | '.io_safe_output($agent['alias'])
|
||||
);
|
||||
}
|
||||
|
@ -2133,7 +2139,7 @@ if ($delete_module) {
|
|||
|
||||
if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to delete a module without admin rights'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -2143,7 +2149,7 @@ if ($delete_module) {
|
|||
|
||||
if (empty($module_data) || $id_borrar_modulo < 1) {
|
||||
db_pandora_audit(
|
||||
'HACK Attempt',
|
||||
AUDIT_LOG_HACK_ATTEMPT,
|
||||
'Expected variable from form is not correct'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -2165,7 +2171,7 @@ if ($delete_module) {
|
|||
|
||||
$agent = db_get_row('tagente', 'id_agente', $id_agente);
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
"Deleted module '".io_safe_output($module_data['nombre'])."' for agent ".io_safe_output($agent['alias'])
|
||||
);
|
||||
}
|
||||
|
@ -2206,12 +2212,12 @@ if (!empty($duplicate_module)) {
|
|||
|
||||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
"Duplicate module '".$id_duplicate_module."' for agent ".$agent['alias'].' with the new id for clon '.$result
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
"Fail to try duplicate module '".$id_duplicate_module."' for agent ".$agent['alias']
|
||||
);
|
||||
}
|
||||
|
@ -2225,9 +2231,15 @@ if ($enable_module) {
|
|||
|
||||
if ($result === NOERR) {
|
||||
enterprise_hook('config_agents_enable_module_conf', [$id_agente, $enable_module]);
|
||||
db_pandora_audit('Module management', 'Enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Module management', 'Fail to enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Fail to enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
|
@ -2244,9 +2256,15 @@ if ($disable_module) {
|
|||
|
||||
if ($result === NOERR) {
|
||||
enterprise_hook('config_agents_disable_module_conf', [$id_agente, $disable_module]);
|
||||
db_pandora_audit('Module management', 'Disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Module management', 'Fail to disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_MODULE_MANAGEMENT,
|
||||
'Fail to disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']
|
||||
);
|
||||
}
|
||||
|
||||
ui_print_result_message(
|
||||
|
|
|
@ -16,7 +16,10 @@ global $config;
|
|||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Group Management2');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ check_login();
|
|||
|
||||
if (!check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -58,7 +58,7 @@ if (! check_acl(
|
|||
)
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access agent manager'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -158,7 +158,7 @@ if ($agent_to_delete) {
|
|||
} else {
|
||||
// NO permissions.
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
"Trying to delete agent \'".agents_get_name($id_agente)."\'"
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -219,12 +219,12 @@ if ($enable_agent) {
|
|||
]
|
||||
);
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Enable '.$alias
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Fail to enable '.$alias
|
||||
);
|
||||
}
|
||||
|
@ -262,12 +262,12 @@ if ($disable_agent) {
|
|||
);
|
||||
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Disable '.$alias
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Fail to disable '.$alias
|
||||
);
|
||||
}
|
||||
|
|
|
@ -144,7 +144,7 @@ if ($prediction_available) {
|
|||
$modules['predictionserver'] = __('Create a new prediction server module');
|
||||
}
|
||||
|
||||
if (is_metaconsole() === true || $web_available === '1') {
|
||||
if (is_metaconsole() === true || $web_available >= '1') {
|
||||
$modules['webserver'] = __('Create a new web Server module');
|
||||
}
|
||||
|
||||
|
@ -238,7 +238,7 @@ echo '</table>';
|
|||
if (!$config['disable_help']) {
|
||||
echo '<div class="disable_help">';
|
||||
echo '<strong>';
|
||||
echo "<a class='color-black-grey invert_filter' target='_blank' href='http://pandorafms.com/Library/Library/'>".__('Get more modules on Monitoring Library').'</a>';
|
||||
echo "<a class='color-black-grey invert_filter' target='_blank' href='https://pandorafms.com/Library/Library/'>".__('Get more modules on Monitoring Library').'</a>';
|
||||
echo '</strong>';
|
||||
echo '</div>';
|
||||
}
|
||||
|
@ -261,7 +261,7 @@ if ($module_action === 'delete') {
|
|||
|
||||
if (! check_acl_one_of_groups($config['id_user'], $all_groups, 'AW')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to delete a module without admin rights'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -549,7 +549,7 @@ if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
|
|||
);
|
||||
|
||||
db_pandora_audit(
|
||||
'Agent management',
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Re-link module '.$id_agent_module
|
||||
);
|
||||
}
|
||||
|
@ -562,7 +562,10 @@ if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
|
|||
__('Module will be unlinked in the next application')
|
||||
);
|
||||
|
||||
db_pandora_audit('Agent management', 'Unlink module '.$id_agent_module);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_AGENT_MANAGEMENT,
|
||||
'Unlink module '.$id_agent_module
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -582,7 +585,7 @@ if ($__code_from !== 'policies') {
|
|||
|
||||
if (!$tag_acl) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access agent manager'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -73,7 +73,7 @@ if ($edit_networkmap) {
|
|||
|
||||
if (!$networkmap_write && !$networkmap_manage) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access networkmap'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -38,7 +38,7 @@ $agent_w = check_acl($config['id_user'], 0, 'AW');
|
|||
$access = ($agent_d == true) ? 'AD' : (($agent_w == true) ? 'AW' : 'AD');
|
||||
if (!$agent_d && !$agent_w) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -170,7 +170,7 @@ if ($delete_downtime_agent === 1) {
|
|||
|| !in_array($downtime_group, $user_groups_ad)
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -189,7 +189,7 @@ if ($delete_downtime_agent === 1) {
|
|||
|| !in_array($agent_group, $user_groups_ad)
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -266,7 +266,7 @@ if ($create_downtime || $update_downtime) {
|
|||
// Check AD permission on new downtime.
|
||||
if (!in_array($id_group, $user_groups_ad)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -324,7 +324,7 @@ if ($create_downtime || $update_downtime) {
|
|||
// Check AD permission on OLD downtime.
|
||||
if (empty($old_downtime) || !in_array($old_downtime['id_group'], $user_groups_ad)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -334,7 +334,7 @@ if ($create_downtime || $update_downtime) {
|
|||
// Check AD permission on NEW downtime group.
|
||||
if (!in_array($id_group, $user_groups_ad)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -498,7 +498,7 @@ if ($id_downtime > 0) {
|
|||
// Permission check for the downtime with the AD user groups
|
||||
if (empty($result) || !in_array($result['id_group'], $user_groups_ad)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -1093,7 +1093,7 @@ function insert_downtime_agent($id_downtime, $user_groups_ad)
|
|||
|| !in_array($downtime_group, $user_groups_ad)
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -23,7 +23,10 @@ require_once '../../include/functions_reporting.php';
|
|||
|
||||
$config['id_user'] = $_SESSION['id_usuario'];
|
||||
if (! check_acl($config['id_user'], 0, 'AR')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access downtime scheduler');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ $access = ($read_permisson == true) ? 'AR' : (($write_permisson == true) ? 'AD'
|
|||
|
||||
if (! $read_permisson && !$manage_permisson) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -70,7 +70,7 @@ if ($stop_downtime) {
|
|||
// Check AD permission on the downtime
|
||||
if (empty($downtime) || (! check_acl($config['id_user'], $downtime['id_group'], 'AD') && ! check_acl($config['id_user'], $downtime['id_group'], 'AW'))) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -94,7 +94,7 @@ if ($delete_downtime) {
|
|||
// Check AD permission on the downtime
|
||||
if (empty($downtime) || (! check_acl($config['id_user'], $downtime['id_group'], 'AD') && ! check_acl($config['id_user'], $downtime['id_group'], 'AW'))) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access downtime scheduler'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -20,7 +20,7 @@ if (! check_acl($config['id_user'], 0, 'AR')
|
|||
&& ! check_acl($config['id_user'], 0, 'AM')
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Agent Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -42,7 +42,7 @@ enterprise_hook('open_meta_frame');
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert actions'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -104,7 +104,7 @@ if ($copy_action) {
|
|||
// Then action group have to be in his own groups.
|
||||
if (!$is_in_group) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -115,17 +115,14 @@ if ($copy_action) {
|
|||
|
||||
$result = alerts_clone_alert_action($id, $al_action['id_group']);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'Command management',
|
||||
'Duplicate alert action '.$id.' clone to '.$result
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Command management',
|
||||
'Fail try to duplicate alert action '.$id
|
||||
);
|
||||
}
|
||||
$auditMessage = ((bool) $result === true)
|
||||
? sprintf('Duplicate alert action %s clone to %s', $id, $result)
|
||||
: sprintf('Fail try to duplicate alert action %s', $id);
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
$auditMessage
|
||||
);
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
|
@ -145,7 +142,7 @@ if ($delete_action) {
|
|||
|
||||
if (!check_acl_restricted_all($config['id_user'], $al_action['id_group'], 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -158,7 +155,7 @@ if ($delete_action) {
|
|||
// Then must have "PM" access privileges.
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -182,7 +179,7 @@ if ($delete_action) {
|
|||
// Then action group have to be in his own groups.
|
||||
if (!$is_in_group) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -194,17 +191,14 @@ if ($delete_action) {
|
|||
|
||||
$result = alerts_delete_alert_action($id);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'Command management',
|
||||
'Delete alert action #'.$id
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Command management',
|
||||
'Fail try to delete alert action #'.$id
|
||||
);
|
||||
}
|
||||
$auditMessage = ((bool) $result === true)
|
||||
? sprintf('Delete alert action #%s', $id)
|
||||
: sprintf('Fail try to delete alert action #%s', $id);
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
$auditMessage
|
||||
);
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
|
|
|
@ -21,7 +21,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -538,9 +538,20 @@ if ($create_command) {
|
|||
}
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Command management', 'Create alert command #'.$result, false, false, $info);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Create alert command #'.$result,
|
||||
false,
|
||||
false,
|
||||
$info
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Command management', 'Fail try to create alert command', false, false);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail try to create alert command',
|
||||
false,
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
// Show errors.
|
||||
|
@ -570,7 +581,7 @@ if ($delete_command) {
|
|||
// Internal commands cannot be deleted.
|
||||
if (alerts_get_alert_command_internal($id)) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -579,11 +590,14 @@ if ($delete_command) {
|
|||
|
||||
$result = alerts_delete_alert_command($id);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Command management', 'Delete alert command #'.$id);
|
||||
} else {
|
||||
db_pandora_audit('Command management', 'Fail try to delete alert command #'.$id);
|
||||
}
|
||||
$auditMessage = ((bool) $result === true)
|
||||
? sprintf('Delete alert command #%s', $id)
|
||||
: sprintf('Fail try to delete alert command #%s', $id);
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
$auditMessage
|
||||
);
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
|
|
|
@ -18,7 +18,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'LW')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -22,7 +22,7 @@ if (! check_acl($config['id_user'], 0, 'LW')
|
|||
&& ! check_acl($config['id_user'], 0, 'LM')
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -21,7 +21,7 @@ if (! check_acl($config['id_user'], 0, 'LW')
|
|||
&& ! check_acl($config['id_user'], 0, 'LM')
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -146,7 +146,7 @@ if ($create_alert) {
|
|||
$unsafe_agent_alias = io_safe_output($agent_alias);
|
||||
if ($id) {
|
||||
db_pandora_audit(
|
||||
'Alert management',
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
"Added alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'",
|
||||
false,
|
||||
false,
|
||||
|
@ -154,7 +154,7 @@ if ($create_alert) {
|
|||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Alert management',
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
"Fail Added alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
|
||||
);
|
||||
}
|
||||
|
@ -217,12 +217,12 @@ if ($delete_alert) {
|
|||
|
||||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'Alert management',
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
"Deleted alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Alert management',
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
"Fail to deleted alert '$unsafe_alert_template_name' for module '$unsafe_module_name' in agent '$unsafe_agent_alias'"
|
||||
);
|
||||
}
|
||||
|
@ -255,9 +255,15 @@ if ($add_action) {
|
|||
$result = alerts_add_alert_agent_module_action($id_alert_module, $id_action, $values);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Alert management', 'Add action '.$id_action.' in alert '.$id_alert_module);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Add action '.$id_action.' in alert '.$id_alert_module
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Alert management', 'Fail to add action '.$id_action.' in alert '.$id_alert_module);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail to add action '.$id_action.' in alert '.$id_alert_module
|
||||
);
|
||||
}
|
||||
|
||||
$messageAction = ui_print_result_message(
|
||||
|
@ -290,9 +296,15 @@ if ($update_action) {
|
|||
|
||||
$result = alerts_update_alert_agent_module_action($id_module_action, $values);
|
||||
if ($result) {
|
||||
db_pandora_audit('Alert management', 'Update action '.$id_action.' in alert '.$id_alert_module);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Update action '.$id_action.' in alert '.$id_alert_module
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Alert management', 'Fail to updated action '.$id_action.' in alert '.$id_alert_module);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail to updated action '.$id_action.' in alert '.$id_alert_module
|
||||
);
|
||||
}
|
||||
|
||||
$messageAction = ui_print_result_message(
|
||||
|
@ -311,9 +323,15 @@ if ($delete_action) {
|
|||
$result = alerts_delete_alert_agent_module_action($id_action);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Alert management', 'Delete action '.$id_action.' in alert '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Delete action '.$id_action.' in alert '.$id_alert
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Alert management', 'Fail to delete action '.$id_action.' in alert '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail to delete action '.$id_action.' in alert '.$id_alert
|
||||
);
|
||||
}
|
||||
|
||||
$messageAction = ui_print_result_message(
|
||||
|
@ -332,9 +350,15 @@ if ($enable_alert) {
|
|||
$result = alerts_agent_module_disable($id_alert, false);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Alert management', 'Enable '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Enable '.$id_alert
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Alert management', 'Fail to enable '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail to enable '.$id_alert
|
||||
);
|
||||
}
|
||||
|
||||
$messageAction = ui_print_result_message(
|
||||
|
@ -353,9 +377,15 @@ if ($disable_alert) {
|
|||
$result = alerts_agent_module_disable($id_alert, true);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Alert management', 'Disable '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Disable '.$id_alert
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Alert management', 'Fail to disable '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail to disable '.$id_alert
|
||||
);
|
||||
}
|
||||
|
||||
$messageAction = ui_print_result_message(
|
||||
|
@ -374,9 +404,15 @@ if ($standbyon_alert) {
|
|||
$result = alerts_agent_module_standby($id_alert, true);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Alert management', 'Standby '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Standby '.$id_alert
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Alert management', 'Fail to standby '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail to standby '.$id_alert
|
||||
);
|
||||
}
|
||||
|
||||
$messageAction = ui_print_result_message(
|
||||
|
@ -395,9 +431,15 @@ if ($standbyoff_alert) {
|
|||
$result = alerts_agent_module_standby($id_alert, false);
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Alert management', 'Standbyoff '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Standbyoff '.$id_alert
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit('Alert management', 'Fail to standbyoff '.$id_alert);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail to standbyoff '.$id_alert
|
||||
);
|
||||
}
|
||||
|
||||
$messageAction = ui_print_result_message(
|
||||
|
|
|
@ -108,7 +108,7 @@ if (is_ajax()) {
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -118,12 +118,7 @@ if (! check_acl($config['id_user'], 0, 'LM')) {
|
|||
$update_template = (bool) get_parameter('update_template');
|
||||
$delete_template = (bool) get_parameter('delete_template');
|
||||
$pure = get_parameter('pure', 0);
|
||||
|
||||
if (defined('METACONSOLE')) {
|
||||
$sec = 'advanced';
|
||||
} else {
|
||||
$sec = 'galertas';
|
||||
}
|
||||
$sec = (is_metaconsole() === true) ? 'advanced' : 'galertas';
|
||||
|
||||
// This prevents to duplicate the header in
|
||||
// case delete_templete action is performed.
|
||||
|
@ -175,7 +170,7 @@ if ($delete_template) {
|
|||
if ($al_template['id_group'] == 0) {
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -217,7 +212,7 @@ if ($delete_template) {
|
|||
}
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -242,12 +237,12 @@ if ($delete_template) {
|
|||
|
||||
if ($result) {
|
||||
db_pandora_audit(
|
||||
'Template alert management',
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Delete alert template #'.$id
|
||||
);
|
||||
} else {
|
||||
db_pandora_audit(
|
||||
'Template alert management',
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
'Fail try to delete alert template #'.$id
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,24 +1,39 @@
|
|||
<?php
|
||||
/**
|
||||
* Alerts details for agent.
|
||||
*
|
||||
* @category Alert
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2022 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.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2021 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.
|
||||
// Load global vars
|
||||
// Load global vars.
|
||||
global $config;
|
||||
|
||||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert View (In management section)'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -28,7 +43,7 @@ if (! check_acl($config['id_user'], 0, 'LM')) {
|
|||
enterprise_include_once('include/functions_policies.php');
|
||||
|
||||
$id_alert = get_parameter('id_alert', 0);
|
||||
// ID given as parameter
|
||||
// ID given as parameter.
|
||||
$alert = alerts_get_alert_agent_module($id_alert);
|
||||
$template = alerts_get_alert_template($alert['id_alert_template']);
|
||||
$actions = alerts_get_alert_agent_module_actions($id_alert);
|
||||
|
@ -36,19 +51,27 @@ $agent_alias = modules_get_agentmodule_agent_alias($alert['id_agent_module']);
|
|||
$agent = modules_get_agentmodule_agent($alert['id_agent_module']);
|
||||
$module_name = modules_get_agentmodule_name($alert['id_agent_module']);
|
||||
|
||||
// Default action
|
||||
// Default action.
|
||||
$default_action = $template['id_alert_action'];
|
||||
if ($default_action != 0) {
|
||||
$default_action = alerts_get_alert_action($default_action);
|
||||
$default_action['name'] .= ' '.'('.__('Default').')';
|
||||
$default_action['name'] .= ' ('.__('Default').')';
|
||||
$default_action['default'] = 1;
|
||||
$default_action['module_action_threshold'] = '0';
|
||||
}
|
||||
|
||||
// Header
|
||||
ui_print_page_header(__('Alert details'), 'images/op_alerts.png', false, '', false, '');
|
||||
// Header.
|
||||
ui_print_page_header(
|
||||
__('Alert details'),
|
||||
'images/op_alerts.png',
|
||||
false,
|
||||
'',
|
||||
false,
|
||||
''
|
||||
);
|
||||
|
||||
// TABLE DETAILS
|
||||
// TABLE DETAILS.
|
||||
$table_details = new stdClass;
|
||||
$table_details->class = 'databox';
|
||||
$table_details->width = '100%';
|
||||
$table_details->size = [];
|
||||
|
@ -103,7 +126,7 @@ $data[1] = '<span title="'.$priorities[$template['priority']].'" class="'.get_pr
|
|||
$table_details->data[] = $data;
|
||||
|
||||
$data[0] = __('Stand by');
|
||||
$data[1] = $alert['standby'] == 1 ? __('Yes') : __('No');
|
||||
$data[1] = ($alert['standby'] == 1) ? __('Yes') : __('No');
|
||||
$table_details->data[] = $data;
|
||||
|
||||
if (enterprise_installed() && $alert['id_policy_alerts'] != 0) {
|
||||
|
@ -113,7 +136,13 @@ if (enterprise_installed() && $alert['id_policy_alerts'] != 0) {
|
|||
} else {
|
||||
$img = 'images/policies_mc.png';
|
||||
|
||||
$policy = '<a href="?sec=gmodules&sec2=enterprise/godmode/policies/policies&id='.$policyInfo['id'].'">'.html_print_image($img, true, ['title' => $policyInfo['name']]).'</a>';
|
||||
$policy = '<a href="?sec=gmodules&sec2=enterprise/godmode/policies/policies&id='.$policyInfo['id'].'">';
|
||||
$policy .= html_print_image(
|
||||
$img,
|
||||
true,
|
||||
['title' => $policyInfo['name']]
|
||||
);
|
||||
$policy .= '</a>';
|
||||
}
|
||||
|
||||
$data[0] = __('Policy');
|
||||
|
@ -121,8 +150,7 @@ if (enterprise_installed() && $alert['id_policy_alerts'] != 0) {
|
|||
$table_details->data[] = $data;
|
||||
}
|
||||
|
||||
// TABLE DETAILS END
|
||||
// TABLE CONDITIONS
|
||||
$table_conditions = new stdClass;
|
||||
$table_conditions->class = 'databox';
|
||||
$table_conditions->width = '100%';
|
||||
$table_conditions->size = [];
|
||||
|
@ -155,9 +183,13 @@ switch ($template['type']) {
|
|||
|
||||
case 'max_min':
|
||||
if ($template['matches_value']) {
|
||||
$condition = __('The alert would fire when the value is between <span id="min"></span> and <span id="max"></span>');
|
||||
$condition = __(
|
||||
'The alert would fire when the value is between <span id="min"></span> and <span id="max"></span>'
|
||||
);
|
||||
} else {
|
||||
$condition = __('The alert would fire when the value is not between <span id="min"></span> and <span id="max"></span>');
|
||||
$condition = __(
|
||||
'The alert would fire when the value is not between <span id="min"></span> and <span id="max"></span>'
|
||||
);
|
||||
}
|
||||
|
||||
$condition = str_replace('<span id="min"></span>', $template['min_value'], $condition);
|
||||
|
@ -200,111 +232,27 @@ switch ($template['type']) {
|
|||
|
||||
case 'always':
|
||||
$condition = __('Always');
|
||||
break;
|
||||
|
||||
default:
|
||||
// Not possible.
|
||||
break;
|
||||
}
|
||||
|
||||
$data[0] = $condition;
|
||||
|
||||
$table_conditions->data[] = $data;
|
||||
|
||||
// DAYS
|
||||
$table_days->class = 'databox alert_days';
|
||||
$table_days->width = '100%';
|
||||
$table_days->size = [];
|
||||
$table_days->data = [];
|
||||
$table_days->style = [];
|
||||
$table_days->styleTable = 'padding: 1px; margin: 0px; text-align: center; height: 80px;';
|
||||
$table_days->head[0] = __('Mon');
|
||||
$table_days->head[1] = __('Tue');
|
||||
$table_days->head[2] = __('Wed');
|
||||
$table_days->head[3] = __('Thu');
|
||||
$table_days->head[4] = __('Fri');
|
||||
$table_days->head[5] = __('Sat');
|
||||
$table_days->head[6] = __('Sun');
|
||||
$table_days->data[0] = array_fill(0, 7, html_print_image('images/blade.png', true));
|
||||
$table_conditions->colspan[1][0] = 2;
|
||||
$schedule = io_safe_output(
|
||||
$template['schedule']
|
||||
);
|
||||
|
||||
$days = [];
|
||||
if ($template['monday']) {
|
||||
$table_days->data[0][0] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
if ($template['tuesday']) {
|
||||
$table_days->data[0][1] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
if ($template['wednesday']) {
|
||||
$table_days->data[0][2] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
if ($template['thursday']) {
|
||||
$table_days->data[0][3] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
if ($template['friday']) {
|
||||
$table_days->data[0][4] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
if ($template['saturday']) {
|
||||
$table_days->data[0][5] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
if ($template['sunday']) {
|
||||
$table_days->data[0][6] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
$data[0] = html_print_table($table_days, true);
|
||||
unset($table_days);
|
||||
|
||||
// TIME
|
||||
$table_time->class = 'databox alert_time';
|
||||
$table_time->width = '100%';
|
||||
$table_time->size = [];
|
||||
$table_time->data = [];
|
||||
$table_time->style = [];
|
||||
$table_time->styleTable = 'padding: 1px; margin: 0px; text-align: center; height: 80px; width: 100%;';
|
||||
|
||||
// $data[0] = __('Time from') . ' / ' . __('Time to');
|
||||
if ($template['time_from'] == $template['time_to']) {
|
||||
$table_time->head[0] = '00:00:00<br>-<br>23:59:59';
|
||||
$table_time->data[0][0] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
} else {
|
||||
$from_array = explode(':', $template['time_from']);
|
||||
$from = ($from_array[0] * SECONDS_1HOUR + $from_array[1] * SECONDS_1MINUTE + $from_array[2]);
|
||||
$to_array = explode(':', $template['time_to']);
|
||||
$to = ($to_array[0] * SECONDS_1HOUR + $to_array[1] * SECONDS_1MINUTE + $to_array[2]);
|
||||
if ($to > $from) {
|
||||
if ($template['time_from'] != '00:00:00') {
|
||||
$table_time->head[0] = '00:00:00<br>-<br>'.$template['time_from'];
|
||||
$table_time->data[0][0] = html_print_image('images/blade.png', true);
|
||||
}
|
||||
|
||||
$table_time->head[1] = $template['time_from'].'<br>-<br>'.$template['time_to'];
|
||||
$table_time->data[0][1] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
|
||||
if ($template['time_to'] != '23:59:59') {
|
||||
$table_time->head[2] = $template['time_to'].'<br>-<br>23:59:59';
|
||||
$table_time->data[0][2] = html_print_image('images/blade.png', true);
|
||||
}
|
||||
} else {
|
||||
if ($template['time_to'] != '00:00:00') {
|
||||
$table_time->head[0] = '00:00:00<br>-<br>'.$template['time_to'];
|
||||
$table_time->data[0][0] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
|
||||
$table_time->head[1] = $template['time_to'].'<br>-<br>'.$template['time_from'];
|
||||
$table_time->data[0][1] = html_print_image('images/blade.png', true, ['class' => 'invert_filter']);
|
||||
|
||||
if ($template['time_from'] != '23:59:59') {
|
||||
$table_time->head[2] = $template['time_from'].'<br>-<br>23:59:59';
|
||||
$table_time->data[0][2] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
}
|
||||
}
|
||||
|
||||
$data[1] = $template['time_from'].' / '.$template['time_to'];
|
||||
}
|
||||
|
||||
$data[1] = html_print_table($table_time, true);
|
||||
unset($table_time);
|
||||
$data[0] = '';
|
||||
$data[0] .= html_print_input_hidden('schedule', $schedule, true);
|
||||
$data[0] .= '<div id="calendar_map"></div>';
|
||||
|
||||
$data[1] = '';
|
||||
$table_conditions->data[] = $data;
|
||||
|
||||
$data[0] = __('Use special days list');
|
||||
|
@ -319,7 +267,8 @@ $data[0] = __('Number of alerts').' ('.__('Min').'/'.__('Max').')';
|
|||
$data[1] = $template['min_alerts'].'/'.$template['max_alerts'];
|
||||
$table_conditions->data[] = $data;
|
||||
|
||||
// TABLE CONDITIONS END
|
||||
// TABLE CONDITIONS END.
|
||||
$table = new stdClass;
|
||||
$table->class = 'alert_list databox';
|
||||
$table->width = '98%';
|
||||
$table->size = [];
|
||||
|
@ -339,7 +288,8 @@ unset($table);
|
|||
|
||||
$actions = alerts_get_actions_escalation($actions, $default_action);
|
||||
|
||||
// ESCALATION
|
||||
// ESCALATION.
|
||||
$table = new stdClass;
|
||||
$table->class = 'alert_list databox alternate alert_escalation';
|
||||
$table->width = '98%';
|
||||
$table->size = [];
|
||||
|
@ -354,19 +304,33 @@ $table->style[0] = 'font-weight: bold; text-align: left;';
|
|||
if (count($actions) == 1 && isset($actions[0])) {
|
||||
$table->head[1] = __('Every time that the alert is fired');
|
||||
$table->data[0][0] = $actions[0]['name'];
|
||||
$table->data[0][1] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
$table->data[0][1] = html_print_image(
|
||||
'images/tick.png',
|
||||
true,
|
||||
['class' => 'invert_filter']
|
||||
);
|
||||
} else {
|
||||
foreach ($actions as $kaction => $action) {
|
||||
$table->data[$kaction][0] = $action['name'];
|
||||
if ($kaction == 0) {
|
||||
$table->data[$kaction][0] .= ui_print_help_tip(__('The default actions will be executed every time that the alert is fired and no other action is executed'), true);
|
||||
if ((int) $kaction === 0) {
|
||||
$table->data[$kaction][0] .= ui_print_help_tip(
|
||||
__('The default actions will be executed every time that the alert is fired and no other action is executed'),
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
foreach ($action['escalation'] as $k => $v) {
|
||||
if ($v > 0) {
|
||||
$table->data[$kaction][$k] = html_print_image('images/tick.png', true, ['class' => 'invert_filter']);
|
||||
$table->data[$kaction][$k] = html_print_image(
|
||||
'images/tick.png',
|
||||
true,
|
||||
['class' => 'invert_filter']
|
||||
);
|
||||
} else {
|
||||
$table->data[$kaction][$k] = html_print_image('images/blade.png', true);
|
||||
$table->data[$kaction][$k] = html_print_image(
|
||||
'images/blade.png',
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
if (count($table->head) <= count($action['escalation'])) {
|
||||
|
@ -382,12 +346,16 @@ if (count($actions) == 1 && isset($actions[0])) {
|
|||
}
|
||||
}
|
||||
|
||||
$action_threshold = $action['module_action_threshold'] > 0 ? $action['module_action_threshold'] : $action['action_threshold'];
|
||||
$action_threshold = ($action['module_action_threshold'] > 0) ? $action['module_action_threshold'] : $action['action_threshold'];
|
||||
|
||||
if ($action_threshold == 0) {
|
||||
$table->data[$kaction][($k + 1)] = __('No');
|
||||
} else {
|
||||
$table->data[$kaction][($k + 1)] = human_time_description_raw($action_threshold, true, 'tiny');
|
||||
$table->data[$kaction][($k + 1)] = human_time_description_raw(
|
||||
$action_threshold,
|
||||
true,
|
||||
'tiny'
|
||||
);
|
||||
}
|
||||
|
||||
$table->head[($k + 1)] = __('Threshold');
|
||||
|
@ -397,7 +365,8 @@ if (count($actions) == 1 && isset($actions[0])) {
|
|||
html_print_table($table);
|
||||
unset($table);
|
||||
echo '</div>';
|
||||
// ESCALATION TABLE
|
||||
// ESCALATION TABLE.
|
||||
$table = new stdClass;
|
||||
$table->class = 'alert_list databox';
|
||||
$table->width = '98%';
|
||||
$table->size = [];
|
||||
|
@ -405,7 +374,7 @@ $table->head = [];
|
|||
$table->data = [];
|
||||
$table->rowstyle[1] = 'font-weight: bold;';
|
||||
|
||||
if ($default_action != 0) {
|
||||
if ((int) $default_action != 0) {
|
||||
$actions_select[0] = $default_action['name'];
|
||||
}
|
||||
|
||||
|
@ -416,17 +385,43 @@ foreach ($actions as $kaction => $action) {
|
|||
$table->data[0][0] = __('Select the desired action and mode to see the Firing/Recovery fields for this action');
|
||||
$table->colspan[0][0] = 2;
|
||||
|
||||
$table->data[1][0] = __('Action').'<br>'.html_print_select($actions_select, 'firing_action_select', -1, '', __('Select the action'), -1, true, false, false);
|
||||
$table->data[1][0] = __('Action');
|
||||
$table->data[1][0] .= '<br>';
|
||||
$table->data[1][0] .= html_print_select(
|
||||
$actions_select,
|
||||
'firing_action_select',
|
||||
-1,
|
||||
'',
|
||||
__('Select the action'),
|
||||
-1,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
|
||||
$modes = [];
|
||||
$modes['firing'] = __('Firing');
|
||||
$modes['recovering'] = __('Recovering');
|
||||
|
||||
$table->data[1][1] = '<div class="action_details invisible" >'.__('Mode').'<br>'.html_print_select($modes, 'modes', 'firing', '', '', 0, true, false, false).'</div>';
|
||||
$table->data[1][1] = '<div class="action_details invisible" >';
|
||||
$table->data[1][1] .= __('Mode');
|
||||
$table->data[1][1] .= '<br>';
|
||||
$table->data[1][1] .= html_print_select(
|
||||
$modes,
|
||||
'modes',
|
||||
'firing',
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
$table->data[1][1] .= '</div>';
|
||||
|
||||
html_print_table($table);
|
||||
unset($table);
|
||||
|
||||
$table = new stdClass;
|
||||
$table->class = 'alert_list databox alternate';
|
||||
$table->width = '98%';
|
||||
$table->size = [];
|
||||
|
@ -437,13 +432,33 @@ $table->style[1] = 'width: 30%;';
|
|||
$table->style[2] = 'width: 30%;';
|
||||
$table->style[3] = 'font-weight: bold; width: 30%;';
|
||||
|
||||
$table->title = __('Firing fields').ui_print_help_tip(__('Fields passed to the command executed by this action when the alert is fired'), true);
|
||||
$table->title = __('Firing fields');
|
||||
$table->title .= ui_print_help_tip(
|
||||
__('Fields passed to the command executed by this action when the alert is fired'),
|
||||
true
|
||||
);
|
||||
|
||||
$table->head[0] = __('Field').ui_print_help_tip(__('Fields configured on the command associated to the action'), true);
|
||||
$table->head[1] = __('Template fields').ui_print_help_tip(__('Triggering fields configured in template'), true);
|
||||
$table->head[2] = __('Action fields').ui_print_help_tip(__('Triggering fields configured in action'), true);
|
||||
$table->head[0] = __('Field');
|
||||
$table->head[0] .= ui_print_help_tip(
|
||||
__('Fields configured on the command associated to the action'),
|
||||
true
|
||||
);
|
||||
$table->head[1] = __('Template fields');
|
||||
$table->head[1] .= ui_print_help_tip(
|
||||
__('Triggering fields configured in template'),
|
||||
true
|
||||
);
|
||||
$table->head[2] = __('Action fields');
|
||||
$table->head[2] .= ui_print_help_tip(
|
||||
__('Triggering fields configured in action'),
|
||||
true
|
||||
);
|
||||
|
||||
$table->head[3] = __('Executed on firing').ui_print_help_tip(__('Fields used on execution when the alert is fired'), true);
|
||||
$table->head[3] = __('Executed on firing');
|
||||
$table->head[3] .= ui_print_help_tip(
|
||||
__('Fields used on execution when the alert is fired'),
|
||||
true
|
||||
);
|
||||
|
||||
$firing_fields = [];
|
||||
|
||||
|
@ -456,14 +471,12 @@ foreach ($actions as $kaction => $action) {
|
|||
$descriptions = json_decode($command['fields_descriptions'], true);
|
||||
|
||||
foreach ($descriptions as $kdesc => $desc) {
|
||||
if (empty($desc)) {
|
||||
// continue;
|
||||
}
|
||||
|
||||
$field = 'field'.($kdesc + 1);
|
||||
$data = [];
|
||||
$data[0] = $firing_fields[$kaction]['description'][$field] = $desc;
|
||||
if (!empty($data[0])) {
|
||||
$data[0] = $desc;
|
||||
$firing_fields[$kaction]['description'][$field] = $desc;
|
||||
|
||||
if (empty($data[0]) === false) {
|
||||
$data[0] = '<b>'.$data[0].'</b><br>';
|
||||
}
|
||||
|
||||
|
@ -473,12 +486,14 @@ foreach ($actions as $kaction => $action) {
|
|||
).')</span>';
|
||||
$data[1] = $template[$field];
|
||||
$data[2] = $action[$field];
|
||||
$data[3] = $firing_fields[$kaction]['value'][$field] = empty($action[$field]) ? $template[$field] : $action[$field];
|
||||
$data[3] = (empty($action[$field]) === true) ? $template[$field] : $action[$field];
|
||||
|
||||
$firing_fields[$kaction]['value'][$field] = (empty($action[$field]) === true) ? $template[$field] : $action[$field];
|
||||
|
||||
$first_level = $template[$field];
|
||||
$second_level = $action[$field];
|
||||
if (!empty($second_level) || !empty($first_level)) {
|
||||
if (empty($second_level)) {
|
||||
if (empty($second_level) === false || empty($first_level) === false) {
|
||||
if (empty($second_level) === false) {
|
||||
$table->cellclass[count($table->data)][1] = 'used_field';
|
||||
$table->cellclass[count($table->data)][2] = 'empty_field';
|
||||
} else {
|
||||
|
@ -493,7 +508,7 @@ foreach ($actions as $kaction => $action) {
|
|||
|
||||
$table->rowclass[] = 'firing_action firing_action_'.$kaction;
|
||||
|
||||
if ($command_preview != 'Internal type') {
|
||||
if ($command_preview !== 'Internal type') {
|
||||
$command_preview = str_replace('_'.$field.'_', $data[3], $command_preview);
|
||||
}
|
||||
}
|
||||
|
@ -504,20 +519,32 @@ foreach ($actions as $kaction => $action) {
|
|||
echo '<div class="mode_table mode_table_firing action_details invisible w100p">';
|
||||
|
||||
html_print_table($table);
|
||||
unset($table);
|
||||
|
||||
foreach ($actions as $kaction => $action) {
|
||||
echo '<div class="firing_action firing_action_'.$kaction.' invisible">';
|
||||
ui_print_info_message(['title' => __('Command preview'), 'message' => $firing_fields[$kaction]['command_preview'], 'no_close' => true]);
|
||||
ui_print_info_message(
|
||||
[
|
||||
'title' => __('Command preview'),
|
||||
'message' => $firing_fields[$kaction]['command_preview'],
|
||||
'no_close' => true,
|
||||
]
|
||||
);
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
// Firing table
|
||||
// Firing table.
|
||||
echo '<div class="mode_table mode_table_recovering action_details invisible w100p" >';
|
||||
if ($template['recovery_notify'] == 0) {
|
||||
ui_print_info_message(['title' => __('Disabled'), 'message' => __('The alert recovering is disabled on this template.'), 'no_close' => true]);
|
||||
if ((int) $template['recovery_notify'] === 0) {
|
||||
ui_print_info_message(
|
||||
[
|
||||
'title' => __('Disabled'),
|
||||
'message' => __('The alert recovering is disabled on this template.'),
|
||||
'no_close' => true,
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$table = new stdClass;
|
||||
$table->class = 'alert_list databox alternate';
|
||||
$table->width = '98%';
|
||||
$table->size = [];
|
||||
|
@ -528,13 +555,37 @@ if ($template['recovery_notify'] == 0) {
|
|||
$table->style[2] = 'width: 25%;';
|
||||
$table->style[3] = 'width: 25%;';
|
||||
$table->style[3] = 'font-weight: bold; width: 25%;';
|
||||
$table->title = __('Recovering fields').ui_print_help_tip(__('Fields passed to the command executed by this action when the alert is recovered'), true);
|
||||
$table->title = __('Recovering fields');
|
||||
$table->title .= ui_print_help_tip(
|
||||
__('Fields passed to the command executed by this action when the alert is recovered'),
|
||||
true
|
||||
);
|
||||
|
||||
$table->head[0] = __('Field').ui_print_help_tip(__('Fields configured on the command associated to the action'), true);
|
||||
$table->head[1] = __('Firing fields').ui_print_help_tip(__('Fields used on execution when the alert is fired'), true);
|
||||
$table->head[2] = __('Template recovery fields').ui_print_help_tip(__('Recovery fields configured in alert template'), true);
|
||||
$table->head[3] = __('Action recovery fields').ui_print_help_tip(__('Recovery fields configured in alert action'), true);
|
||||
$table->head[4] = __('Executed on recovery').ui_print_help_tip(__('Fields used on execution when the alert is recovered'), true);
|
||||
$table->head[0] = __('Field');
|
||||
$table->head[0] .= ui_print_help_tip(
|
||||
__('Fields configured on the command associated to the action'),
|
||||
true
|
||||
);
|
||||
$table->head[1] = __('Firing fields');
|
||||
$table->head[1] .= ui_print_help_tip(
|
||||
__('Fields used on execution when the alert is fired'),
|
||||
true
|
||||
);
|
||||
$table->head[2] = __('Template recovery fields');
|
||||
$table->head[2] .= ui_print_help_tip(
|
||||
__('Recovery fields configured in alert template'),
|
||||
true
|
||||
);
|
||||
$table->head[3] = __('Action recovery fields');
|
||||
$table->head[3] .= ui_print_help_tip(
|
||||
__('Recovery fields configured in alert action'),
|
||||
true
|
||||
);
|
||||
$table->head[4] = __('Executed on recovery');
|
||||
$table->head[4] .= ui_print_help_tip(
|
||||
__('Fields used on execution when the alert is recovered'),
|
||||
true
|
||||
);
|
||||
$table->style[4] = 'font-weight: bold;';
|
||||
|
||||
foreach ($firing_fields as $kaction => $firing) {
|
||||
|
@ -544,7 +595,7 @@ if ($template['recovery_notify'] == 0) {
|
|||
foreach ($firing['description'] as $field => $desc) {
|
||||
$data[0] = $desc;
|
||||
|
||||
if (!empty($data[0])) {
|
||||
if (empty($data[0]) === false) {
|
||||
$data[0] = '<b>'.$data[0].'</b><br>';
|
||||
}
|
||||
|
||||
|
@ -560,14 +611,14 @@ if ($template['recovery_notify'] == 0) {
|
|||
$first_level = $data[1];
|
||||
$second_level = $data[2];
|
||||
$third_level = $data[3];
|
||||
if (!empty($third_level) || !empty($second_level) || !empty($first_level)) {
|
||||
if (!empty($third_level)) {
|
||||
if (empty($third_level) === false || empty($second_level) === false || empty($first_level) === false) {
|
||||
if (empty($third_level) === false) {
|
||||
$table->cellclass[count($table->data)][1] = 'overrided_field';
|
||||
$table->cellclass[count($table->data)][2] = 'overrided_field';
|
||||
$table->cellclass[count($table->data)][3] = 'used_field';
|
||||
|
||||
$data[4] = $data[3];
|
||||
} else if (!empty($second_level)) {
|
||||
} else if (empty($second_level) === false) {
|
||||
$table->cellclass[count($table->data)][1] = 'overrided_field';
|
||||
$table->cellclass[count($table->data)][2] = 'used_field';
|
||||
$table->cellclass[count($table->data)][3] = 'empty_field';
|
||||
|
@ -578,8 +629,8 @@ if ($template['recovery_notify'] == 0) {
|
|||
$table->cellclass[count($table->data)][2] = 'empty_field';
|
||||
$table->cellclass[count($table->data)][3] = 'empty_field';
|
||||
|
||||
// All fields but field1 will have [RECOVER] prefix if no recovery fields are configured
|
||||
$data[4] = $fieldn == 1 ? $data[1] : '[RECOVER]'.$data[1];
|
||||
// All fields but field1 will have [RECOVER] prefix if no recovery fields are configured.
|
||||
$data[4] = ((int) $fieldn === 1) ? $data[1] : '[RECOVER]'.$data[1];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -588,7 +639,7 @@ if ($template['recovery_notify'] == 0) {
|
|||
|
||||
$table->rowclass[] = 'firing_action firing_action_'.$kaction;
|
||||
|
||||
if ($command_preview != 'Internal type') {
|
||||
if ($command_preview !== 'Internal type') {
|
||||
$command_preview = str_replace('_'.$field.'_', $data[4], $command_preview);
|
||||
}
|
||||
|
||||
|
@ -598,16 +649,85 @@ if ($template['recovery_notify'] == 0) {
|
|||
|
||||
html_print_table($table);
|
||||
unset($table);
|
||||
ui_print_info_message(['title' => __('Command preview'), 'message' => $command_preview, 'no_close' => true]);
|
||||
ui_print_info_message(
|
||||
[
|
||||
'title' => __('Command preview'),
|
||||
'message' => $command_preview,
|
||||
'no_close' => true,
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
// Recovering table
|
||||
|
||||
ui_require_css_file('main.min', 'include/javascript/fullcalendar/');
|
||||
ui_require_javascript_file('main.min', 'include/javascript/fullcalendar/');
|
||||
ui_require_javascript_file('pandora_fullcalendar');
|
||||
?>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
$(document).ready (function () {
|
||||
|
||||
var calendarEl = document.getElementById('calendar_map');
|
||||
if(calendarEl){
|
||||
var eventsBBDD = $("#hidden-schedule").val();
|
||||
if(eventsBBDD === '' || eventsBBDD === 'Array') {
|
||||
eventsBBDD = '';
|
||||
}
|
||||
var events = loadEventBBDD(eventsBBDD);
|
||||
|
||||
var options = {
|
||||
contentHeight: "auto",
|
||||
headerToolbar: {
|
||||
left: "",
|
||||
center: "",
|
||||
right: ''
|
||||
},
|
||||
buttonText: {},
|
||||
dayHeaderFormat: { weekday: "short" },
|
||||
initialView: "dayGridWeek",
|
||||
navLinks: false,
|
||||
selectable: true,
|
||||
selectMirror: true,
|
||||
slotDuration: "01:00:00",
|
||||
slotLabelInterval: "02:00:00",
|
||||
snapDuration: "01:00:00",
|
||||
slotMinTime: "00:00:00",
|
||||
slotMaxTime: "24:00:00",
|
||||
scrollTime: "01:00:00",
|
||||
locale: "en-GB",
|
||||
firstDay: 1,
|
||||
eventTimeFormat: {
|
||||
hour: "numeric",
|
||||
minute: "2-digit",
|
||||
hour12: false
|
||||
},
|
||||
eventColor: "#82b92e",
|
||||
editable: false,
|
||||
dayMaxEvents: 3,
|
||||
dayPopoverFormat: { weekday: "long" },
|
||||
defaultAllDay: false,
|
||||
displayEventTime: true,
|
||||
displayEventEnd: true,
|
||||
selectOverlap: false,
|
||||
eventOverlap: false,
|
||||
allDaySlot: true,
|
||||
droppable: false,
|
||||
select: false,
|
||||
selectAllow: false,
|
||||
eventAllow: false,
|
||||
eventDrop: false,
|
||||
eventDragStop: false,
|
||||
eventResize: false,
|
||||
eventMouseEnter: false,
|
||||
eventMouseLeave: false,
|
||||
eventClick: false,
|
||||
};
|
||||
|
||||
var settings = {}
|
||||
|
||||
var calendar = fullCalendarPandora(calendarEl, options, settings, events);
|
||||
calendar.render();
|
||||
}
|
||||
});
|
||||
|
||||
$('#firing_action_select').change(function() {
|
||||
|
@ -619,8 +739,7 @@ $('#firing_action_select').change(function() {
|
|||
else {
|
||||
$('.action_details').show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
$('.firing_action').hide();
|
||||
if($(this).val() != -1) {
|
||||
$('.firing_action_' + $(this).val()).show();
|
||||
|
|
|
@ -23,7 +23,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'LM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -96,7 +96,10 @@ if ($al_action !== false) {
|
|||
}
|
||||
|
||||
if (!$is_in_group && $al_action['id_group'] != 0) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access unauthorized alert action configuration');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access unauthorized alert action configuration'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
|
|
@ -1,17 +1,34 @@
|
|||
<?php
|
||||
// phpcs:disable Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
||||
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2021 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.
|
||||
// Load global vars.
|
||||
/**
|
||||
* Configure Alert commands
|
||||
*
|
||||
* @category Alert management
|
||||
* @package Pandora FMS
|
||||
* @subpackage Community
|
||||
* @version 1.0.0
|
||||
* @license See below
|
||||
*
|
||||
* ______ ___ _______ _______ ________
|
||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2022 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_alerts.php';
|
||||
|
@ -23,7 +40,7 @@ enterprise_hook('open_meta_frame');
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -52,7 +69,10 @@ if ($id > 0) {
|
|||
$alert = alerts_get_alert_command($id);
|
||||
|
||||
if ($alert['internal'] || !check_acl_restricted_all($config['id_user'], $alert['id_group'], 'PM')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Alert Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Alert Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
@ -87,17 +107,17 @@ if ($update_command) {
|
|||
$values['description'] = $description;
|
||||
$values['id_group'] = $id_group;
|
||||
// Only for Metaconsole. Save the previous name for synchronizing.
|
||||
if (is_metaconsole()) {
|
||||
if (is_metaconsole() === true) {
|
||||
$values['previous_name'] = db_get_value('name', 'talert_commands', 'id', $id);
|
||||
}
|
||||
|
||||
// Check it the new name is used in the other command.
|
||||
$id_check = db_get_value('id', 'talert_commands', 'name', $name);
|
||||
if (($id_check != $id) && (!empty($id_check))) {
|
||||
$result = '';
|
||||
$result = false;
|
||||
} else {
|
||||
$result = alerts_update_alert_command($id, $values);
|
||||
if ($result) {
|
||||
$result = (bool) alerts_update_alert_command($id, $values);
|
||||
if ($result === true) {
|
||||
$info = '{"Name":"'.$name.'","Command":"'.$command.'","Description":"'.$description.' '.$info_fields.'"}';
|
||||
$alert['fields_values'] = io_json_mb_encode($fields_values);
|
||||
$alert['fields_descriptions'] = io_json_mb_encode($fields_descriptions);
|
||||
|
@ -109,11 +129,15 @@ if ($update_command) {
|
|||
}
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
db_pandora_audit('Command management', 'Update alert command #'.$id, false, false, $info);
|
||||
} else {
|
||||
db_pandora_audit('Command management', 'Fail to update alert command #'.$id, false, false);
|
||||
}
|
||||
$auditMessage = ((bool) $result === true) ? 'Update alert command' : 'Fail to update alert command';
|
||||
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ALERT_MANAGEMENT,
|
||||
sprintf('%s #%s', $auditMessage, $id),
|
||||
false,
|
||||
false,
|
||||
$info
|
||||
);
|
||||
|
||||
ui_print_result_message(
|
||||
$result,
|
||||
|
@ -130,7 +154,7 @@ $fields_descriptions = '';
|
|||
$fields_values = '';
|
||||
$id_group = 0;
|
||||
if ($id) {
|
||||
if (!$result) {
|
||||
if ($result === false) {
|
||||
$alert = alerts_get_alert_command($id);
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -32,7 +32,10 @@ if (!isset($_SESSION['id_usuario'])) {
|
|||
check_login();
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access audit CSV export');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access audit CSV export'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
|
|
|
@ -35,7 +35,10 @@ check_login();
|
|||
enterprise_hook('open_meta_frame');
|
||||
|
||||
if (!check_acl($config['id_user'], 0, 'PM') && !is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Categories Management');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Categories Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
return;
|
||||
}
|
||||
|
@ -113,10 +116,16 @@ if (is_management_allowed() === false) {
|
|||
if ($is_management_allowed === true && $delete != 0) {
|
||||
$return_delete = categories_delete_category($delete);
|
||||
if (!$return_delete) {
|
||||
db_pandora_audit('Category management', 'Fail try to delete category #'.$delete);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_CATEGORY_MANAGEMENT,
|
||||
'Fail try to delete category #'.$delete
|
||||
);
|
||||
ui_print_error_message(__('Error deleting category'));
|
||||
} else {
|
||||
db_pandora_audit('Category management', 'Delete category #'.$delete);
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_CATEGORY_MANAGEMENT,
|
||||
'Delete category #'.$delete
|
||||
);
|
||||
ui_print_success_message(__('Successfully deleted category'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,10 @@ enterprise_hook('open_meta_frame');
|
|||
require_once $config['homedir'].'/include/functions_categories.php';
|
||||
|
||||
if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user'])) {
|
||||
db_pandora_audit('ACL Violation', 'Trying to access Edit Category');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Edit Category'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
||||
return;
|
||||
|
@ -85,34 +88,46 @@ if ($update_category && $id_category != 0) {
|
|||
}
|
||||
|
||||
if ($result === false) {
|
||||
db_pandora_audit('Category management', "Fail try to update category #$id_category");
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_CATEGORY_MANAGEMENT,
|
||||
'Fail try to update category #'.$id_category
|
||||
);
|
||||
ui_print_error_message(__('Error updating category'));
|
||||
} else {
|
||||
db_pandora_audit('Category management', "Update category #$id_category");
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_CATEGORY_MANAGEMENT,
|
||||
'Update category #'.$id_category
|
||||
);
|
||||
ui_print_success_message(__('Successfully updated category'));
|
||||
}
|
||||
}
|
||||
|
||||
// Create category: creates a new category
|
||||
// Create category: creates a new category.
|
||||
if ($create_category) {
|
||||
$return_create = true;
|
||||
|
||||
$values = [];
|
||||
$values['name'] = $name_category;
|
||||
|
||||
// DB insert
|
||||
// DB insert.
|
||||
$return_create = false;
|
||||
if ($values['name'] != '') {
|
||||
$return_create = db_process_sql_insert('tcategory', $values);
|
||||
}
|
||||
|
||||
if ($return_create === false) {
|
||||
db_pandora_audit('Category management', 'Fail try to create category');
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_CATEGORY_MANAGEMENT,
|
||||
'Fail try to create category'
|
||||
);
|
||||
ui_print_error_message(__('Error creating category'));
|
||||
$action = 'new';
|
||||
// If create action ends successfully then current action is update
|
||||
// If create action ends successfully then current action is update.
|
||||
} else {
|
||||
db_pandora_audit('Category management', "Create category #$return_create");
|
||||
db_pandora_audit(
|
||||
AUDIT_LOG_CATEGORY_MANAGEMENT,
|
||||
'Create category #'.$return_create
|
||||
);
|
||||
ui_print_success_message(__('Successfully created category'));
|
||||
$id_category = $return_create;
|
||||
$action = 'update';
|
||||
|
@ -120,7 +135,7 @@ if ($create_category) {
|
|||
}
|
||||
|
||||
// Form fields are filled here
|
||||
// Get results when update action is performed
|
||||
// Get results when update action is performed.
|
||||
if ($action == 'update' && $id_category != 0) {
|
||||
$result_category = db_get_row_filter('tcategory', ['id' => $id_category]);
|
||||
$name_category = $result_category['name'];
|
||||
|
|
|
@ -18,7 +18,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'DM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Database Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -17,7 +17,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Custom events Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -21,7 +21,7 @@ $access = ($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'EW');
|
|||
|
||||
if (!$event_w && !$event_m) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access events filter editor'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -22,7 +22,7 @@ $access = ($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'EW');
|
|||
|
||||
if (!$event_w && !$event_m) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access events filter editor'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -43,7 +43,7 @@ if ($delete) {
|
|||
&& !check_acl_restricted_all($config['id_user'], $filter_group, 'EM')
|
||||
) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access events filter editor'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -17,7 +17,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
@ -43,7 +43,7 @@ if ($event_response_id > 0) {
|
|||
// ACL check for event response edition.
|
||||
if (!check_acl_restricted_all($config['id_user'], $event_response['id_group'], 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -19,7 +19,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -19,7 +19,7 @@ check_login();
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access Group Management'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -20,7 +20,7 @@ enterprise_hook('open_meta_frame');
|
|||
|
||||
if (!check_acl($config['id_user'], 0, 'EW') && !check_acl($config['id_user'], 0, 'EM') && ! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access event manage'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
|
@ -17,7 +17,7 @@ global $config;
|
|||
|
||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
||||
db_pandora_audit(
|
||||
'ACL Violation',
|
||||
AUDIT_LOG_ACL_VIOLATION,
|
||||
'Trying to access extensions list'
|
||||
);
|
||||
include 'general/noaccess.php';
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue