diff --git a/extras/deploy-scripts/pandora_deploy_community.sh b/extras/deploy-scripts/pandora_deploy_community.sh
index f660d5338d..0601c90688 100644
--- a/extras/deploy-scripts/pandora_deploy_community.sh
+++ b/extras/deploy-scripts/pandora_deploy_community.sh
@@ -282,6 +282,8 @@ server_dependencies=" \
expect \
openssh-clients \
java \
+ bind-utils \
+ whois \
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 \
https://firefly.artica.es/centos7/pandorawmic-1.0.0-1.x86_64.rpm"
diff --git a/extras/deploy-scripts/pandora_deploy_community_el8.sh b/extras/deploy-scripts/pandora_deploy_community_el8.sh
index 0f3ceadb39..7c55b91ed2 100644
--- a/extras/deploy-scripts/pandora_deploy_community_el8.sh
+++ b/extras/deploy-scripts/pandora_deploy_community_el8.sh
@@ -338,6 +338,8 @@ server_dependencies=" \
expect \
openssh-clients \
java \
+ bind-utils \
+ whois \
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 \
https://firefly.artica.es/centos8/pandorawmic-1.0.0-1.x86_64.rpm"
diff --git a/extras/deploy-scripts/pandora_deploy_community_ubuntu_2204.sh b/extras/deploy-scripts/pandora_deploy_community_ubuntu_2204.sh
new file mode 100644
index 0000000000..7c78908878
--- /dev/null
+++ b/extras/deploy-scripts/pandora_deploy_community_ubuntu_2204.sh
@@ -0,0 +1,743 @@
+#!/bin/bash
+##############################################################################################################
+# PandoraFMS Community online installation script for Ubuntu 22.04
+##############################################################################################################
+## Tested versions ##
+# Ubuntu 22.04.1
+
+#avoid promps
+export DEBIAN_FRONTEND=noninteractive
+export NEEDRESTART_SUSPEND=1
+
+#Constants
+PANDORA_CONSOLE=/var/www/html/pandora_console
+PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
+PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
+WORKDIR=/opt/pandora/deploy
+
+
+S_VERSION='2022052501'
+LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
+
+# define default variables
+[ "$TZ" ] || TZ="Europe/Madrid"
+[ "$PHPVER" ] || PHPVER=7.4
+[ "$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"
+cyan="\e[0;36m"
+reset="\e[0m"
+
+# Functions
+
+execute_cmd () {
+ local cmd="$1"
+ local msg="$2"
+
+ echo -e "${cyan}$msg...${reset}"
+ $cmd &>> "$LOGFILE"
+ if [ $? -ne 0 ]; then
+ echo -e "${red}Fail${reset}"
+ [ "$3" ] && echo "$3"
+ echo "Error installing Pandora FMS for detailed error please check log: $LOGFILE"
+ rm -rf "$WORKDIR" &>> "$LOGFILE"
+ exit 1
+ else
+ echo -e "\e[1A\e ${cyan}$msg...${reset} ${green}OK${reset}"
+ return 0
+ fi
+}
+
+check_cmd_status () {
+ if [ $? -ne 0 ]; then
+ echo -e "${red}Fail${reset}"
+ [ "$1" ] && echo "$1"
+ echo "Error installing Pandora FMS for detailed error please check log: $LOGFILE"
+ rm -rf "$WORKDIR" &>> "$LOGFILE"
+ exit 1
+ else
+ echo -e "${green}OK${reset}"
+ return 0
+ fi
+}
+
+check_pre_pandora () {
+ export MYSQL_PWD=$DBPASS
+
+ echo -en "${cyan}Checking environment ... ${reset}"
+ [ -d "$PANDORA_CONSOLE" ] && local fail=true
+ [ -f /usr/bin/pandora_server ] && local fail=true
+ echo "use $DBNAME" | mysql -u$DBUSER -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true
+
+ [ ! $fail ]
+ check_cmd_status 'Error there is a current Pandora FMS installation on this node, please remove it to execute a clean install'
+}
+
+check_repo_connection () {
+ execute_cmd "ping -c 2 firefly.artica.es" "Checking Community repo"
+ execute_cmd "ping -c 2 support.pandorafms.com" "Checking Enterprise repo"
+}
+
+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 Pandora FMS"
+ echo "Error installing Pandora FMS for detailed error please check log: $LOGFILE"
+ exit 1
+
+ else
+ echo -e "${green}OK${reset}"
+ fi
+}
+
+## Main
+echo "Starting PandoraFMS Community deployment Ubuntu 22.04 ver. $S_VERSION"
+
+# Ubuntu Version
+if [ ! "$(grep -Ei 'Ubuntu' /etc/lsb-release)" ]; then
+ printf "\n ${red}Error this is not a Ubuntu system, this installer is compatible with Ubuntu systems only${reset}\n"
+ exit 1
+fi
+
+
+echo -en "${cyan}Check Ubuntu Version...${reset}"
+[ $(sed -nr 's/VERSION_ID+=\s*"([0-9][0-9].[0-9][0-9])"$/\1/p' /etc/os-release) == "22.04" ]
+check_cmd_status 'Error OS version, Ubuntu 22.04 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"
+echo "Community installer version: $S_VERSION" >> "$LOGFILE"
+
+# Pre checks
+# Root permisions
+check_root_permissions
+
+# Pre installed 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
+
+# Systemd
+execute_cmd "systemctl --version" "Checking SystemD" 'This is not a SystemD enable system, if tryng to use in a docker env please check: https://github.com/pandorafms/pandorafms/tree/develop/extras/docker/centos8'
+
+# Check memomry greather or equal to 2G
+execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]" 'Checking memory (required: 2 GB)'
+
+# 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'
+execute_cmd "sed --version" 'Checking needed tools: sed'
+execute_cmd "apt --version" 'Checking needed tools: dnf'
+
+# Creating working directory
+rm -rf "$WORKDIR" &>> "$LOGFILE"
+mkdir -p "$WORKDIR" &>> "$LOGFILE"
+execute_cmd "cd $WORKDIR" "Moving to workdir: $WORKDIR"
+
+## Install utils
+execute_cmd "apt update" "Updating repos"
+execute_cmd "apt install -y net-tools vim curl wget software-properties-common apt-transport-https" "Installing utils"
+
+#Installing Apache and php-fpm
+[ -e "/etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list" ] || execute_cmd "add-apt-repository ppa:ondrej/php -y" "Enable ppa:ondrej/php repo"
+execute_cmd "apt update" "Updating repos"
+execute_cmd "apt install -y php$PHPVER-fpm php$PHPVER-common libapache2-mod-fcgid php$PHPVER-cli apache2" "Installing apache and php-fpm"
+#execute_cmd "a2enmod proxy_fcgi setenvif && a2enconf php$PHPVER-fpm" "Enabling php-fpm"
+echo -en "${cyan}Enabling php$PHPVER-fpm...${reset}"
+ a2enmod proxy_fcgi setenvif &>> "$LOGFILE" && a2enconf php$PHPVER-fpm &>> "$LOGFILE"
+check_cmd_status "Error enabling php$PHPVER-fpm "
+systemctl restart php$PHPVER-fpm &>> "$LOGFILE"
+
+# Console dependencies
+ console_dependencies=" \
+ ldap-utils \
+ postfix \
+ wget \
+ graphviz \
+ xfonts-75dpi \
+ xfonts-100dpi \
+ xfonts-ayu \
+ xfonts-intl-arabic \
+ xfonts-intl-asian \
+ xfonts-intl-phonetic \
+ xfonts-intl-japanese-big \
+ xfonts-intl-european \
+ xfonts-intl-chinese \
+ xfonts-intl-japanese \
+ xfonts-intl-chinese-big \
+ libzstd1 \
+ gir1.2-atk-1.0 \
+ libavahi-common-data \
+ cairo-perf-utils \
+ libfribidi-bin \
+ php$PHPVER-mcrypt \
+ php$PHPVER-gd \
+ php$PHPVER-curl \
+ php$PHPVER-mysql \
+ php$PHPVER-ldap \
+ php$PHPVER-fileinfo \
+ php$PHPVER-gettext \
+ php$PHPVER-snmp \
+ php$PHPVER-mbstring \
+ php$PHPVER-zip \
+ php$PHPVER-xmlrpc \
+ php$PHPVER-xml \
+ php$PHPVER-yaml \
+ libnet-telnet-perl \
+ whois"
+execute_cmd "apt install -y $console_dependencies" "Installing Pandora FMS Console dependencies"
+
+# Server dependencies
+server_dependencies=" \
+ perl \
+ nmap \
+ fping \
+ sudo \
+ net-tools \
+ nfdump \
+ expect \
+ openssh-client \
+ postfix \
+ unzip \
+ xprobe \
+ coreutils \
+ libio-compress-perl \
+ libmoosex-role-timer-perl \
+ libdbd-mysql-perl \
+ libcrypt-mysql-perl \
+ libhttp-request-ascgi-perl \
+ liblwp-useragent-chicaching-perl \
+ liblwp-protocol-https-perl \
+ snmp \
+ libnetaddr-ip-perl \
+ libio-socket-ssl-perl \
+ libio-socket-socks-perl \
+ libio-socket-ip-perl \
+ libio-socket-inet6-perl \
+ libnet-telnet-perl \
+ libjson-perl \
+ libencode-perl \
+ libgeo-ip-perl \
+ openjdk-8-jdk "
+execute_cmd "apt install -y $server_dependencies" "Installing Pandora FMS Server dependencies"
+
+# wmic and pandorawmic
+execute_cmd "curl -O https://firefly.artica.es/pandorafms/utils/bin/wmic" "Downloading wmic"
+execute_cmd "curl -O https://firefly.artica.es/pandorafms/utils/bin/pandorawmic" "Downloading pandorawmic"
+echo -en "${cyan}Installing wmic and pandorawmic...${reset}"
+ chmod +x pandorawmic wmic &>> "$LOGFILE" && \
+ cp -a wmic /usr/bin/ &>> "$LOGFILE" && \
+ cp -a pandorawmic /usr/bin/ &>> "$LOGFILE"
+check_cmd_status "Error Installing phanromjs"
+
+# phantomjs
+echo -en "${cyan}Installing phantomjs...${reset}"
+ export PHANTOM_JS="phantomjs-2.1.1-linux-x86_64"
+ export OPENSSL_CONF=/etc/ssl
+ curl -LSs -O "https://firefly.artica.es/pandorafms/utils/$PHANTOM_JS.tar.bz2" &>> "$LOGFILE" && \
+ tar xvjf "$PHANTOM_JS.tar.bz2" &>> "$LOGFILE" && \
+ mv $PHANTOM_JS/bin/phantomjs /usr/bin &>> "$LOGFILE" && \
+ /usr/bin/phantomjs --version &>> "$LOGFILE"
+check_cmd_status "Error Installing phanromjs"
+
+
+# SDK VMware perl dependencies
+vmware_dependencies=" \
+ lib32z1 \
+ lib32z1 \
+ build-essential \
+ uuid uuid-dev \
+ libssl-dev \
+ perl-doc \
+ libxml-libxml-perl \
+ libcrypt-ssleay-perl \
+ libsoap-lite-perl \
+ libmodule-build-perl"
+execute_cmd "apt install -y $vmware_dependencies" "Installing VMware SDK dependencies"
+execute_cmd "wget https://firefly.artica.es/pandorafms/utils/VMware-vSphere-Perl-SDK-7.0.0-16453907.x86_64.tar.gz" "Downloading VMware SDK"
+echo -en "${cyan}Installing VMware SDK...${reset}"
+ tar xvzf VMware-vSphere-Perl-SDK-7.0.0-16453907.x86_64.tar.gz &>> "$LOGFILE"
+ cd vmware-vsphere-cli-distrib/ &>> "$LOGFILE"
+ sed --follow-symlinks -i -e "s/[^#].*show_EULA().*/ #show_EULA();/g" vmware-install.pl &>> "$LOGFILE"
+ ./vmware-install.pl --default &>> "$LOGFILE"
+check_cmd_status "Error Installing VMware SDK"
+execute_cmd "cpan Crypt::OpenSSL::AES" "Installing extra vmware dependencie"
+cd $WORKDIR &>> "$LOGFILE"
+
+
+
+# Instant client Oracle
+execute_cmd "mkdir -p /opt/oracle" "Creating Oracle instant client directory /opt/oracle"
+execute_cmd "wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-basic-linux.x64-19.8.0.0.0dbru.zip" "Downloading Oracle instant client"
+execute_cmd "wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip" "Downloading Oracle sqlplus"
+echo -en "${cyan}Installing Oracle instant client...${reset}"
+ rm -fr /opt/oracle/* &>> "$LOGFILE"
+ unzip instantclient-basic-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle/ &>> "$LOGFILE"
+ unzip instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle/ &>> "$LOGFILE"
+check_cmd_status "Error Installing Oracle instant client"
+
+#Configuring env variables
+cat >> /root/.profile << 'EOF_ENV'
+#!/bin/bash
+VERSION=19.8
+export PATH=$PATH:/opt/oracle/instantclient_19_8
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/instantclient_19_8
+export ORACLE_HOME=/opt/oracle/instantclient_19_8
+EOF_ENV
+
+source '/root/.profile' &>> "$LOGFILE"
+
+#ipam dependencies
+ipam_dependencies=" \
+ xprobe \
+ libnetaddr-ip-perl \
+ coreutils \
+ libdbd-mysql-perl \
+ libxml-simple-perl \
+ libgeo-ip-perl \
+ libio-socket-inet6-perl \
+ libxml-twig-perl \
+ libnetaddr-ip-perl"
+execute_cmd "apt install -y $ipam_dependencies" "Installing IPAM Dependencies"
+
+# MSSQL dependencies el8
+curl -sSL https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc &>> "$LOGFILE"
+curl -sSL https://packages.microsoft.com/config/ubuntu/20.04/prod.list | tee /etc/apt/sources.list.d/microsoft-prod.list &>> "$LOGFILE"
+apt update &>> "$LOGFILE"
+execute_cmd "env ACCEPT_EULA=Y apt install -y msodbcsql17" "Installing ODBC Driver for Microsoft(R) SQL Server(R)"
+MS_ID=$(head -1 /etc/odbcinst.ini | tr -d '[]') &>> "$LOGFILE"
+
+# Disabling apparmor and ufw
+systemctl stop ufw.service &>> "$LOGFILE"
+systemctl disable ufw &>> "$LOGFILE"
+systemctl stop apparmor &>> "$LOGFILE"
+systemctl disable apparmor &>> "$LOGFILE"
+
+#install mysql
+debconf-set-selections <<< $(echo -n "mysql-server mysql-server/root_password password $DBROOTPASS") &>> "$LOGFILE"
+debconf-set-selections <<< $(echo -n "mysql-server mysql-server/root_password_again password $DBROOTPASS") &>> "$LOGFILE"
+echo -en "${cyan}Installing MySql Server...${reset}"
+ env DEBIAN_FRONTEND=noninteractive apt install -y mysql-server &>> "$LOGFILE"
+check_cmd_status "Error Installing MySql Server"
+
+
+#Configuring Database
+if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
+ execute_cmd "systemctl start mysql" "Starting database engine"
+
+ 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 $DBNAME, is this an empty node? if you have a previus installation please contact with support."
+
+ echo "CREATE USER \"$DBUSER\"@'%' IDENTIFIED BY \"$DBPASS\";" | mysql -uroot -P$DBPORT -h$DBHOST
+ echo "ALTER USER \"$DBUSER\"@'%' IDENTIFIED WITH mysql_native_password BY \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST
+ echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%'" | mysql -uroot -P$DBPORT -h$DBHOST
+fi
+export MYSQL_PWD=$DBPASS
+
+#Generating my.cnf
+cat > /etc/mysql/my.cnf << EOF_DB
+[mysqld]
+datadir=/var/lib/mysql
+user=mysql
+character-set-server=utf8
+skip-character-set-client-handshake
+# Disabling symbolic-links is recommended to prevent assorted security risks
+symbolic-links=0
+# Mysql optimizations for Pandora FMS
+# Please check the documentation in http://pandorafms.com for better results
+
+max_allowed_packet = 64M
+innodb_buffer_pool_size = $POOL_SIZE
+innodb_lock_wait_timeout = 90
+innodb_file_per_table
+innodb_flush_log_at_trx_commit = 0
+innodb_flush_method = O_DIRECT
+innodb_log_file_size = 64M
+innodb_log_buffer_size = 16M
+innodb_io_capacity = 100
+thread_cache_size = 8
+thread_stack = 256K
+max_connections = 100
+
+key_buffer_size=4M
+read_buffer_size=128K
+
+read_rnd_buffer_size=128K
+sort_buffer_size=128K
+join_buffer_size=4M
+
+sql_mode=""
+
+log-error=/var/log/mysql/error.log
+[mysqld_safe]
+log-error=/var/log/mysqld.log
+pid-file=/var/run/mysqld/mysqld.pid
+
+EOF_DB
+
+execute_cmd "systemctl restart mysql" "Configuring and restarting database engine"
+
+
+#Define packages
+if [ "$PANDORA_BETA" -eq '0' ] ; then
+ [ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandorafms/latest/Tarball/pandorafms_server-7.0NG.tar.gz"
+ [ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandorafms/latest/Tarball/pandorafms_console-7.0NG.tar.gz"
+ [ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/Tarball/pandorafms_agent_unix-7.0NG.tar.gz"
+elif [ "$PANDORA_BETA" -ne '0' ] ; then
+ [ "$PANDORA_SERVER_PACKAGE" ] || PANDORA_SERVER_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_server-latest_x86_64.tar.gz"
+ [ "$PANDORA_CONSOLE_PACKAGE" ] || PANDORA_CONSOLE_PACKAGE="http://firefly.artica.es/pandora_enterprise_nightlies/pandorafms_console-latest.tar.gz"
+ [ "$PANDORA_AGENT_PACKAGE" ] || PANDORA_AGENT_PACKAGE="http://firefly.artica.es/pandorafms/latest/Tarball/pandorafms_agent_unix-7.0NG.tar.gz"
+fi
+
+# Downloading Pandora Packages
+cd $WORKDIR &>> "$LOGFILE"
+
+curl -LSs --output pandorafms_console-7.0NG.tar.gz "${PANDORA_CONSOLE_PACKAGE}" &>> "$LOGFILE"
+curl -LSs --output pandorafms_server-7.0NG.tar.gz "${PANDORA_SERVER_PACKAGE}" &>> "$LOGFILE"
+curl -LSs --output pandorafms_agent_unix-7.0NG.tar.gz "${PANDORA_AGENT_PACKAGE}" &>> "$LOGFILE"
+
+# Install PandoraFMS Console
+echo -en "${cyan}Installing PandoraFMS Console...${reset}"
+ tar xvzf pandorafms_console-7.0NG.tar.gz &>> "$LOGFILE" && cp -Ra pandora_console /var/www/html/ &>> "$LOGFILE"
+check_cmd_status "Error installing PandoraFMS Console"
+rm -f $PANDORA_CONSOLE/*.spec &>> "$LOGFILE"
+
+# Install Pandora FMS Server
+echo -en "${cyan}Installing PandoraFMS Server...${reset}"
+ useradd pandora &>> "$LOGFILE"
+ tar xvfz $WORKDIR/pandorafms_server-7.0NG.tar.gz &>> $LOGFILE && cd pandora_server && ./pandora_server_installer --install &>> $LOGFILE && cd $WORKDIR &>> $LOGFILE
+check_cmd_status "Error installing PandoraFMS Server"
+
+#Install agent:
+execute_cmd "apt install -y libyaml-tiny-perl perl coreutils wget curl unzip procps python3 python3-pip" "Installing PandoraFMS Agent Dependencies"
+echo -en "${cyan}Installing PandoraFMS Agent...${reset}"
+ tar xvzf $WORKDIR/pandorafms_agent_unix-7.0NG.tar.gz &>> "$LOGFILE" && cd unix && ./pandora_agent_installer --install &>> $LOGFILE && cp -a tentacle_client /usr/local/bin/ &>> $LOGFILE && cd $WORKDIR
+check_cmd_status "Error installing PandoraFMS Agent"
+
+# Copy gotty utility
+cd $WORKDIR &>> "$LOGFILE"
+execute_cmd "wget https://pandorafms.com/library/wp-content/uploads/2019/11/gotty_linux_amd64.tar.gz" 'Dowloading gotty util'
+tar xvzf gotty_linux_amd64.tar.gz &>> $LOGFILE
+execute_cmd "mv gotty /usr/bin/" 'Installing gotty util'
+
+# Config servicesa
+#Configure apache2
+#Enable SSL connections
+cat > /etc/apache2/conf-available/ssl-params.conf << EOF_PARAM
+SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
+
+ SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
+
+ SSLHonorCipherOrder On
+
+
+ Header always set X-Frame-Options DENY
+
+ Header always set X-Content-Type-Options nosniff
+
+ # Requires Apache >= 2.4
+
+ SSLCompression off
+
+ SSLUseStapling on
+
+ SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
+
+
+ # Requires Apache >= 2.4.11
+
+ SSLSessionTickets Off
+EOF_PARAM
+
+a2enmod ssl &>> "$LOGFILE"
+a2enmod headers &>> "$LOGFILE"
+a2enconf ssl-params &>> "$LOGFILE"
+a2ensite default-ssl &>> "$LOGFILE"
+a2enconf ssl-params &>> "$LOGFILE"
+apache2ctl configtest &>> "$LOGFILE"
+
+execute_cmd "systemctl restart apache2" "Enable SSL mod and Restarting Apache2"
+
+execute_cmd "systemctl enable mysql --now" "Enabling Database service"
+execute_cmd "systemctl enable apache2 --now" "Enabling Apache2 service"
+execute_cmd "systemctl enable php$PHPVER-fpm --now" "Enabling php$PHPVER-fpm service"
+
+
+# Populate Database
+echo -en "${cyan}Loading pandoradb.sql to $DBNAME database...${reset}"
+mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb.sql &>> "$LOGFILE"
+check_cmd_status 'Error Loading database schema'
+
+echo -en "${cyan}Loading pandoradb_data.sql to $DBNAME database...${reset}"
+mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb_data.sql &>> "$LOGFILE"
+check_cmd_status 'Error Loading database schema data'
+
+# Configure console
+# Set console config file
+cat > $PANDORA_CONSOLE/include/config.php << EO_CONFIG_F
+ /etc/apache2/conf-enabled/pandora_security.conf << EO_CONFIG_F
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+EO_CONFIG_F
+
+#Enable quickshell proxy
+cat >> /etc/apache2/mods-enabled/00-proxy.conf << 'EO_HTTPD_WSTUNNEL'
+ProxyRequests Off
+
+ Require all granted
+
+
+ProxyPass /ws ws://127.0.0.1:8080
+ProxyPassReverse /ws ws://127.0.0.1:8080
+EO_HTTPD_WSTUNNEL
+
+# Fixing console permissions
+chmod 600 $PANDORA_CONSOLE/include/config.php &>> "$LOGFILE"
+chown -R www-data:www-data $PANDORA_CONSOLE &>> "$LOGFILE"
+mv $PANDORA_CONSOLE/install.php $PANDORA_CONSOLE/install.done &>> "$LOGFILE"
+
+# Prepare php.ini
+## Prepare php config
+ln -s /etc/php/$PHPVER/fpm/php.ini /etc/
+sed --follow-symlinks -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini
+sed --follow-symlinks -i -e "s/^max_execution_time.*/max_execution_time = 0/g" /etc/php.ini
+sed --follow-symlinks -i -e "s/^upload_max_filesize.*/upload_max_filesize = 800M/g" /etc/php.ini
+sed --follow-symlinks -i -e "s/^memory_limit.*/memory_limit = 800M/g" /etc/php.ini
+sed --follow-symlinks -i -e "s/.*post_max_size =.*/post_max_size = 800M/" /etc/php.ini
+sed --follow-symlinks -i -e "s/^disable_functions/;disable_functions/" /etc/php.ini
+
+#adding 900s to httpd timeout
+#echo 'TimeOut 900' > /etc/httpd/conf.d/timeout.conf
+
+cat > /var/www/html/index.html << EOF_INDEX
+
+EOF_INDEX
+
+execute_cmd "systemctl restart apache2" "Restarting apache2 after configuration"
+execute_cmd "systemctl restart php$PHPVER-fpm" "Restarting php$PHPVER-fpm after configuration"
+
+# prepare snmptrapd
+cat > /etc/snmp/snmptrapd.conf << EOF
+authCommunity log public
+disableAuthorization yes
+EOF
+
+# Prepare Server conf
+sed -i -e "s/^dbhost.*/dbhost $DBHOST/g" $PANDORA_SERVER_CONF
+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
+
+# Adding group www-data to pandora server conf.
+grep -q "group www-data" $PANDORA_SERVER_CONF || \
+cat >> $PANDORA_SERVER_CONF << EOF_G
+
+#Adding group www-data to assing remote-config permission correctly for ubuntu 22.04
+group www-data
+EOF_G
+
+# 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'
+#!/bin/bash
+VERSION=19.8
+export PATH=$PATH:/opt/oracle/instantclient_19_8
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/oracle/instantclient_19_8
+export ORACLE_HOME=/opt/oracle/instantclient_19_8
+export OPENSSL_CONF=/etc/ssl
+EOF_ENV
+
+# Kernel optimization
+
+if [ "$SKIP_KERNEL_OPTIMIZATIONS" -eq '0' ] ; then
+cat >> /etc/sysctl.conf < /etc/logrotate.d/pandora_server < /etc/logrotate.d/pandora_agent <> "$LOGFILE"
+chmod +x /etc/init.d/pandora_websocket_engine
+
+# Start Websocket engine
+/etc/init.d/pandora_websocket_engine start &>> "$LOGFILE"
+
+# Configure websocket to be started at start.
+systemctl enable pandora_websocket_engine &>> "$LOGFILE"
+
+# Enable pandora ha service
+execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server"
+systemctl enable pandora_server &>> "$LOGFILE"
+
+# starting tentacle server
+execute_cmd "service tentacle_serverd start" "Starting Tentacle Server"
+systemctl enable tentacle_serverd &>> "$LOGFILE"
+
+# Enabling condole cron
+execute_cmd "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 Pandora FMS Console cron"
+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 adn configuring Agente
+sed -i "s/^remote_config.*$/remote_config 1/g" $PANDORA_AGENT_CONF &>> "$LOGFILE"
+execute_cmd "/etc/init.d/pandora_agent_daemon start" "Starting PandoraFSM Agent"
+systemctl enable pandora_agent_daemon &>> "$LOGFILE"
+
+#fix path phantomjs
+sed --follow-symlinks -i -e "s/^openssl_conf = openssl_init/#openssl_conf = openssl_init/g" /etc/ssl/openssl.cnf &>> "$LOGFILE"
+
+#SSH banner
+[ "$(curl -s ifconfig.me)" ] && ipplublic=$(curl -s ifconfig.me)
+
+cat > /etc/issue.net << EOF_banner
+
+Welcome to Pandora FMS appliance on CentOS
+------------------------------------------
+Go to Public http://$ipplublic/pandora_console$to to login web console
+$(ip addr | grep -w "inet" | grep -v "127.0.0.1" | grep -v "172.17.0.1" | awk '{print $2}' | awk -F '/' '{print "Go to Local http://"$1"/pandora_console to login web console"}')
+
+You can find more information at http://pandorafms.com
+
+EOF_banner
+
+rm -f /etc/issue
+ln -s /etc/issue.net /etc/issue
+
+echo 'Banner /etc/issue.net' >> /etc/ssh/sshd_config
+
+# Remove temporary files
+execute_cmd "echo done" "Pandora FMS Community installed"
+cd "$HOME"
+execute_cmd "rm -rf $WORKDIR" "Removing temporary files"
+
+# Print nice finish message
+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 these credentials to log in Pandora Console "g"[ User: admin / Password: pandora ]"n" \n"}'
\ No newline at end of file
diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control
index 36bd36b51e..9f0cf4aedf 100644
--- a/pandora_agents/unix/DEBIAN/control
+++ b/pandora_agents/unix/DEBIAN/control
@@ -1,5 +1,5 @@
package: pandorafms-agent-unix
-Version: 7.0NG.764-220907
+Version: 7.0NG.764-220923
Architecture: all
Priority: optional
Section: admin
diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh
index 537a4da2ce..6d6b45e319 100644
--- a/pandora_agents/unix/DEBIAN/make_deb_package.sh
+++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh
@@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-pandora_version="7.0NG.764-220907"
+pandora_version="7.0NG.764-220923"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent
index d6a2abd49b..06a3d7a775 100755
--- a/pandora_agents/unix/pandora_agent
+++ b/pandora_agents/unix/pandora_agent
@@ -1015,7 +1015,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.764';
-use constant AGENT_BUILD => '220907';
+use constant AGENT_BUILD => '220923';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;
diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec
index d5117d099b..e2c3fd718c 100644
--- a/pandora_agents/unix/pandora_agent.redhat.spec
+++ b/pandora_agents/unix/pandora_agent.redhat.spec
@@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.764
-%define release 220907
+%define release 220923
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}
diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec
index b0a01d7739..e5d5b8ec01 100644
--- a/pandora_agents/unix/pandora_agent.spec
+++ b/pandora_agents/unix/pandora_agent.spec
@@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.764
-%define release 220907
+%define release 220923
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}
diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer
index da7891791b..1f08ee2b18 100755
--- a/pandora_agents/unix/pandora_agent_installer
+++ b/pandora_agents/unix/pandora_agent_installer
@@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.764"
-PI_BUILD="220907"
+PI_BUILD="220923"
OS_NAME=`uname -s`
FORCE=0
diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi
index ff39f2c18d..bac49c88cd 100644
--- a/pandora_agents/win32/installer/pandora.mpi
+++ b/pandora_agents/win32/installer/pandora.mpi
@@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
-{220907}
+{220923}
ViewReadme
{Yes}
diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc
index 1f738317b9..8a52c15bee 100644
--- a/pandora_agents/win32/pandora.cc
+++ b/pandora_agents/win32/pandora.cc
@@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
-#define PANDORA_VERSION ("7.0NG.764 Build 220907")
+#define PANDORA_VERSION ("7.0NG.764 Build 220923")
string pandora_path;
string pandora_dir;
diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc
index 9fa7bc53bf..c06eb8fdad 100644
--- a/pandora_agents/win32/versioninfo.rc
+++ b/pandora_agents/win32/versioninfo.rc
@@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
- VALUE "ProductVersion", "(7.0NG.764(Build 220907))"
+ VALUE "ProductVersion", "(7.0NG.764(Build 220923))"
VALUE "FileVersion", "1.0.0.0"
END
END
diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control
index ee45ec5dcd..b0efbe6dc2 100644
--- a/pandora_console/DEBIAN/control
+++ b/pandora_console/DEBIAN/control
@@ -1,5 +1,5 @@
package: pandorafms-console
-Version: 7.0NG.764-220907
+Version: 7.0NG.764-220923
Architecture: all
Priority: optional
Section: admin
diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh
index 35fdfe802a..9ce9a86a41 100644
--- a/pandora_console/DEBIAN/make_deb_package.sh
+++ b/pandora_console/DEBIAN/make_deb_package.sh
@@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-pandora_version="7.0NG.764-220907"
+pandora_version="7.0NG.764-220923"
package_pear=0
package_pandora=1
diff --git a/pandora_console/extras/mr/57.sql b/pandora_console/extras/mr/57.sql
index 8d63afed85..270f39c878 100644
--- a/pandora_console/extras/mr/57.sql
+++ b/pandora_console/extras/mr/57.sql
@@ -14,4 +14,6 @@ INSERT INTO `talert_commands` (`name`, `command`, `description`, `internal`, `fi
SET @send_report_by_temp_command_id := LAST_INSERT_ID();
INSERT INTO `talert_actions` (`name`, `id_alert_command`, `field1`, `field2`, `field3`, `field4`, `field5`, `field6`, `field7`, `field8`, `field9`, `field10`, `id_group`, `action_threshold`, `field1_recovery`, `field2_recovery`, `field3_recovery`, `field4_recovery`, `field5_recovery`, `field6_recovery`, `field7_recovery`, `field8_recovery`, `field9_recovery`, `field10_recovery`) VALUES ('Send Report by e-mail (from template)',@send_report_by_temp_command_id,'','','yourmail@domain.es','','<div style="background-color: #eaf0f6; font-family: Arial, Helvetica, sans-serif; padding: 30px; margin: 0;"><table style="max-width: 560px; background-color: white; border-radius: 10px; padding: 10px 20px 40px;" cellspacing="0" cellpadding="0" align="center"><thead><tr><td style="padding: 0px 0px 5px;"><a href="https://pandorafms.com/en/" target="_blank"><img src="https://pandorafms.com/wp-content/uploads/2022/03/System-email-Pandora-FMS.png" width="206px"></a></td><td style="padding: 0px 0px 5px;"><p style="text-align: right; color: #223549; font-weight: bold; line-height: 36px; padding: 0px; font-size: 12px;">Automatic alert system</p></td></tr><tr><td style="padding: 0px 0px 5px;" colspan="2"><hr style="border: 1px solid #f5f5f5; width: 100%; margin: 0px;"></td></tr></thead><tbody><tr><td colspan="2"><img onerror="this.style.display="none";" src="_statusimage_" style="display: block; margin-left: auto; margin-right: auto; width: 105px; margin-top: 20px; padding: 0px;" width="105px"></td></tr><tr><td colspan="2"><p style="font-size: 24px; text-align: center; color: #223549; padding: 0px 10%; line-height: 34px; margin: 20px 0px;">We have bad news for you, something is on <span style="text-transform: uppercase; font-weight: 800;">_modulestatus_</span> status!</p><div><!--[if mso]><v:rect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="#" style="height:33px;v-text-anchor:middle;width:100px;" stroke="f" fillcolor="#D84A38"><w:anchorlock/><center><![endif]--><a style="background-color: #223549; border: none; color: white; padding: 15px 30px; text-align: center; text-decoration: none; display: block; font-size: 16px; margin-left: auto; margin-right: auto; border-radius: 100px; max-width: 50%; margin-top: 0px; font-weight: bold;" href="_homeurl_">Go to Pandora FMS Console</a><!--[if mso]></center></v:rect><![endif]--></div></td></tr><tr><td colspan="2"><div style="background-color: #f6f6f6; border-radius: 10px; padding: 10px 20px; margin-top: 40px;"><p style="font-size: 18px; line-height: 30px; color: #223549;">Monitoring details</p><p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Data: <span style="font-weight: 400!important;">_data_ <em>(_modulestatus_)</em></span></p><p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Agent: <span style="font-weight: 400!important;">_agent_ <em>_address_</em></span></p><p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Module: <span style="font-weight: 400!important;">_module_ <em>_moduledescription_</em></span></p><p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Timestamp: <span style="font-weight: 400!important;">_timestamp_</span></p></div></td></tr><tr><td style="padding: 20px 0px;" colspan="2"><p style="font-size: 18px; line-height: 30px; color: #223549;">Report details</p><p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Generated: <span style="font-weight: 400!important;">_report_generated_date_<em><br></em></span></p><p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Report date: <span style="font-weight: 400!important;">_report_date_<em><br></em></span></p><p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Description: <span style="font-weight: 400!important;">_report_description_</span></p></td></tr></tbody></table><div style="text-align: center; margin-top: 10px;"><p style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;"><a style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;" href="https://pandorafms.com/en/contact/">Contact Us</a> | <a style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;" href="https://pandorafms.com/community/forums/forum/english/">Support</a> | <a style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;" href="https://pandorafms.com/manual/en/start">Docs</a></p></div></div>','','','','','',0,0,'','','','','<div style="background-color: #eaf0f6; font-family: Arial, Helvetica, sans-serif; padding: 30px; margin: 0;">
<table style="max-width: 560px; background-color: white; border-radius: 10px; padding: 10px 20px 40px;" cellspacing="0" cellpadding="0" align="center">
<thead>
<tr>
<td style="padding: 0px 0px 5px;"><a href="https://pandorafms.com/en/" target="_blank"><img src="https://pandorafms.com/wp-content/uploads/2022/03/System-email-Pandora-FMS.png" width="206px"></a></td>
<td style="padding: 0px 0px 5px;">
<p style="text-align: right; color: #223549; font-weight: bold; line-height: 36px; padding: 0px; font-size: 12px;">Automatic alert system</p>
</td>
</tr>
<tr>
<td style="padding: 0px 0px 5px;" colspan="2"><hr style="border: 1px solid #f5f5f5; width: 100%; margin: 0px;"></td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2"><img src="https://pandorafms.com/wp-content/uploads/2022/03/System-email-Good-news.png" style="display: block; margin-left: auto; margin-right: auto; width: 105px; margin-top: 20px; padding: 0px;" width="105px"></td>
</tr>
<tr>
<td colspan="2">
<p style="font-size: 24px; text-align: center; color: #223549; padding: 0px 10%; line-height: 34px; margin: 20px 0px;">We have good news for you, alert has been <span style="text-transform: uppercase; font-weight: 800;">recovered</span></p>
<div><!--[if mso]><v:rect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="#" style="height:33px;v-text-anchor:middle;width:100px;" stroke="f" fillcolor="#D84A38"><w:anchorlock/><center><![endif]--><a style="background-color: #223549; border: none; color: white; padding: 15px 30px; text-align: center; text-decoration: none; display: block; font-size: 16px; margin-left: auto; margin-right: auto; border-radius: 100px; max-width: 50%; margin-top: 0px; font-weight: bold;" href="_homeurl_">Go to Pandora FMS Console</a><!--[if mso]></center></v:rect><![endif]--></div>
</td>
</tr>
<tr>
<td colspan="2">
<div style="background-color: #f6f6f6; border-radius: 10px; padding: 10px 20px; margin-top: 40px;">
<p style="font-size: 18px; line-height: 30px; color: #223549;">Monitoring details</p>
<p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Data: <span style="font-weight: 400!important;">_data_ <em>(_modulestatus_)</em></span></p>
<p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Agent: <span style="font-weight: 400!important;">_agent_ <em>_address_</em></span></p>
<p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Module: <span style="font-weight: 400!important;">_module_ <em>_moduledescription_</em></span></p>
<p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Timestamp: <span style="font-weight: 400!important;">_timestamp_</span></p>
</div>
</td>
</tr>
<tr>
<td style="padding: 20px 0px;" colspan="2">
<p style="font-size: 18px; line-height: 30px; color: #223549;">Report details</p>
<p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Generated: <span style="font-weight: 400!important;">_report_generated_date_<em><br></em></span></p>
<p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Report date: <span style="font-weight: 400!important;">_report_date_<em><br></em></span></p>
<p style="font-size: 15px; color: #333333; font-weight: 800; line-height: 15px;">Description: <span style="font-weight: 400!important;">_report_description_</span></p>
</td>
</tr>
</tbody>
</table>
<div style="text-align: center; margin-top: 10px;">
<p style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;"><a style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;" href="https://pandorafms.com/en/contact/">Contact Us</a> | <a style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;" href="https://pandorafms.com/community/forums/forum/english/">Support</a> | <a style="font-size: 12px; text-decoration: none; font-weight: 400; color: #777;" href="https://pandorafms.com/manual/en/start">Docs</a></p>
</div>
</div>','','','','','');
+ALTER TABLE `tmodule_group` MODIFY COLUMN `id_mg` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT;
+
COMMIT;
diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php
index a1ebc7ce7f..af29579055 100644
--- a/pandora_console/godmode/agentes/configurar_agente.php
+++ b/pandora_console/godmode/agentes/configurar_agente.php
@@ -1052,9 +1052,10 @@ if ($update_agent) {
$exists_ip = db_get_row_sql($sql);
}
+ $old_group = agents_get_agent_group($id_agente);
if ($grupo <= 0) {
ui_print_error_message(__('The group id %d is incorrect.', $grupo));
- } else if (group_allow_more_agents($grupo, true, 'update') === false) {
+ } else if ($old_group !== $grupo && group_allow_more_agents($grupo, true, 'update') === false) {
ui_print_error_message(__('Agent cannot be updated due to the maximum agent limit for this group'));
} else if ($exists_ip) {
ui_print_error_message(__('Duplicate main IP address'));
diff --git a/pandora_console/godmode/agentes/planned_downtime.editor.php b/pandora_console/godmode/agentes/planned_downtime.editor.php
index d36c2d4a72..cec18a21ca 100644
--- a/pandora_console/godmode/agentes/planned_downtime.editor.php
+++ b/pandora_console/godmode/agentes/planned_downtime.editor.php
@@ -880,7 +880,7 @@ $table->data[4][1] = html_print_select(
[
'once' => __('Once'),
'periodically' => __('Periodically'),
- 'cron' => __('Cron from/to'),
+ 'cron' => __('Cron from/to'),
],
'type_execution',
$type_execution,
diff --git a/pandora_console/godmode/massive/massive_operations.php b/pandora_console/godmode/massive/massive_operations.php
index c1d601e28f..49b151b7d4 100755
--- a/pandora_console/godmode/massive/massive_operations.php
+++ b/pandora_console/godmode/massive/massive_operations.php
@@ -114,11 +114,6 @@ if ($satellite_options != ENTERPRISE_NOT_HOOK) {
$options_satellite = array_merge($options_satellite, $satellite_options);
}
-$options_services = enterprise_hook('massive_services_options');
-if ($options_services === ENTERPRISE_NOT_HOOK) {
- $options_services = [];
-}
-
if (in_array($option, array_keys($options_alerts)) === true) {
$tab = 'massive_alerts';
@@ -136,8 +131,6 @@ if (in_array($option, array_keys($options_alerts)) === true) {
$tab = 'massive_satellite';
} else if (in_array($option, array_keys($options_plugins)) === true) {
$tab = 'massive_plugins';
-} else if (in_array($option, array_keys($options_services)) === true) {
- $tab = 'massive_services';
}
if ($tab === 'massive_agents' && empty($option) === true) {
@@ -206,10 +199,6 @@ switch ($tab) {
$options = $options_plugins;
break;
- case 'massive_services':
- $options = $options_services;
- break;
-
default:
// Default.
break;
@@ -298,12 +287,6 @@ if ($satellitetab == ENTERPRISE_NOT_HOOK) {
$satellitetab = '';
}
-$servicestab = enterprise_hook('massive_services_tab');
-
-if ($servicestab == ENTERPRISE_NOT_HOOK) {
- $servicestab = '';
-}
-
$onheader = [];
$onheader['massive_agents'] = $agentstab;
$onheader['massive_modules'] = $modulestab;
diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php
index d4d10dfa88..d63595d553 100644
--- a/pandora_console/godmode/menu.php
+++ b/pandora_console/godmode/menu.php
@@ -211,7 +211,6 @@ if ($access_console_node === true) {
enterprise_hook('massivepolicies_submenu');
enterprise_hook('massivesnmp_submenu');
enterprise_hook('massivesatellite_submenu');
- enterprise_hook('massiveservices_submenu');
$sub['gmassive']['sub2'] = $sub2;
$sub2 = [];
diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php
index 41b50df748..faa8c13ae5 100755
--- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php
+++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php
@@ -3874,6 +3874,7 @@ $class = 'databox filters';
} else {
$rows_select = modules_get_modulegroups();
}
+
html_print_select($rows_select, 'modulegroup', $modulegroup, '', __($is_none), -1, true, false, true, '', false, 'width: 120px;');
html_print_select(
$rows_select,
diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php
index 35eaddd2c3..93a3d64a27 100644
--- a/pandora_console/godmode/setup/setup_general.php
+++ b/pandora_console/godmode/setup/setup_general.php
@@ -34,7 +34,7 @@ check_login();
if (is_ajax()) {
$test_address = get_parameter('test_address', '');
- $params = get_parameter('params', '');
+ $params = io_safe_output(get_parameter('params', ''));
$res = send_test_email(
$test_address,
diff --git a/pandora_console/godmode/wizards/HostDevices.class.php b/pandora_console/godmode/wizards/HostDevices.class.php
index 36e7df0b21..cf4f6fe87b 100755
--- a/pandora_console/godmode/wizards/HostDevices.class.php
+++ b/pandora_console/godmode/wizards/HostDevices.class.php
@@ -914,7 +914,7 @@ class HostDevices extends Wizard
'hidden' => (($this->task['subnet_csv'] == '1') ? 1 : 0),
'id' => 'std_subnet',
'label' => ''.__('Network').':'.ui_print_help_tip(
- __('You can specify several networks, separated by commas, for example: 192.168.50.0/24,192.168.60.0/24'),
+ __('You can specify networks or fully qualified domain names of a specific host, separated by commas, for example: 192.168.50.0/24,192.168.60.0/24, hostname.artica.es'),
true
),
'arguments' => [
diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php
index 801cf26a53..995fdf2e9c 100644
--- a/pandora_console/include/class/ConsoleSupervisor.php
+++ b/pandora_console/include/class/ConsoleSupervisor.php
@@ -2215,7 +2215,9 @@ class ConsoleSupervisor
'type' => 'NOTIF.MISC.FONTPATH',
'title' => __('Default font doesn\'t exist'),
'message' => __('Your defined font doesn\'t exist or is not defined. Please, check font parameters in your config'),
- 'url' => '__url__/index.php?sec=gsetup&sec2=godmode/setup/setup§ion=vis',
+ 'url' => is_metaconsole() === false
+ ? '__url__/index.php?sec=gsetup&sec2=godmode/setup/setup§ion=vis'
+ : '__url__/index.php?sec=advanced&sec2=advanced/metasetup&tab=visual',
]
);
} else {
diff --git a/pandora_console/include/class/ExternalTools.class.php b/pandora_console/include/class/ExternalTools.class.php
index 58c021de17..4af91fe5cb 100644
--- a/pandora_console/include/class/ExternalTools.class.php
+++ b/pandora_console/include/class/ExternalTools.class.php
@@ -651,6 +651,12 @@ class ExternalTools extends HTML
}
break;
+ case 'whois':
+ if (empty($snmpget_path) === false) {
+ return $snmpget_path;
+ }
+ break;
+
default:
return null;
}
@@ -829,6 +835,7 @@ class ExternalTools extends HTML
if (empty($dig) === true) {
ui_print_error_message(__('Dig executable does not exist.'));
} else {
+ $dig .= ' '.$ip;
$this->performExecution($dig);
}
@@ -837,6 +844,7 @@ class ExternalTools extends HTML
if (empty($whois) === true) {
ui_print_error_message(__('Whois executable does not exist.'));
} else {
+ $whois .= ' '.$ip;
$this->performExecution($whois);
}
diff --git a/pandora_console/include/config.inc.php b/pandora_console/include/config.inc.php
index a3d5677729..7c92b5774d 100644
--- a/pandora_console/include/config.inc.php
+++ b/pandora_console/include/config.inc.php
@@ -1,4 +1,5 @@
0) {
- include 'general/mysqlerr.php';
- return false;
+ if (empty($ssl)) {
+ $connect_id = mysqli_connect($host, $user, $pass, $db, $port);
+ if (mysqli_connect_errno() > 0) {
+ include 'general/mysqlerr.php';
+ return false;
+ }
+
+ db_change_cache_id($db, $host);
+
+ if (isset($charset)) {
+ mysqli_set_charset($connect_id, $charset);
+ }
+
+ mysqli_select_db($connect_id, $db);
+ } else {
+ $connect_id = mysqli_init();
+
+ mysqli_ssl_set($connect_id, null, null, $ssl, null, null);
+
+ if ($verify === 'verified') {
+ mysqli_real_connect($connect_id, $host, $user, $pass, $db, $port, null, MYSQLI_CLIENT_SSL);
+ } else {
+ mysqli_real_connect($connect_id, $host, $user, $pass, $db, $port, null, MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
+ }
+
+ if (mysqli_connect_errno() > 0) {
+ include 'general/mysqlerr.php';
+ return false;
+ }
}
-
- db_change_cache_id($db, $host);
-
- if (isset($charset)) {
- mysqli_set_charset($connect_id, $charset);
- }
-
- mysqli_select_db($connect_id, $db);
} else {
$connect_id = @mysql_connect($host.':'.$port, $user, $pass, true);
- if (! $connect_id) {
+ if (!$connect_id) {
return false;
}
@@ -117,7 +144,7 @@ function mysql_db_get_all_rows_sql($sql, $search_history_db=false, $cache=true,
$history = false;
// Connect to the history DB
- if (! isset($config['history_db_connection']) || $config['history_db_connection'] === false) {
+ if (!isset($config['history_db_connection']) || $config['history_db_connection'] === false) {
$config['history_db_connection'] = db_connect($config['history_db_host'], $config['history_db_name'], $config['history_db_user'], io_output_password($config['history_db_pass']), $config['history_db_port'], false);
}
@@ -142,13 +169,13 @@ function mysql_db_get_all_rows_sql($sql, $search_history_db=false, $cache=true,
}
// Append result to the history DB data
- if (! empty($return)) {
+ if (!empty($return)) {
foreach ($return as $row) {
array_push($history, $row);
}
}
- if (! empty($history)) {
+ if (!empty($history)) {
return $history;
}
@@ -240,7 +267,7 @@ function mysql_db_get_row($table, $field_search, $condition, $fields=false, $cac
} else {
if (is_array($fields)) {
$fields = implode(',', $fields);
- } else if (! is_string($fields)) {
+ } else if (!is_string($fields)) {
return false;
}
}
@@ -403,7 +430,7 @@ function mysql_db_process_sql($sql, $rettype='affected_rows', $dbconnection='',
$cache = $config['dbcache'];
}
- if ($cache && ! empty($sql_cache[$sql_cache['id']][$sql])) {
+ if ($cache && !empty($sql_cache[$sql_cache['id']][$sql])) {
$retval = $sql_cache[$sql_cache['id']][$sql];
$sql_cache['saved'][$sql_cache['id']]++;
db_add_database_debug_trace($sql);
@@ -518,7 +545,7 @@ function mysql_db_process_sql($sql, $rettype='affected_rows', $dbconnection='',
}
}
- if (! empty($retval)) {
+ if (!empty($retval)) {
return $retval;
}
@@ -594,7 +621,7 @@ function mysql_encapsule_fields_with_same_name_to_instructions($field)
*/
function mysql_db_get_value_filter($field, $table, $filter, $where_join='AND', $search_history_db=false)
{
- if (! is_array($filter) || empty($filter)) {
+ if (!is_array($filter) || empty($filter)) {
return false;
}
@@ -693,7 +720,7 @@ function mysql_db_format_array_where_clause_sql($values, $join='AND', $prefix=fa
{
$fields = [];
- if (! is_array($values)) {
+ if (!is_array($values)) {
return '';
}
@@ -863,7 +890,7 @@ function mysql_db_format_array_where_clause_sql($values, $join='AND', $prefix=fa
$i++;
}
- return (! empty($query) ? $prefix : '').$query.$group.$order.$limit.$offset;
+ return (!empty($query) ? $prefix : '').$query.$group.$order.$limit.$offset;
}
@@ -945,7 +972,7 @@ function mysql_db_get_row_filter($table, $filter, $fields=false, $where_join='AN
} else {
if (is_array($fields)) {
$fields = implode(',', $fields);
- } else if (! is_string($fields)) {
+ } else if (!is_string($fields)) {
return false;
}
}
@@ -995,7 +1022,7 @@ function mysql_db_get_all_rows_filter($table, $filter=[], $fields=false, $where_
$fields = '*';
} else if (is_array($fields)) {
$fields = implode(',', $fields);
- } else if (! is_string($fields)) {
+ } else if (!is_string($fields)) {
return false;
}
diff --git a/pandora_console/include/functions_agents.php b/pandora_console/include/functions_agents.php
index ac608e6acf..178088195c 100644
--- a/pandora_console/include/functions_agents.php
+++ b/pandora_console/include/functions_agents.php
@@ -789,7 +789,7 @@ function agents_get_agents_selected($group)
);
$all = array_reduce(
- $all,
+ (empty($all) === true) ? [] : $all,
function ($carry, $item) {
$carry[$item['id_agente']] = $item['alias'];
return $carry;
diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php
index fbe12e27f8..647b719ae3 100644
--- a/pandora_console/include/functions_config.php
+++ b/pandora_console/include/functions_config.php
@@ -1,4 +1,5 @@
runBasic();
}
-
}
@@ -3424,7 +3445,6 @@ function get_um_url()
}
return $url;
-
}
@@ -3440,7 +3460,7 @@ function config_return_in_bytes($val)
$last = strtolower($val[(strlen($val) - 1)]);
$val = (int) trim($val);
switch ($last) {
- // The 'G' modifier is available since PHP 5.1.0.
+ // The 'G' modifier is available since PHP 5.1.0.
case 'g':
$val *= 1024;
case 'm':
diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php
index c04308a717..c36536348f 100644
--- a/pandora_console/include/functions_events.php
+++ b/pandora_console/include/functions_events.php
@@ -1205,7 +1205,12 @@ function events_get_all(
$tags = json_decode($tag_without, true);
if (is_array($tags) === true && in_array('0', $tags) === false) {
if (!$user_is_admin) {
- $user_tags = array_flip(tags_get_tags_for_module_search());
+ $tags_module_search = tags_get_tags_for_module_search();
+ if ($tags_module_search === false) {
+ $tags_module_search = [];
+ }
+
+ $user_tags = array_flip($tags_module_search);
if ($user_tags != null) {
foreach ($tags as $key_tag => $id_tag) {
// User cannot filter with those tags.
@@ -4948,6 +4953,8 @@ function events_clean_tags($tags)
}
$event_tags = tags_get_tags_formatted($tags, false);
+ $event_tags = io_safe_input($event_tags);
+
return explode(',', str_replace(' ', '', $event_tags));
}
diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php
index d9c86aa66a..8b1f1deaae 100644
--- a/pandora_console/include/functions_menu.php
+++ b/pandora_console/include/functions_menu.php
@@ -656,7 +656,7 @@ function menu_get_sec_pages($sec, $menu_hash=false)
foreach ($menu[$sec]['sub'] as $k => $v) {
// Avoid special cases of standalone windows.
if (preg_match('/^javascript:/', $k) || preg_match('/\.php/', $k)) {
- if ($sec !== 'links') {
+ if ($sec !== 'links' && $sec !== 'eventos') {
continue;
}
}
diff --git a/pandora_console/include/functions_reporting.php b/pandora_console/include/functions_reporting.php
index 31026035f7..13595689e1 100755
--- a/pandora_console/include/functions_reporting.php
+++ b/pandora_console/include/functions_reporting.php
@@ -7746,15 +7746,7 @@ function reporting_advanced_sla(
}
if (isset($max_value) === false || (int) $max_value === 0) {
- if ($max_value === '0'
- && $max_value < $min_value
- && isset($min_value_warning) === true
- && $min_value_warning > $max_value
- ) {
- $max_value = $min_value_warning;
- } else {
- $max_value = null;
- }
+ $max_value = null;
}
if (isset($max_value) === false && isset($min_value) === false) {
@@ -8309,18 +8301,21 @@ function reporting_advanced_sla(
$inverse_interval
);
- // Warning SLA check.
- $sla_check_value_warning = sla_check_value(
- $current_data['datos'],
- $min_value_warning,
- $max_value_warning,
- $inverse_interval_warning,
- 1
- );
+ $sla_check_value_warning = false;
+ if ($sla_check_value === true) {
+ // Warning SLA check.
+ $sla_check_value_warning = sla_check_value(
+ $current_data['datos'],
+ $min_value_warning,
+ $max_value_warning,
+ $inverse_interval_warning,
+ 1
+ );
+ }
}
// Not unknown nor not init values.
- if ($sla_check_value_warning && $sla_check_warning === true) {
+ if ($sla_check_value_warning === true && $sla_check_warning === true) {
if (isset($current_data['type']) === false
|| ((int) $current_data['type'] === 0
&& $i !== 0)
diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php
index 69d85d448d..029b0d70b6 100644
--- a/pandora_console/include/functions_reporting_html.php
+++ b/pandora_console/include/functions_reporting_html.php
@@ -1756,7 +1756,8 @@ function reporting_html_modules_inventory($table, $item, $pdf=0)
} else if ($data_field_key === 'group_id') {
$column_value = groups_get_name($data_field_value[0]);
} else if ($data_field_key === 'sec_group_id') {
- $sec_groups_names = array_map(function ($group_id) {
+ $sec_groups_names = array_map(
+ function ($group_id) {
return groups_get_name($group_id);
},
$data_field_value
@@ -4224,7 +4225,7 @@ function reporting_html_availability($table, $item, $pdf=0)
} else {
$table_row[] = $row['agent'];
$item_name = $row['availability_item'];
- if ((bool) $row['compare'] === true) {
+ if ((bool) $row['compare'] === false) {
$item_name .= ' ('.__('24 x 7').')';
}
diff --git a/pandora_console/include/functions_tactical.php b/pandora_console/include/functions_tactical.php
index 3b50ba5476..dec75ae13e 100644
--- a/pandora_console/include/functions_tactical.php
+++ b/pandora_console/include/functions_tactical.php
@@ -416,7 +416,7 @@ function tactical_get_data(
} else {
$result_list = db_get_all_rows_sql(
sprintf(
- 'SELECT COUNT(*) as contado, estado
+ 'SELECT COUNT(DISTINCT(tam.id_agente_modulo)) as contado, estado
FROM tagente_estado tae
INNER JOIN tagente ta
ON tae.id_agente = ta.id_agente
diff --git a/pandora_console/include/functions_tags.php b/pandora_console/include/functions_tags.php
index 1ae830bba9..06dc8b1ada 100644
--- a/pandora_console/include/functions_tags.php
+++ b/pandora_console/include/functions_tags.php
@@ -1334,7 +1334,7 @@ function tags_checks_event_acl($id_user, $id_group, $access, $tags=[], $children
WHERE ".get_acl_column($access).' = 1)';
if (isset($id_group)) {
- $sql .= 'AND id_grupo = '.$id_group;
+ $sql .= ' AND id_grupo = '.$id_group;
}
$user_has_perm_without_tags = db_get_all_rows_sql($sql);
@@ -1343,6 +1343,7 @@ function tags_checks_event_acl($id_user, $id_group, $access, $tags=[], $children
return true;
}
+ $tags_aux = [];
$tags_str = '';
if (!empty($tags)) {
foreach ($tags as $tag) {
diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php
index d30171eba3..9db7f80fb7 100755
--- a/pandora_console/include/functions_ui.php
+++ b/pandora_console/include/functions_ui.php
@@ -4101,17 +4101,20 @@ function ui_toggle(
// JQuery Toggle.
$output .= '