mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-09-26 11:29:12 +02:00
Merge branch 'develop' into 'ent-8838-Longitud-id-user-tusuario'
# Conflicts: # pandora_console/extras/mr/55.sql
This commit is contained in:
commit
91d949942a
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
# define variables
|
# define variables
|
||||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||||
S_VERSION='2021100601'
|
S_VERSION='2022052301'
|
||||||
LOGFILE="/tmp/pandora-agent-deploy-$(date +%F).log"
|
LOGFILE="/tmp/pandora-agent-deploy-$(date +%F).log"
|
||||||
|
|
||||||
# Ansi color code variables
|
# Ansi color code variables
|
||||||
@ -49,7 +49,6 @@ check_cmd_status () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
check_repo_connection () {
|
check_repo_connection () {
|
||||||
execute_cmd "ping -c 2 8.8.8.8" "Checking internet connection"
|
|
||||||
execute_cmd "ping -c 2 firefly.artica.es" "Checking Community repo"
|
execute_cmd "ping -c 2 firefly.artica.es" "Checking Community repo"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,10 +78,15 @@ echo "Starting PandoraFMS Agent deployment ver. $S_VERSION"
|
|||||||
|
|
||||||
execute_cmd "[ $PANDORA_SERVER_IP ]" 'Check Server IP Address' 'Please define env variable PANDORA_SERVER_IP'
|
execute_cmd "[ $PANDORA_SERVER_IP ]" 'Check Server IP Address' 'Please define env variable PANDORA_SERVER_IP'
|
||||||
|
|
||||||
|
#Detect OS
|
||||||
|
os_name=$(grep ^PRETTY_NAME= /etc/os-release | cut -d '=' -f2 | tr -d '"')
|
||||||
|
execute_cmd "echo $os_name" "OS detected: ${os_name}"
|
||||||
|
|
||||||
# Check OS.
|
# 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=$([[ $(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' ]] && OS_RELEASE=$OS
|
[[ $OS =~ 'rhel' ]] && OS_RELEASE=$OS
|
||||||
|
[[ $OS =~ 'fedora' ]] && OS_RELEASE=$OS
|
||||||
[[ $OS =~ 'debian' ]] && OS_RELEASE=$OS
|
[[ $OS =~ 'debian' ]] && OS_RELEASE=$OS
|
||||||
#[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
|
#[[ $OS == 'rhel fedora' ]] && OS_RELEASE=$OS
|
||||||
#[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
|
#[[ $OS == 'centos rhel fedora' ]] && OS_RELEASE=$OS
|
||||||
@ -113,17 +117,40 @@ execute_cmd "cd $HOME/pandora_deploy_tmp" "Moving to workspace: $HOME/pandora_d
|
|||||||
|
|
||||||
# Downloading and installing packages
|
# Downloading and installing packages
|
||||||
|
|
||||||
if [[ $OS_RELEASE =~ 'rhel' ]]; then
|
if [[ $OS_RELEASE =~ 'rhel' ]] || [[ $OS_RELEASE =~ 'fedora' ]]; then
|
||||||
yum install -y perl wget curl perl-Sys-Syslog unzip &>> $LOGFILE
|
## Extra steps on redhat
|
||||||
echo -e "${cyan}Instaling agent dependencies...${reset}" ${green}OK${reset}
|
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 list &>> "$LOGFILE"
|
||||||
|
subscription-manager status &>> "$LOGFILE"
|
||||||
|
check_cmd_status 'Error checking subscription status, make sure your server is activated and suscribed to Red Hat Enterprise repositories'
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check rh version
|
||||||
|
if [ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '8' ] ; then
|
||||||
|
package_manager_cmd=dnf
|
||||||
|
elif [ $(sed -nr 's/VERSION_ID+=\s*"([0-9]).*"$/\1/p' /etc/os-release) -eq '7' ] ; then
|
||||||
|
package_manager_cmd=yum
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
$package_manager_cmd install -y perl wget curl perl-Sys-Syslog unzip &>> $LOGFILE
|
||||||
|
echo -e "${cyan}Installing agent dependencies...${reset}" ${green}OK${reset}
|
||||||
|
|
||||||
yum install -y http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm &>> $LOGFILE
|
# Insatall pandora agent
|
||||||
echo -e "${cyan}Instaling Pandora FMS agent...${reset}" ${green}OK${reset}
|
$package_manager_cmd install -y http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm &>> $LOGFILE
|
||||||
|
echo -en "${cyan}Installing Pandora FMS agent...${reset}"
|
||||||
|
check_cmd_status 'Error installing Pandora FMS agent'
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $OS_RELEASE == 'debian' ]]; then
|
if [[ $OS_RELEASE == 'debian' ]]; then
|
||||||
execute_cmd "apt update" 'Updating repos'
|
execute_cmd "apt update" 'Updating repos'
|
||||||
execute_cmd "apt install -y perl wget curl unzip procps python3 python3-pip" 'Instaling agent dependencies'
|
execute_cmd "apt install -y perl wget curl unzip procps python3 python3-pip" 'Installing agent dependencies'
|
||||||
execute_cmd 'wget http://firefly.artica.es/pandorafms/latest/Debian_Ubuntu/pandorafms.agent_unix_7.0NG.deb' 'Downloading Pandora FMS agent dependencies'
|
execute_cmd 'wget http://firefly.artica.es/pandorafms/latest/Debian_Ubuntu/pandorafms.agent_unix_7.0NG.deb' 'Downloading Pandora FMS agent dependencies'
|
||||||
execute_cmd 'apt install -y ./pandorafms.agent_unix_7.0NG.deb' 'Installing Pandora FMS agent'
|
execute_cmd 'apt install -y ./pandorafms.agent_unix_7.0NG.deb' 'Installing Pandora FMS agent'
|
||||||
fi
|
fi
|
||||||
|
@ -422,7 +422,7 @@ execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA
|
|||||||
execute_cmd "yum install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages"
|
execute_cmd "yum install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages"
|
||||||
|
|
||||||
# Copy gotty utility
|
# Copy gotty utility
|
||||||
execute_cmd "wget https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz" 'Dowloading gotty util'
|
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
|
tar xvzf gotty_linux_amd64.tar.gz &>> $LOGFILE
|
||||||
execute_cmd "mv gotty /usr/bin/" 'Installing gotty util'
|
execute_cmd "mv gotty /usr/bin/" 'Installing gotty util'
|
||||||
|
|
||||||
|
@ -14,11 +14,13 @@ PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf
|
|||||||
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf
|
||||||
|
|
||||||
|
|
||||||
S_VERSION='2022020801'
|
S_VERSION='2022052501'
|
||||||
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log"
|
||||||
|
|
||||||
# define default variables
|
# define default variables
|
||||||
[ "$TZ" ] || TZ="Europe/Madrid"
|
[ "$TZ" ] || TZ="Europe/Madrid"
|
||||||
|
[ "$MYVER" ] || MYVER=57
|
||||||
|
[ "$PHPVER" ] || PHPVER=7
|
||||||
[ "$DBHOST" ] || DBHOST=127.0.0.1
|
[ "$DBHOST" ] || DBHOST=127.0.0.1
|
||||||
[ "$DBNAME" ] || DBNAME=pandora
|
[ "$DBNAME" ] || DBNAME=pandora
|
||||||
[ "$DBUSER" ] || DBUSER=pandora
|
[ "$DBUSER" ] || DBUSER=pandora
|
||||||
@ -203,15 +205,28 @@ fi
|
|||||||
#Installing wget
|
#Installing wget
|
||||||
execute_cmd "dnf install -y wget" "Installing wget"
|
execute_cmd "dnf install -y wget" "Installing wget"
|
||||||
|
|
||||||
#Installing extra repositiries
|
#Installing php
|
||||||
|
|
||||||
execute_cmd "dnf module reset -y php " "Disabling standard PHP module"
|
execute_cmd "dnf module reset -y php " "Disabling standard PHP module"
|
||||||
execute_cmd "dnf module install -y php:remi-7.4" "Configuring PHP"
|
if [ "$PHPVER" -ne '8' ] ; then
|
||||||
|
execute_cmd "dnf module install -y php:remi-7.4" "Configuring PHP 7"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$PHPVER" -eq '8' ] ; then
|
||||||
|
execute_cmd "dnf module install -y php:remi-8.0" "Configuring PHP 8"
|
||||||
|
fi
|
||||||
|
|
||||||
# Install percona Database
|
# Install percona Database
|
||||||
execute_cmd "dnf module disable -y mysql" "Disabiling mysql module"
|
execute_cmd "dnf module disable -y mysql" "Disabiling mysql module"
|
||||||
#rm -rf /etc/my.cnf
|
|
||||||
execute_cmd "dnf install -y Percona-Server-server-57" "Installing Percona Server"
|
if [ "$MYVER" -eq '80' ] ; then
|
||||||
|
execute_cmd "percona-release setup ps80 -y" "Enabling mysql80 module"
|
||||||
|
execute_cmd "dnf install -y percona-server-server percona-xtrabackup-24" "Installing Percona Server 80"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MYVER" -ne '80' ] ; then
|
||||||
|
execute_cmd "dnf install -y Percona-Server-server-57 percona-xtrabackup-24" "Installing Percona Server 57"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Console dependencies
|
# Console dependencies
|
||||||
console_dependencies=" \
|
console_dependencies=" \
|
||||||
@ -381,20 +396,33 @@ EO_CONFIG_TMP
|
|||||||
|
|
||||||
#Configuring Database
|
#Configuring Database
|
||||||
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then
|
||||||
execute_cmd "systemctl start mysqld" "Starting database engine"
|
execute_cmd "systemctl start mysqld" "Starting database engine"
|
||||||
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
|
export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev)
|
||||||
echo """
|
if [ "$MYVER" -eq '80' ] ; then
|
||||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!');
|
echo """
|
||||||
UNINSTALL PLUGIN validate_password;
|
SET PASSWORD FOR 'root'@'localhost' = 'Pandor4!';
|
||||||
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS');
|
UNINSTALL COMPONENT 'file://component_validate_password';
|
||||||
""" | mysql --connect-expired-password -uroot &>> "$LOGFILE"
|
SET PASSWORD FOR 'root'@'localhost' = '$DBROOTPASS';
|
||||||
|
""" | mysql --connect-expired-password -uroot &>> "$LOGFILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MYVER" -ne '80' ] ; then
|
||||||
|
echo """
|
||||||
|
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!');
|
||||||
|
UNINSTALL PLUGIN validate_password;
|
||||||
|
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS');
|
||||||
|
""" | mysql --connect-expired-password -uroot &>> "$LOGFILE"fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
export MYSQL_PWD=$DBROOTPASS
|
export MYSQL_PWD=$DBROOTPASS
|
||||||
echo -en "${cyan}Creating Pandora FMS database...${reset}"
|
echo -en "${cyan}Creating Pandora FMS database...${reset}"
|
||||||
echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST
|
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."
|
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
|
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
|
||||||
|
|
||||||
export MYSQL_PWD=$DBPASS
|
export MYSQL_PWD=$DBPASS
|
||||||
|
|
||||||
#Generating my.cnf
|
#Generating my.cnf
|
||||||
@ -442,6 +470,10 @@ pid-file=/var/run/mysqld/mysqld.pid
|
|||||||
|
|
||||||
EO_CONFIG_F
|
EO_CONFIG_F
|
||||||
|
|
||||||
|
if [ "$MYVER" -eq '80' ] ; then
|
||||||
|
sed -i -e "/query_cache.*/ s/^#*/#/g" /etc/my.cnf
|
||||||
|
fi
|
||||||
|
|
||||||
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
execute_cmd "systemctl restart mysqld" "Configuring database engine"
|
||||||
|
|
||||||
|
|
||||||
@ -465,7 +497,7 @@ execute_cmd "curl -LSs --output pandorafms_agent_unix-7.0NG.noarch.rpm ${PANDORA
|
|||||||
execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "Installing Pandora FMS packages"
|
execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "Installing Pandora FMS packages"
|
||||||
|
|
||||||
# Copy gotty utility
|
# Copy gotty utility
|
||||||
execute_cmd "wget https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz" 'Dowloading gotty util'
|
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
|
tar xvzf gotty_linux_amd64.tar.gz &>> $LOGFILE
|
||||||
execute_cmd "mv gotty /usr/bin/" 'Installing gotty util'
|
execute_cmd "mv gotty /usr/bin/" 'Installing gotty util'
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, AIX version
|
# Version 7.0NG.762, AIX version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, FreeBSD Version
|
# Version 7.0NG.762, FreeBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, HP-UX Version
|
# Version 7.0NG.762, HP-UX Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, GNU/Linux
|
# Version 7.0NG.762, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, GNU/Linux
|
# Version 7.0NG.762, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, Solaris Version
|
# Version 7.0NG.762, Solaris Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Base config file for Pandora FMS Windows Agent
|
# Base config file for Pandora FMS Windows Agent
|
||||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||||
# Version 7.0NG.761
|
# Version 7.0NG.762
|
||||||
# This program is Free Software, you can redistribute it and/or modify it
|
# This program is Free Software, you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||||
# Foundation; either version 2 of the Licence or any later version
|
# Foundation; either version 2 of the Licence or any later version
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.761, AIX version
|
# Version 7.0NG.762, AIX version
|
||||||
|
|
||||||
# General Parameters
|
# General Parameters
|
||||||
# ==================
|
# ==================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.761
|
# Version 7.0NG.762
|
||||||
# FreeBSD/IPSO version
|
# FreeBSD/IPSO version
|
||||||
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
# Licenced under GPL licence, 2003-2007 Sancho Lerena
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.761, HPUX Version
|
# Version 7.0NG.762, HPUX Version
|
||||||
|
|
||||||
# General Parameters
|
# General Parameters
|
||||||
# ==================
|
# ==================
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761
|
# Version 7.0NG.762
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# please visit http://pandora.sourceforge.net
|
# please visit http://pandora.sourceforge.net
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761
|
# Version 7.0NG.762
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# please visit http://pandora.sourceforge.net
|
# please visit http://pandora.sourceforge.net
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761
|
# Version 7.0NG.762
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# please visit http://pandora.sourceforge.net
|
# please visit http://pandora.sourceforge.net
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Fichero de configuracion base de agentes de Pandora
|
# Fichero de configuracion base de agentes de Pandora
|
||||||
# Base config file for Pandora agents
|
# Base config file for Pandora agents
|
||||||
# Version 7.0NG.761, Solaris version
|
# Version 7.0NG.762, Solaris version
|
||||||
|
|
||||||
# General Parameters
|
# General Parameters
|
||||||
# ==================
|
# ==================
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, AIX version
|
# Version 7.0NG.762, AIX version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-agent-unix
|
package: pandorafms-agent-unix
|
||||||
Version: 7.0NG.761-220509
|
Version: 7.0NG.762-220603
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.761-220509"
|
pandora_version="7.0NG.762-220603"
|
||||||
|
|
||||||
echo "Test if you has the tools for to make the packages."
|
echo "Test if you has the tools for to make the packages."
|
||||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||||
|
@ -31,7 +31,7 @@ fi
|
|||||||
if [ "$#" -ge 2 ]; then
|
if [ "$#" -ge 2 ]; then
|
||||||
VERSION="$2"
|
VERSION="$2"
|
||||||
else
|
else
|
||||||
VERSION="7.0NG.761"
|
VERSION="7.0NG.762"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Path for the generated DMG file
|
# Path for the generated DMG file
|
||||||
|
@ -19,11 +19,11 @@
|
|||||||
<choice id="com.pandorafms.pandorafms_src" visible="false">
|
<choice id="com.pandorafms.pandorafms_src" visible="false">
|
||||||
<pkg-ref id="com.pandorafms.pandorafms_src"/>
|
<pkg-ref id="com.pandorafms.pandorafms_src"/>
|
||||||
</choice>
|
</choice>
|
||||||
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.761" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.762" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
||||||
<choice id="com.pandorafms.pandorafms_uninstall" visible="true" customLocation="/Applications">
|
<choice id="com.pandorafms.pandorafms_uninstall" visible="true" customLocation="/Applications">
|
||||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall"/>
|
<pkg-ref id="com.pandorafms.pandorafms_uninstall"/>
|
||||||
</choice>
|
</choice>
|
||||||
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.761" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.762" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
||||||
<!-- <installation-check script="check()" />
|
<!-- <installation-check script="check()" />
|
||||||
<script>
|
<script>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
<key>CFBundleIconFile</key> <string>pandorafms.icns</string>
|
<key>CFBundleIconFile</key> <string>pandorafms.icns</string>
|
||||||
<key>CFBundleIdentifier</key> <string>com.pandorafms.pandorafms_uninstall</string>
|
<key>CFBundleIdentifier</key> <string>com.pandorafms.pandorafms_uninstall</string>
|
||||||
|
|
||||||
<key>CFBundleVersion</key> <string>7.0NG.761</string>
|
<key>CFBundleVersion</key> <string>7.0NG.762</string>
|
||||||
<key>CFBundleGetInfoString</key> <string>7.0NG.761 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
<key>CFBundleGetInfoString</key> <string>7.0NG.762 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||||
<key>CFBundleShortVersionString</key> <string>7.0NG.761</string>
|
<key>CFBundleShortVersionString</key> <string>7.0NG.762</string>
|
||||||
|
|
||||||
<key>NSPrincipalClass</key><string>NSApplication</string>
|
<key>NSPrincipalClass</key><string>NSApplication</string>
|
||||||
<key>NSMainNibFile</key><string>MainMenu</string>
|
<key>NSMainNibFile</key><string>MainMenu</string>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, GNU/Linux
|
# Version 7.0NG.762, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, FreeBSD Version
|
# Version 7.0NG.762, FreeBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, HP-UX Version
|
# Version 7.0NG.762, HP-UX Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, GNU/Linux
|
# Version 7.0NG.762, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, GNU/Linux
|
# Version 7.0NG.762, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, NetBSD Version
|
# Version 7.0NG.762, NetBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.761, Solaris Version
|
# Version 7.0NG.762, Solaris Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -1014,8 +1014,8 @@ my $Sem = undef;
|
|||||||
# Semaphore used to control the number of threads
|
# Semaphore used to control the number of threads
|
||||||
my $ThreadSem = undef;
|
my $ThreadSem = undef;
|
||||||
|
|
||||||
use constant AGENT_VERSION => '7.0NG.761';
|
use constant AGENT_VERSION => '7.0NG.762';
|
||||||
use constant AGENT_BUILD => '220509';
|
use constant AGENT_BUILD => '220603';
|
||||||
|
|
||||||
# Agent log default file size maximum and instances
|
# Agent log default file size maximum and instances
|
||||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#Pandora FMS Linux Agent
|
#Pandora FMS Linux Agent
|
||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0NG.761
|
%define version 7.0NG.762
|
||||||
%define release 220509
|
%define release 220603
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#Pandora FMS Linux Agent
|
#Pandora FMS Linux Agent
|
||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0NG.761
|
%define version 7.0NG.762
|
||||||
%define release 220509
|
%define release 220603
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
# Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license.
|
||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.761"
|
PI_VERSION="7.0NG.762"
|
||||||
PI_BUILD="220509"
|
PI_BUILD="220603"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Base config file for Pandora FMS Windows Agent
|
# Base config file for Pandora FMS Windows Agent
|
||||||
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
# (c) 2006-2021 Artica Soluciones Tecnologicas
|
||||||
# Version 7.0NG.761
|
# Version 7.0NG.762
|
||||||
# This program is Free Software, you can redistribute it and/or modify it
|
# This program is Free Software, you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public Licence as published by the Free Software
|
# under the terms of the GNU General Public Licence as published by the Free Software
|
||||||
# Foundation; either version 2 of the Licence or any later version
|
# Foundation; either version 2 of the Licence or any later version
|
||||||
|
@ -3,7 +3,7 @@ AllowLanguageSelection
|
|||||||
{Yes}
|
{Yes}
|
||||||
|
|
||||||
AppName
|
AppName
|
||||||
{Pandora FMS Windows Agent v7.0NG.761}
|
{Pandora FMS Windows Agent v7.0NG.762}
|
||||||
|
|
||||||
ApplicationID
|
ApplicationID
|
||||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||||
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{220509}
|
{220603}
|
||||||
|
|
||||||
ViewReadme
|
ViewReadme
|
||||||
{Yes}
|
{Yes}
|
||||||
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||||||
using namespace Pandora_Strutils;
|
using namespace Pandora_Strutils;
|
||||||
|
|
||||||
#define PATH_SIZE _MAX_PATH+1
|
#define PATH_SIZE _MAX_PATH+1
|
||||||
#define PANDORA_VERSION ("7.0NG.761 Build 220509")
|
#define PANDORA_VERSION ("7.0NG.762 Build 220603")
|
||||||
|
|
||||||
string pandora_path;
|
string pandora_path;
|
||||||
string pandora_dir;
|
string pandora_dir;
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
|||||||
VALUE "LegalCopyright", "Artica ST"
|
VALUE "LegalCopyright", "Artica ST"
|
||||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||||
VALUE "ProductVersion", "(7.0NG.761(Build 220509))"
|
VALUE "ProductVersion", "(7.0NG.762(Build 220603))"
|
||||||
VALUE "FileVersion", "1.0.0.0"
|
VALUE "FileVersion", "1.0.0.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-console
|
package: pandorafms-console
|
||||||
Version: 7.0NG.761-220509
|
Version: 7.0NG.762-220603
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.761-220509"
|
pandora_version="7.0NG.762-220603"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
5
pandora_console/extras/mr/54.sql
Normal file
5
pandora_console/extras/mr/54.sql
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('lts_name', 'Akira');
|
||||||
|
|
||||||
|
COMMIT;
|
@ -11,5 +11,6 @@ ALTER TABLE `tnotification_user` ADD CONSTRAINT `tnotification_user_ibfk_2` FORE
|
|||||||
ALTER TABLE `tnotification_source_user` ADD CONSTRAINT `tnotification_source_user_ibfk_2` FOREIGN KEY (`id_user`) REFERENCES `tusuario` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;
|
ALTER TABLE `tnotification_source_user` ADD CONSTRAINT `tnotification_source_user_ibfk_2` FOREIGN KEY (`id_user`) REFERENCES `tusuario` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
ALTER TABLE `tnotification_source_group_user` ADD CONSTRAINT `tnotification_source_group_user_ibfk_2` FOREIGN KEY (`id_user`) REFERENCES `tusuario` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;
|
ALTER TABLE `tnotification_source_group_user` ADD CONSTRAINT `tnotification_source_group_user_ibfk_2` FOREIGN KEY (`id_user`) REFERENCES `tusuario` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
ALTER TABLE `tvisual_console_elements_cache` ADD CONSTRAINT `tvisual_console_elements_cache_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `tusuario` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;
|
ALTER TABLE `tvisual_console_elements_cache` ADD CONSTRAINT `tvisual_console_elements_cache_ibfk_3` FOREIGN KEY (`user_id`) REFERENCES `tusuario` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
ALTER TABLE `tservice` ADD COLUMN `enable_sunburst` tinyint(1) NOT NULL default 0;
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
@ -37,7 +37,7 @@ ui_require_css_file('first_task');
|
|||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clusters defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clusters defined yet.') ]);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="new_task_cluster">
|
<div class="new_task">
|
||||||
<div class="image_task_cluster">
|
<div class="image_task_cluster">
|
||||||
<?php echo html_print_image('images/first_task/slave-mode.png', true, ['title' => __('Clusters')]); ?>
|
<?php echo html_print_image('images/first_task/slave-mode.png', true, ['title' => __('Clusters')]); ?>
|
||||||
</div>
|
</div>
|
||||||
|
@ -31,6 +31,10 @@ if (!$config['MR']) {
|
|||||||
$config['MR'] = 0;
|
$config['MR'] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($config['lts_name']) === false) {
|
||||||
|
$config['lts_name'] = '';
|
||||||
|
}
|
||||||
|
|
||||||
echo '<a class="footer"target="_blank" href="'.$config['homeurl'].$license_file.'">';
|
echo '<a class="footer"target="_blank" href="'.$config['homeurl'].$license_file.'">';
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_update_manager.php';
|
require_once $config['homedir'].'/include/functions_update_manager.php';
|
||||||
@ -46,7 +50,7 @@ if ($current_package === null) {
|
|||||||
echo __(
|
echo __(
|
||||||
'%s %s - %s - MR %s',
|
'%s %s - %s - MR %s',
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
$pandora_version,
|
$pandora_version.' '.$config['lts_name'],
|
||||||
$build_package_version,
|
$build_package_version,
|
||||||
$config['MR']
|
$config['MR']
|
||||||
).'</a><br><span>'.__('Page generated on %s', date('Y-m-d H:i:s')).'</span><br>';
|
).'</a><br><span>'.__('Page generated on %s', date('Y-m-d H:i:s')).'</span><br>';
|
||||||
|
@ -256,7 +256,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
$ignored_params['refr'] = '';
|
$ignored_params['refr'] = '';
|
||||||
$values = get_refresh_time_array();
|
$values = get_refresh_time_array();
|
||||||
|
|
||||||
$autorefresh_additional = '<span id="combo_refr" class="invisible">';
|
$autorefresh_additional = '<span id="combo_refr" class="invisible_events">';
|
||||||
$autorefresh_additional .= html_print_select(
|
$autorefresh_additional .= html_print_select(
|
||||||
$values,
|
$values,
|
||||||
'ref',
|
'ref',
|
||||||
@ -875,9 +875,9 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
$('div#head').addClass('fixed_header');
|
$('div#head').addClass('fixed_header');
|
||||||
$('div#main').css('padding-top', $('div#head').innerHeight() + 'px');
|
$('div#main').css('padding-top', $('div#head').innerHeight() + 'px');
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Temporal fix to hide graphics when ui_dialog are displayed */
|
/* Temporal fix to hide graphics when ui_dialog are displayed */
|
||||||
$("#yougotalert").click(function () {
|
$("#yougotalert").click(function () {
|
||||||
$("#agent_access").css("display", "none");
|
$("#agent_access").css("display", "none");
|
||||||
});
|
});
|
||||||
$("#ui_close_dialog_titlebar").click(function () {
|
$("#ui_close_dialog_titlebar").click(function () {
|
||||||
@ -912,7 +912,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
|
|
||||||
var autorefresh_draw = '<?php echo $autorefresh_draw; ?>';
|
var autorefresh_draw = '<?php echo $autorefresh_draw; ?>';
|
||||||
$("#header_autorefresh").css('padding-right', '5px');
|
$("#header_autorefresh").css('padding-right', '5px');
|
||||||
if(autorefresh_draw == true) {
|
if(autorefresh_draw == true) {
|
||||||
var refresh_interval = parseInt('<?php echo ($config['refr'] * 1000); ?>');
|
var refresh_interval = parseInt('<?php echo ($config['refr'] * 1000); ?>');
|
||||||
var until_time='';
|
var until_time='';
|
||||||
|
|
||||||
@ -921,7 +921,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
until_time.setTime (until_time.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
until_time.setTime (until_time.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||||
|
|
||||||
$("#refrcounter").countdown ({
|
$("#refrcounter").countdown ({
|
||||||
until: until_time,
|
until: until_time,
|
||||||
layout: '%M%nn%M:%S%nn%S',
|
layout: '%M%nn%M:%S%nn%S',
|
||||||
labels: ['', '', '', '', '', '', ''],
|
labels: ['', '', '', '', '', '', ''],
|
||||||
onExpiry: function () {
|
onExpiry: function () {
|
||||||
@ -936,9 +936,9 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
} else {
|
} else {
|
||||||
var refr_time = <?php echo (int) get_parameter('refr', $config['refr']); ?>;
|
var refr_time = <?php echo (int) get_parameter('refr', $config['refr']); ?>;
|
||||||
var t = new Date();
|
var t = new Date();
|
||||||
t.setTime (t.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
t.setTime (t.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||||
$("#refrcounter").countdown ({
|
$("#refrcounter").countdown ({
|
||||||
until: t,
|
until: t,
|
||||||
layout: '%M%nn%M:%S%nn%S',
|
layout: '%M%nn%M:%S%nn%S',
|
||||||
labels: ['', '', '', '', '', '', ''],
|
labels: ['', '', '', '', '', '', ''],
|
||||||
onExpiry: function () {
|
onExpiry: function () {
|
||||||
@ -957,7 +957,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
$("#combo_refr").toggle ();
|
$("#combo_refr").toggle ();
|
||||||
$("select#ref").change (function () {
|
$("select#ref").change (function () {
|
||||||
href = $("a.autorefresh").attr ("href");
|
href = $("a.autorefresh").attr ("href");
|
||||||
|
|
||||||
if(autorefresh_draw == true){
|
if(autorefresh_draw == true){
|
||||||
inputs = $("#events_form :input");
|
inputs = $("#events_form :input");
|
||||||
values = {};
|
values = {};
|
||||||
@ -965,17 +965,17 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
values[this.name] = $(this).val();
|
values[this.name] = $(this).val();
|
||||||
})
|
})
|
||||||
|
|
||||||
var newValue = btoa(JSON.stringify(values));
|
var newValue = btoa(JSON.stringify(values));
|
||||||
<?php
|
<?php
|
||||||
// Check if the url has the parameter fb64.
|
// Check if the url has the parameter fb64.
|
||||||
if (isset($_GET['fb64']) === true) {
|
if (isset($_GET['fb64']) === true) {
|
||||||
$fb64 = $_GET['fb64'];
|
$fb64 = $_GET['fb64'];
|
||||||
?>
|
?>
|
||||||
var fb64 = '<?php echo $fb64; ?>';
|
var fb64 = '<?php echo $fb64; ?>';
|
||||||
// Check if the filters have changed.
|
// Check if the filters have changed.
|
||||||
if(fb64 !== newValue){
|
if(fb64 !== newValue){
|
||||||
href = href.replace(fb64, newValue);
|
href = href.replace(fb64, newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).attr("location", href+ '&refr=' + this.value);
|
$(document).attr("location", href+ '&refr=' + this.value);
|
||||||
<?php
|
<?php
|
||||||
@ -989,7 +989,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
|
|||||||
$(document).attr ("location", href + this.value);
|
$(document).attr ("location", href + this.value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -278,11 +278,11 @@ foreach ($sessions as $session) {
|
|||||||
true
|
true
|
||||||
).human_time_comparation($session['utimestamp'], 'tiny');
|
).human_time_comparation($session['utimestamp'], 'tiny');
|
||||||
$data[3] = $session_ip_origen;
|
$data[3] = $session_ip_origen;
|
||||||
$description = str_replace([',', ', '], ', ', $session['descripcion']);
|
$description = io_safe_output(str_replace([',', ', '], ', ', $session['descripcion']));
|
||||||
if (strlen($description) > 100) {
|
if (strlen($description) > 100) {
|
||||||
$data[4] = '<div >'.io_safe_output(substr($description, 0, 150).'...').'</div>';
|
$data[4] = '<div >'.io_safe_input(substr($description, 0, 150)).'...</div>';
|
||||||
} else {
|
} else {
|
||||||
$data[4] = '<div >'.io_safe_output($description).'</div>';
|
$data[4] = '<div >'.io_safe_input($description).'</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
array_push($table->data, $data);
|
array_push($table->data, $data);
|
||||||
|
@ -1156,7 +1156,7 @@ if (check_acl($config['id_user'], 0, 'PM')) {
|
|||||||
);
|
);
|
||||||
$table_advanced->colspan[16][1] = 6;
|
$table_advanced->colspan[16][1] = 6;
|
||||||
} else {
|
} else {
|
||||||
// Store in a hidden field if is not visible to avoid delete the value
|
// Store in a hidden field if is not visible to avoid delete the value.
|
||||||
$table_advanced->data[15][4] .= html_print_input_hidden('id_category', $id_category, true);
|
$table_advanced->data[15][4] .= html_print_input_hidden('id_category', $id_category, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1193,7 +1193,7 @@ if (!$in_policy) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Advanced form part
|
// Advanced form part.
|
||||||
$table_macros = new stdClass();
|
$table_macros = new stdClass();
|
||||||
$table_macros->id = 'module_macros';
|
$table_macros->id = 'module_macros';
|
||||||
$table_macros->width = '100%';
|
$table_macros->width = '100%';
|
||||||
@ -1398,7 +1398,7 @@ ui_require_jquery_file('json');
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/* <![CDATA[ */
|
/* <![CDATA[ */
|
||||||
$(document).ready (function () {
|
$(document).ready (function () {
|
||||||
var disabledBecauseInPolicy = <?php echo '\''.(empty($disabledBecauseInPolicy) === true ? '0' : '1').'\''; ?>;
|
var disabledBecauseInPolicy = <?php echo '\''.((empty($disabledBecauseInPolicy) === true) ? '0' : '1').'\''; ?>;
|
||||||
$("#right").click (function () {
|
$("#right").click (function () {
|
||||||
jQuery.each($("select[name='id_tag_available[]'] option:selected"), function (key, value) {
|
jQuery.each($("select[name='id_tag_available[]'] option:selected"), function (key, value) {
|
||||||
tag_name = $(value).html();
|
tag_name = $(value).html();
|
||||||
@ -1407,12 +1407,16 @@ $(document).ready (function () {
|
|||||||
$("#id_tag_available").find("option[value='" + tag_name + "']").remove();
|
$("#id_tag_available").find("option[value='" + tag_name + "']").remove();
|
||||||
$("#id_tag_selected").find("option[value='']").remove();
|
$("#id_tag_selected").find("option[value='']").remove();
|
||||||
if($("#id_tag_available option").length == 0) {
|
if($("#id_tag_available option").length == 0) {
|
||||||
$("select[name='id_tag_available[]']").append(value);
|
$("select[name='id_tag_available[]']").append(
|
||||||
|
$("<option></option>").val('').html(
|
||||||
|
'<i><?php echo __('None'); ?></i>'
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#left").click (function () {
|
$("#left").click (function () {
|
||||||
jQuery.each($("select[name='id_tag_selected[]'] option:selected"), function (key, value) {
|
jQuery.each($("select[name='id_tag_selected[]'] option:selected"), function (key, value) {
|
||||||
tag_name = $(value).html();
|
tag_name = $(value).html();
|
||||||
@ -1422,7 +1426,11 @@ $(document).ready (function () {
|
|||||||
$("#id_tag_selected").find("option[value='" + id_tag + "']").remove();
|
$("#id_tag_selected").find("option[value='" + id_tag + "']").remove();
|
||||||
$("#id_tag_available").find("option[value='']").remove();
|
$("#id_tag_available").find("option[value='']").remove();
|
||||||
if($("#id_tag_selected option").length == 0) {
|
if($("#id_tag_selected option").length == 0) {
|
||||||
$("select[name='id_tag_selected[]']").append(value);
|
$("select[name='id_tag_selected[]']").append(
|
||||||
|
$("<option></option>").val('').html(
|
||||||
|
'<i><?php echo __('None'); ?></i>'
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -238,6 +238,9 @@ if ($searchFlag) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$id_agents = array_keys($agents);
|
$id_agents = array_keys($agents);
|
||||||
|
if (empty($id_agents) === true) {
|
||||||
|
$id_agents[0] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$total = agents_get_alerts_simple(
|
$total = agents_get_alerts_simple(
|
||||||
(empty($agent_id) === false) ? ['0' => $agent_id] : $id_agents,
|
(empty($agent_id) === false) ? ['0' => $agent_id] : $id_agents,
|
||||||
|
@ -258,9 +258,9 @@ $table->style[0] = 'font-weight: bold;';
|
|||||||
$table->style[2] = 'font-weight: bold;';
|
$table->style[2] = 'font-weight: bold;';
|
||||||
$table->size = [];
|
$table->size = [];
|
||||||
$table->size[0] = '15%';
|
$table->size[0] = '15%';
|
||||||
$table->size[1] = '40%';
|
$table->size[1] = '35%';
|
||||||
$table->size[2] = '15%';
|
$table->size[2] = '15%';
|
||||||
$table->size[3] = '40%';
|
$table->size[3] = '35%';
|
||||||
|
|
||||||
$table->data = [];
|
$table->data = [];
|
||||||
|
|
||||||
@ -276,7 +276,12 @@ $table->data[0][1] = html_print_select(
|
|||||||
false,
|
false,
|
||||||
__('Select'),
|
__('Select'),
|
||||||
0,
|
0,
|
||||||
true
|
true,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
'',
|
||||||
|
false,
|
||||||
|
'width: 100%;'
|
||||||
);
|
);
|
||||||
$table->data[0][2] = '';
|
$table->data[0][2] = '';
|
||||||
$table->data[0][3] = '';
|
$table->data[0][3] = '';
|
||||||
@ -295,7 +300,8 @@ $table->data[1][1] = html_print_select_groups(
|
|||||||
false,
|
false,
|
||||||
true,
|
true,
|
||||||
'',
|
'',
|
||||||
$id_alert_template == 0
|
$id_alert_template == 0,
|
||||||
|
'width: 100%;'
|
||||||
);
|
);
|
||||||
|
|
||||||
$table->data[0][2] = __('Show alerts on disabled modules');
|
$table->data[0][2] = __('Show alerts on disabled modules');
|
||||||
|
@ -1,24 +1,39 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Table builder for Servers View.
|
||||||
|
*
|
||||||
|
* @category View
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Monitoring.
|
||||||
|
* @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
|
// Begin.
|
||||||
// ==================================================
|
|
||||||
// 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
|
|
||||||
require_once 'include/functions_clippy.php';
|
require_once 'include/functions_clippy.php';
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
|
|
||||||
if (! check_acl($config['id_user'], 0, 'AW')) {
|
if ((bool) check_acl($config['id_user'], 0, 'AR') === false) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
AUDIT_LOG_ACL_VIOLATION,
|
AUDIT_LOG_ACL_VIOLATION,
|
||||||
'Trying to access Server Management'
|
'Trying to access Server Management'
|
||||||
@ -57,7 +72,6 @@ $table->headstyle[1] = 'text-align:center';
|
|||||||
$table->headstyle[3] = 'text-align:center';
|
$table->headstyle[3] = 'text-align:center';
|
||||||
$table->headstyle[8] = 'text-align:right;width: 120px;';
|
$table->headstyle[8] = 'text-align:right;width: 120px;';
|
||||||
|
|
||||||
// $table->title = __('Tactical server information');
|
|
||||||
$table->titleclass = 'tabletitle';
|
$table->titleclass = 'tabletitle';
|
||||||
$table->titlestyle = 'text-transform:uppercase;';
|
$table->titlestyle = 'text-transform:uppercase;';
|
||||||
|
|
||||||
@ -69,11 +83,11 @@ $table->head[3] = __('Version');
|
|||||||
$table->head[4] = __('Modules');
|
$table->head[4] = __('Modules');
|
||||||
$table->head[5] = __('Lag').ui_print_help_tip(__('Avg. Delay(sec)/Modules delayed'), true);
|
$table->head[5] = __('Lag').ui_print_help_tip(__('Avg. Delay(sec)/Modules delayed'), true);
|
||||||
$table->head[6] = __('T/Q').ui_print_help_tip(__('Threads / Queued modules currently'), true);
|
$table->head[6] = __('T/Q').ui_print_help_tip(__('Threads / Queued modules currently'), true);
|
||||||
// This will have a column of data such as "6 hours"
|
// This will have a column of data such as "6 hours".
|
||||||
$table->head[7] = __('Updated');
|
$table->head[7] = __('Updated');
|
||||||
|
|
||||||
// Only Pandora Administrator can delete servers
|
// Only Pandora Administrator can delete servers.
|
||||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
|
||||||
$table->head[8] = '<span title="Operations">'.__('Op.').'</span>';
|
$table->head[8] = '<span title="Operations">'.__('Op.').'</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,14 +103,14 @@ foreach ($servers as $server) {
|
|||||||
|
|
||||||
foreach ($servers as $server) {
|
foreach ($servers as $server) {
|
||||||
$data = [];
|
$data = [];
|
||||||
// $table->cellclass[][3] = 'progress_bar';
|
|
||||||
$table->cellclass[] = [
|
$table->cellclass[] = [
|
||||||
3 => 'progress_bar',
|
3 => 'progress_bar',
|
||||||
8 => 'action_buttons',
|
8 => 'action_buttons',
|
||||||
];
|
];
|
||||||
$data[0] = '<span title="'.$server['version'].'">'.strip_tags($server['name']).'</span>';
|
$data[0] = '<span title="'.$server['version'].'">'.strip_tags($server['name']).'</span>';
|
||||||
|
|
||||||
// Status
|
// Status.
|
||||||
$data[1] = ui_print_status_image(STATUS_SERVER_OK, '', true);
|
$data[1] = ui_print_status_image(STATUS_SERVER_OK, '', true);
|
||||||
if ($server['status'] == -1) {
|
if ($server['status'] == -1) {
|
||||||
$data[1] = ui_print_status_image(
|
$data[1] = ui_print_status_image(
|
||||||
@ -104,7 +118,7 @@ foreach ($servers as $server) {
|
|||||||
__('Server has crashed.'),
|
__('Server has crashed.'),
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
} else if (($server['status'] == 0)
|
} else if ((int) ($server['status'] === 0)
|
||||||
|| (($date - time_w_fixed_tz($server['keepalive'])) > ($server['server_keepalive']) * 2)
|
|| (($date - time_w_fixed_tz($server['keepalive'])) > ($server['server_keepalive']) * 2)
|
||||||
) {
|
) {
|
||||||
$data[1] = ui_print_status_image(
|
$data[1] = ui_print_status_image(
|
||||||
@ -114,13 +128,13 @@ foreach ($servers as $server) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type
|
// Type.
|
||||||
$data[2] = '<span class="nowrap">'.$server['img'];
|
$data[2] = '<span class="nowrap">'.$server['img'];
|
||||||
if ($server['master'] == $master) {
|
if ($server['master'] == $master) {
|
||||||
$data[2] .= ui_print_help_tip(__('This is a master server'), true);
|
$data[2] .= ui_print_help_tip(__('This is a master server'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($server['exec_proxy'] == 1) {
|
if ((int) $server['exec_proxy'] === 1) {
|
||||||
$data[2] .= html_print_image('images/star.png', true, ['title' => __('Exec server enabled')]);
|
$data[2] .= html_print_image('images/star.png', true, ['title' => __('Exec server enabled')]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,11 +183,11 @@ foreach ($servers as $server) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only Pandora Administrator can delete servers
|
// Only Pandora Administrator can delete servers.
|
||||||
if (check_acl($config['id_user'], 0, 'PM')) {
|
if ((bool) check_acl($config['id_user'], 0, 'PM') === true) {
|
||||||
$data[8] = '';
|
$data[8] = '';
|
||||||
|
|
||||||
if ($server['type'] == 'recon') {
|
if ($server['type'] === 'recon') {
|
||||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist').'">';
|
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=tasklist').'">';
|
||||||
$data[8] .= html_print_image(
|
$data[8] .= html_print_image(
|
||||||
'images/first_task/icono_grande_reconserver.png',
|
'images/first_task/icono_grande_reconserver.png',
|
||||||
@ -188,7 +202,7 @@ foreach ($servers as $server) {
|
|||||||
$data[8] .= '</a>';
|
$data[8] .= '</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($server['type'] == 'data') {
|
if ($server['type'] === 'data') {
|
||||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_counts='.$server['id_server']).'">';
|
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_counts='.$server['id_server']).'">';
|
||||||
$data[8] .= html_print_image(
|
$data[8] .= html_print_image(
|
||||||
'images/target.png',
|
'images/target.png',
|
||||||
@ -199,7 +213,7 @@ foreach ($servers as $server) {
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
$data[8] .= '</a>';
|
$data[8] .= '</a>';
|
||||||
} else if ($server['type'] == 'enterprise snmp') {
|
} else if ($server['type'] === 'enterprise snmp') {
|
||||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_snmp_enterprise='.$server['id_server']).'">';
|
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&refr=0&server_reset_snmp_enterprise='.$server['id_server']).'">';
|
||||||
$data[8] .= html_print_image(
|
$data[8] .= html_print_image(
|
||||||
'images/target.png',
|
'images/target.png',
|
||||||
@ -223,7 +237,7 @@ foreach ($servers as $server) {
|
|||||||
);
|
);
|
||||||
$data[8] .= '</a>';
|
$data[8] .= '</a>';
|
||||||
|
|
||||||
if (($names_servers[$safe_server_name] === true) && ($server['type'] == 'data' || $server['type'] == 'enterprise satellite')) {
|
if (($names_servers[$safe_server_name] === true) && ($server['type'] === 'data' || $server['type'] === 'enterprise satellite')) {
|
||||||
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_remote='.$server['id_server'].'&ext='.$ext).'">';
|
$data[8] .= '<a href="'.ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/modificar_server&server_remote='.$server['id_server'].'&ext='.$ext).'">';
|
||||||
$data[8] .= html_print_image(
|
$data[8] .= html_print_image(
|
||||||
'images/remote_configuration.png',
|
'images/remote_configuration.png',
|
||||||
|
@ -63,7 +63,7 @@ if (empty($directory) === true) {
|
|||||||
|
|
||||||
$real_directory = realpath($config['homedir'].'/'.$directory);
|
$real_directory = realpath($config['homedir'].'/'.$directory);
|
||||||
|
|
||||||
echo '<h4>'.__('Index of %s', $directory).'</h4>';
|
echo '<h4>'.__('Index of %s', io_safe_input($directory)).'</h4>';
|
||||||
|
|
||||||
$upload_file = (bool) get_parameter('upload_file');
|
$upload_file = (bool) get_parameter('upload_file');
|
||||||
$create_text_file = (bool) get_parameter('create_text_file');
|
$create_text_file = (bool) get_parameter('create_text_file');
|
||||||
|
@ -256,16 +256,18 @@ $table->style[0] = 'font-weight: bold';
|
|||||||
$table->size[0] = '70%';
|
$table->size[0] = '70%';
|
||||||
$table->size[1] = '30%';
|
$table->size[1] = '30%';
|
||||||
|
|
||||||
// enterprise_hook('enterprise_warnings_history_days');
|
|
||||||
$table->data[1][0] = __('Max. days before delete events');
|
$table->data[1][0] = __('Max. days before delete events');
|
||||||
|
$table->data[1][1] = html_print_input(
|
||||||
$table->data[1][1] = html_print_input_text(
|
[
|
||||||
'event_purge',
|
'type' => 'number',
|
||||||
$config['event_purge'],
|
'size' => 5,
|
||||||
'',
|
'max' => 99999,
|
||||||
5,
|
'name' => 'event_purge',
|
||||||
5,
|
'value' => $config['event_purge'],
|
||||||
true
|
'return' => true,
|
||||||
|
'min' => ((((bool) $config['history_event_enabled'] === true) && $config['history_event_days'] > 0) ? $config['history_event_days'] + 1 : null),
|
||||||
|
'style' => 'width:43px',
|
||||||
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$table->data[2][0] = __('Max. days before delete traps');
|
$table->data[2][0] = __('Max. days before delete traps');
|
||||||
|
@ -1,12 +1,20 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
|
* Setup view for Netflow
|
||||||
|
*
|
||||||
|
* @category Setup
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Configuration
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
* ______ ___ _______ _______ ________
|
* ______ ___ _______ _______ ________
|
||||||
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
*
|
*
|
||||||
* ============================================================================
|
* ============================================================================
|
||||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
* Copyright (c) 2005-2022 Artica Soluciones Tecnologicas
|
||||||
* Please see http://pandorafms.org for full contribution list
|
* Please see http://pandorafms.org for full contribution list
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
@ -18,6 +26,7 @@
|
|||||||
* ============================================================================
|
* ============================================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
require_once 'include/functions_ui.php';
|
require_once 'include/functions_ui.php';
|
||||||
@ -26,6 +35,7 @@ check_login();
|
|||||||
|
|
||||||
$update = (bool) get_parameter('update');
|
$update = (bool) get_parameter('update');
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
$table->border = 0;
|
$table->border = 0;
|
||||||
$table->cellspacing = 3;
|
$table->cellspacing = 3;
|
||||||
|
@ -5,10 +5,11 @@ if ($argv === null) {
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// UMC dependencies.
|
|
||||||
require_once __DIR__.'/vendor/autoload.php';
|
|
||||||
|
|
||||||
chdir(__DIR__.'/../../');
|
chdir(__DIR__.'/../../');
|
||||||
|
|
||||||
|
// UMC dependencies.
|
||||||
|
require_once 'vendor/autoload.php';
|
||||||
|
// Config file.
|
||||||
$cnf_file = 'include/config.php';
|
$cnf_file = 'include/config.php';
|
||||||
|
|
||||||
if (file_exists($cnf_file) === false) {
|
if (file_exists($cnf_file) === false) {
|
||||||
@ -19,9 +20,6 @@ ini_set('display_errors', 1);
|
|||||||
|
|
||||||
require_once $cnf_file;
|
require_once $cnf_file;
|
||||||
|
|
||||||
// PandoraFMS dependencies.
|
|
||||||
require_once __DIR__.'/vendor/autoload.php';
|
|
||||||
|
|
||||||
use PandoraFMS\Core\Config;
|
use PandoraFMS\Core\Config;
|
||||||
use PandoraFMS\Core\DBMaintainer;
|
use PandoraFMS\Core\DBMaintainer;
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ $table->data[$i++][1] = html_print_input_text(
|
|||||||
$url_update_manager,
|
$url_update_manager,
|
||||||
__('URL update manager'),
|
__('URL update manager'),
|
||||||
80,
|
80,
|
||||||
60,
|
255,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -713,7 +713,7 @@ class DiscoveryTaskList extends HTML
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($task['id_recon_script'] == 0 || $ipam === true) {
|
if ($task['id_recon_script'] == 0 || $ipam === true) {
|
||||||
$data[4] = $subnet;
|
$data[4] = ui_print_truncate_text($subnet, 50, true, true, true, '[…]');
|
||||||
} else {
|
} else {
|
||||||
$data[4] = '-';
|
$data[4] = '-';
|
||||||
}
|
}
|
||||||
|
BIN
pandora_console/images/widgets/os_quick_report.png
Normal file
BIN
pandora_console/images/widgets/os_quick_report.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.5 KiB |
@ -136,7 +136,7 @@ if ($get_comments === true) {
|
|||||||
// Default grouped message filtering (evento and estado).
|
// Default grouped message filtering (evento and estado).
|
||||||
$whereGrouped = sprintf(
|
$whereGrouped = sprintf(
|
||||||
'`evento` = "%s" AND `estado` = "%s"',
|
'`evento` = "%s" AND `estado` = "%s"',
|
||||||
io_safe_output($event['evento']),
|
$event['evento'],
|
||||||
$event['estado']
|
$event['estado']
|
||||||
);
|
);
|
||||||
// If id_agente is reported, filter the messages by them as well.
|
// If id_agente is reported, filter the messages by them as well.
|
||||||
|
@ -329,7 +329,7 @@ class AgentWizard extends HTML
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($this->datalist) === 1 && $this->targetIp === '') {
|
if (empty($this->datalist) === false && count($this->datalist) === 1 && $this->targetIp === '') {
|
||||||
$this->targetIp = $this->datalist[0];
|
$this->targetIp = $this->datalist[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4827,8 +4827,8 @@ class AgentWizard extends HTML
|
|||||||
// SecurityName.
|
// SecurityName.
|
||||||
$macros[6]['value'] = $this->authUserV3;
|
$macros[6]['value'] = $this->authUserV3;
|
||||||
|
|
||||||
// SecurityContext.
|
// SecurityContext. Empty by default.
|
||||||
$macros[7]['value'] = $this->community;
|
$macros[7]['value'] = '';
|
||||||
|
|
||||||
// SecurityLevel.
|
// SecurityLevel.
|
||||||
$macros[8]['value'] = $this->securityLevelV3;
|
$macros[8]['value'] = $this->securityLevelV3;
|
||||||
|
@ -811,7 +811,7 @@ class Tree
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Counters
|
// Counters.
|
||||||
if (empty($agent['counters'])) {
|
if (empty($agent['counters'])) {
|
||||||
$agent['counters'] = [];
|
$agent['counters'] = [];
|
||||||
|
|
||||||
@ -824,7 +824,7 @@ class Tree
|
|||||||
$agent['counters']['alerts'] = isset($agent['fired_count']) ? $agent['fired_count'] : 0;
|
$agent['counters']['alerts'] = isset($agent['fired_count']) ? $agent['fired_count'] : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Status image
|
// Status image.
|
||||||
$agent['statusImageHTML'] = agents_tree_view_status_img_ball(
|
$agent['statusImageHTML'] = agents_tree_view_status_img_ball(
|
||||||
$agent['counters']['critical'],
|
$agent['counters']['critical'],
|
||||||
$agent['counters']['warning'],
|
$agent['counters']['warning'],
|
||||||
@ -834,7 +834,14 @@ class Tree
|
|||||||
$agent['counters']['alerts']
|
$agent['counters']['alerts']
|
||||||
);
|
);
|
||||||
|
|
||||||
// search module recalculate counters
|
$agent['agentStatus'] = -1;
|
||||||
|
if ((bool) $this->filter['show_not_init_agents'] === true) {
|
||||||
|
if ($agent['total_count'] === 0 || $agent['total_count'] === $agent['notinit_count']) {
|
||||||
|
$agent['agentStatus'] = AGENT_STATUS_NOT_INIT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Search module recalculate counters.
|
||||||
if (array_key_exists('state_normal', $agent)) {
|
if (array_key_exists('state_normal', $agent)) {
|
||||||
$agent['counters']['unknown'] = $agent['state_unknown'];
|
$agent['counters']['unknown'] = $agent['state_unknown'];
|
||||||
$agent['counters']['critical'] = $agent['state_critical'];
|
$agent['counters']['critical'] = $agent['state_critical'];
|
||||||
@ -935,7 +942,8 @@ class Tree
|
|||||||
foreach ($agents as $iterator => $agent) {
|
foreach ($agents as $iterator => $agent) {
|
||||||
$this->processAgent($agents[$iterator], $server);
|
$this->processAgent($agents[$iterator], $server);
|
||||||
if ($agents[$iterator]['counters']['total'] !== '0'
|
if ($agents[$iterator]['counters']['total'] !== '0'
|
||||||
|| (bool) $this->filter['show_not_init_agents'] === true
|
|| ((bool) $this->filter['show_not_init_agents'] === true
|
||||||
|
&& $agents[$iterator]['agentStatus'] === AGENT_STATUS_NOT_INIT)
|
||||||
) {
|
) {
|
||||||
$agents_aux[] = $agents[$iterator];
|
$agents_aux[] = $agents[$iterator];
|
||||||
}
|
}
|
||||||
|
@ -530,33 +530,6 @@ class TreeService extends Tree
|
|||||||
$tmp['elementDescription'] = $item->description();
|
$tmp['elementDescription'] = $item->description();
|
||||||
$tmp['disabled'] = $item->service()->disabled();
|
$tmp['disabled'] = $item->service()->disabled();
|
||||||
|
|
||||||
if ($this->connectedToNode === false
|
|
||||||
&& is_metaconsole() === true
|
|
||||||
&& $tmp['metaID'] > 0
|
|
||||||
) {
|
|
||||||
// Impersonate node.
|
|
||||||
\enterprise_include_once('include/functions_metaconsole.php');
|
|
||||||
\enterprise_hook(
|
|
||||||
'metaconsole_connect',
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
$tmp['metaID'],
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (check_acl($config['id_user'], $item->service()->id_group(), 'AR')) {
|
|
||||||
$grandchildren = $item->service()->children();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->connectedToNode === false
|
|
||||||
&& is_metaconsole() === true
|
|
||||||
&& $tmp['metaID'] > 0
|
|
||||||
) {
|
|
||||||
// Restore connection.
|
|
||||||
\enterprise_hook('metaconsole_restore_db');
|
|
||||||
}
|
|
||||||
|
|
||||||
$counters = [
|
$counters = [
|
||||||
'total_modules' => 0,
|
'total_modules' => 0,
|
||||||
'total_agents' => 0,
|
'total_agents' => 0,
|
||||||
@ -565,29 +538,66 @@ class TreeService extends Tree
|
|||||||
'total' => 0,
|
'total' => 0,
|
||||||
];
|
];
|
||||||
|
|
||||||
if (is_array($grandchildren) === true) {
|
if (is_metaconsole() === false
|
||||||
$counters = array_reduce(
|
|| (isset($config['realtimestats']) === true
|
||||||
$grandchildren,
|
&& $config['realtimestats'] === true
|
||||||
function ($carry, $item) {
|
&& $tmp['metaID'] > 0)
|
||||||
if ($item->type() === SERVICE_ELEMENT_MODULE) {
|
) {
|
||||||
$carry['total_modules']++;
|
// Look for counters.
|
||||||
} else if ($item->type() === SERVICE_ELEMENT_AGENT) {
|
if ($this->connectedToNode === false
|
||||||
$carry['total_agents']++;
|
&& is_metaconsole() === true
|
||||||
} else if ($item->type() === SERVICE_ELEMENT_SERVICE) {
|
&& $tmp['metaID'] > 0
|
||||||
$carry['total_services']++;
|
) {
|
||||||
} else if ($item->type() === SERVICE_ELEMENT_DYNAMIC) {
|
// Impersonate node.
|
||||||
$carry['total_dynamic']++;
|
\enterprise_include_once('include/functions_metaconsole.php');
|
||||||
}
|
\enterprise_hook(
|
||||||
|
'metaconsole_connect',
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
$tmp['metaID'],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$carry['total']++;
|
if (check_acl($config['id_user'], $item->service()->id_group(), 'AR')) {
|
||||||
|
$grandchildren = $item->service()->children();
|
||||||
|
}
|
||||||
|
|
||||||
return $carry;
|
if ($this->connectedToNode === false
|
||||||
},
|
&& is_metaconsole() === true
|
||||||
$counters
|
&& $tmp['metaID'] > 0
|
||||||
);
|
) {
|
||||||
}
|
// Restore connection.
|
||||||
|
\enterprise_hook('metaconsole_restore_db');
|
||||||
|
}
|
||||||
|
|
||||||
if ($counters['total'] > 0) {
|
if (is_array($grandchildren) === true) {
|
||||||
|
$counters = array_reduce(
|
||||||
|
$grandchildren,
|
||||||
|
function ($carry, $item) {
|
||||||
|
if ($item->type() === SERVICE_ELEMENT_MODULE) {
|
||||||
|
$carry['total_modules']++;
|
||||||
|
} else if ($item->type() === SERVICE_ELEMENT_AGENT) {
|
||||||
|
$carry['total_agents']++;
|
||||||
|
} else if ($item->type() === SERVICE_ELEMENT_SERVICE) {
|
||||||
|
$carry['total_services']++;
|
||||||
|
} else if ($item->type() === SERVICE_ELEMENT_DYNAMIC) {
|
||||||
|
$carry['total_dynamic']++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$carry['total']++;
|
||||||
|
|
||||||
|
return $carry;
|
||||||
|
},
|
||||||
|
$counters
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($counters['total'] > 0) {
|
||||||
|
$tmp['searchChildren'] = 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Always search for.
|
||||||
$tmp['searchChildren'] = 1;
|
$tmp['searchChildren'] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
/**
|
/**
|
||||||
* Pandora build version and version
|
* Pandora build version and version
|
||||||
*/
|
*/
|
||||||
$build_version = 'PC220509';
|
$build_version = 'PC220603';
|
||||||
$pandora_version = 'v7.0NG.761';
|
$pandora_version = 'v7.0NG.762';
|
||||||
|
|
||||||
// Do not overwrite default timezone set if defined.
|
// Do not overwrite default timezone set if defined.
|
||||||
$script_tz = @date_default_timezone_get();
|
$script_tz = @date_default_timezone_get();
|
||||||
|
@ -3236,8 +3236,8 @@ function agents_get_network_interfaces($agents=false, $agents_filter=false)
|
|||||||
$ni_by_agents = [];
|
$ni_by_agents = [];
|
||||||
foreach ($agents as $agent) {
|
foreach ($agents as $agent) {
|
||||||
$agent_id = (isset($agent['id_agente'])) ? $agent['id_agente'] : $agent;
|
$agent_id = (isset($agent['id_agente'])) ? $agent['id_agente'] : $agent;
|
||||||
$agent_group_id = (isset($agent['id_grupo']) === true) ? $agent['id_grupo'] : '';
|
$agent_group_id = (isset($agent['id_grupo']) === true) ? $agent['id_grupo'] : agents_get_agent_group($agent_id);
|
||||||
$agent_name = (isset($agent['alias']) === true) ? $agent['alias'] : '';
|
$agent_name = (isset($agent['alias']) === true) ? $agent['alias'] : agents_get_alias($agent_id);
|
||||||
$agent_interfaces = [];
|
$agent_interfaces = [];
|
||||||
|
|
||||||
$accepted_module_types = [];
|
$accepted_module_types = [];
|
||||||
|
@ -1855,7 +1855,19 @@ function api_set_new_agent($thrash1, $thrash2, $other, $thrash3)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$alias = io_safe_input(trim(preg_replace('/[\/\\\|%#&$]/', '', $other['data'][0])));
|
$alias = io_safe_input(
|
||||||
|
trim(
|
||||||
|
preg_replace(
|
||||||
|
'/[\/\\\|%#&$]/',
|
||||||
|
'',
|
||||||
|
preg_replace(
|
||||||
|
'/x20;/',
|
||||||
|
' ',
|
||||||
|
$other['data'][0]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
$direccion_agente = io_safe_input($other['data'][1]);
|
$direccion_agente = io_safe_input($other['data'][1]);
|
||||||
$nombre_agente = hash('sha256', $direccion_agente.'|'.$direccion_agente.'|'.time().'|'.sprintf('%04d', rand(0, 10000)));
|
$nombre_agente = hash('sha256', $direccion_agente.'|'.$direccion_agente.'|'.time().'|'.sprintf('%04d', rand(0, 10000)));
|
||||||
$id_parent = (int) $other['data'][2];
|
$id_parent = (int) $other['data'][2];
|
||||||
|
@ -556,7 +556,7 @@ function config_update_config()
|
|||||||
$error_update[] = __('Autocreate profile group');
|
$error_update[] = __('Autocreate profile group');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config_update_value('default_assign_tags', implode(',', get_parameter('default_assign_tags')), true) === false) {
|
if (config_update_value('default_assign_tags', implode(',', get_parameter('default_assign_tags', [])), true) === false) {
|
||||||
$error_update[] = __('Autocreate profile tags');
|
$error_update[] = __('Autocreate profile tags');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2096,6 +2096,10 @@ function config_process_config()
|
|||||||
config_update_value('metaconsole_events_history', 0);
|
config_update_value('metaconsole_events_history', 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isset($config['realtimestats'])) {
|
||||||
|
config_update_value('realtimestats', 1);
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($config['trap_purge'])) {
|
if (!isset($config['trap_purge'])) {
|
||||||
config_update_value('trap_purge', 7);
|
config_update_value('trap_purge', 7);
|
||||||
}
|
}
|
||||||
|
@ -2297,6 +2297,7 @@ function events_comment(
|
|||||||
$comments_format = 'new';
|
$comments_format = 'new';
|
||||||
} else {
|
} else {
|
||||||
// If comments are not stored in json, the format is old.
|
// If comments are not stored in json, the format is old.
|
||||||
|
$event_comments[0]['user_comment'] = str_replace(["\n", '
'], '<br>', $event_comments[0]['user_comment']);
|
||||||
$event_comments_array = json_decode($event_comments[0]['user_comment']);
|
$event_comments_array = json_decode($event_comments[0]['user_comment']);
|
||||||
|
|
||||||
if (empty($event_comments_array) === true) {
|
if (empty($event_comments_array) === true) {
|
||||||
@ -5227,6 +5228,8 @@ function events_page_comments($event, $ajax=false, $groupedComments=[])
|
|||||||
$comm = $comm['user_comment'];
|
$comm = $comm['user_comment'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$comm = str_replace(["\n", '
'], '<br>', $comm);
|
||||||
|
|
||||||
$comments_array[] = io_safe_output(json_decode($comm, true));
|
$comments_array[] = io_safe_output(json_decode($comm, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -670,16 +670,16 @@ function filemanager_file_explorer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($fileinfo['is_dir']) {
|
if ($fileinfo['is_dir']) {
|
||||||
$data[1] = '<a href="'.$url.'&directory='.$relative_directory.'/'.$fileinfo['name'].'&hash2='.md5($relative_directory.'/'.$fileinfo['name'].$config['server_unique_identifier']).'">'.$fileinfo['name'].'</a>';
|
$data[1] = '<a href="'.$url.'&directory='.$relative_directory.'/'.io_safe_input($fileinfo['name']).'&hash2='.md5($relative_directory.'/'.$fileinfo['name'].$config['server_unique_identifier']).'">'.io_safe_input($fileinfo['name']).'</a>';
|
||||||
} else if (empty($url_file) === false) {
|
} else if (empty($url_file) === false) {
|
||||||
// Set the custom url file.
|
// Set the custom url file.
|
||||||
$url_file_clean = str_replace('[FILE_FULLPATH]', $fileinfo['realpath'], $url_file);
|
$url_file_clean = str_replace('[FILE_FULLPATH]', $fileinfo['realpath'], $url_file);
|
||||||
|
|
||||||
$data[1] = '<a href="'.$url_file_clean.'">'.$fileinfo['name'].'</a>';
|
$data[1] = '<a href="'.$url_file_clean.'">'.io_safe_input($fileinfo['name']).'</a>';
|
||||||
} else {
|
} else {
|
||||||
$filename = base64_encode($relative_directory.'/'.$fileinfo['name']);
|
$filename = base64_encode($relative_directory.'/'.$fileinfo['name']);
|
||||||
$hash = md5($filename.$config['server_unique_identifier']);
|
$hash = md5($filename.$config['server_unique_identifier']);
|
||||||
$data[1] = '<a href="'.$hack_metaconsole.'include/get_file.php?file='.urlencode($filename).'&hash='.$hash.'">'.$fileinfo['name'].'</a>';
|
$data[1] = '<a href="'.$hack_metaconsole.'include/get_file.php?file='.urlencode($filename).'&hash='.$hash.'">'.io_safe_input($fileinfo['name']).'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notice that uploaded php files could be dangerous.
|
// Notice that uploaded php files could be dangerous.
|
||||||
|
@ -14,54 +14,190 @@
|
|||||||
// Get critical agents by using the status code in modules.
|
// Get critical agents by using the status code in modules.
|
||||||
function os_agents_critical($id_os)
|
function os_agents_critical($id_os)
|
||||||
{
|
{
|
||||||
// TODO REVIEW ORACLE AND POSTGRES
|
global $config;
|
||||||
return db_get_sql(
|
|
||||||
"
|
$table = (is_metaconsole() === true) ? 'tmetaconsole_agent' : 'tagente';
|
||||||
SELECT COUNT(*)
|
|
||||||
FROM tagente
|
if (users_is_admin() === true) {
|
||||||
WHERE tagente.disabled=0 AND
|
return db_get_sql(
|
||||||
critical_count>0 AND id_os=$id_os"
|
sprintf(
|
||||||
);
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
critical_count>0 AND id_os=%d',
|
||||||
|
$table,
|
||||||
|
$id_os
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$groups = array_keys(users_get_groups($config['id_user'], 'AR', false));
|
||||||
|
|
||||||
|
return db_get_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
critical_count>0 AND
|
||||||
|
id_os=%d AND id_grupo IN (%s)',
|
||||||
|
$table,
|
||||||
|
$id_os,
|
||||||
|
implode(',', $groups)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Get ok agents by using the status code in modules.
|
// Get ok agents by using the status code in modules.
|
||||||
function os_agents_ok($id_os)
|
function os_agents_ok($id_os)
|
||||||
{
|
{
|
||||||
return db_get_sql(
|
global $config;
|
||||||
"
|
|
||||||
SELECT COUNT(*)
|
$table = (is_metaconsole() === true) ? 'tmetaconsole_agent' : 'tagente';
|
||||||
FROM tagente
|
|
||||||
WHERE tagente.disabled=0 AND
|
if (users_is_admin() === true) {
|
||||||
normal_count=total_count AND id_os=$id_os"
|
return db_get_sql(
|
||||||
);
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
normal_count=total_count AND id_os=%d',
|
||||||
|
$table,
|
||||||
|
$id_os
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$groups = array_keys(users_get_groups($config['id_user'], 'AR', false));
|
||||||
|
|
||||||
|
return db_get_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
normal_count=total_count AND
|
||||||
|
id_os=%d AND id_grupo IN (%s)',
|
||||||
|
$table,
|
||||||
|
$id_os,
|
||||||
|
implode(',', $groups)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Get warning agents by using the status code in modules.
|
// Get warning agents by using the status code in modules.
|
||||||
function os_agents_warning($id_os)
|
function os_agents_warning($id_os)
|
||||||
{
|
{
|
||||||
return db_get_sql(
|
global $config;
|
||||||
"
|
|
||||||
SELECT COUNT(*)
|
$table = (is_metaconsole() === true) ? 'tmetaconsole_agent' : 'tagente';
|
||||||
FROM tagente
|
|
||||||
WHERE tagente.disabled=0 AND
|
if (users_is_admin() === true) {
|
||||||
critical_count=0 AND warning_count>0 AND id_os=$id_os"
|
return db_get_sql(
|
||||||
);
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
critical_count=0 AND warning_count>0
|
||||||
|
AND id_os=%d',
|
||||||
|
$table,
|
||||||
|
$id_os
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$groups = array_keys(users_get_groups($config['id_user'], 'AR', false));
|
||||||
|
|
||||||
|
return db_get_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
critical_count=0 AND warning_count>0 AND
|
||||||
|
id_os=%d AND id_grupo IN (%s)',
|
||||||
|
$table,
|
||||||
|
$id_os,
|
||||||
|
implode(',', $groups)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Get unknown agents by using the status code in modules.
|
// Get unknown agents by using the status code in modules.
|
||||||
function os_agents_unknown($id_os)
|
function os_agents_unknown($id_os)
|
||||||
{
|
{
|
||||||
return db_get_sql(
|
global $config;
|
||||||
"
|
|
||||||
SELECT COUNT(*)
|
$table = (is_metaconsole() === true) ? 'tmetaconsole_agent' : 'tagente';
|
||||||
FROM tagente
|
|
||||||
WHERE tagente.disabled=0 AND
|
if (users_is_admin() === true) {
|
||||||
critical_count=0 AND warning_count=0 AND
|
return db_get_sql(
|
||||||
unknown_count>0 AND id_os=$id_os"
|
sprintf(
|
||||||
);
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
critical_count=0 AND warning_count=0 AND
|
||||||
|
unknown_count>0 AND id_os=%d',
|
||||||
|
$table,
|
||||||
|
$id_os
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$groups = array_keys(users_get_groups($config['id_user'], 'AR', false));
|
||||||
|
|
||||||
|
return db_get_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND
|
||||||
|
critical_count=0 AND warning_count=0 AND
|
||||||
|
unknown_count>0 AND id_os=%d AND id_grupo IN (%s)',
|
||||||
|
$table,
|
||||||
|
$id_os,
|
||||||
|
implode(',', $groups)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get total agents
|
||||||
|
*
|
||||||
|
* @param integer $id_os OS id.
|
||||||
|
*
|
||||||
|
* @return array|boolean
|
||||||
|
*/
|
||||||
|
function os_agents_total(int $id_os)
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$table = (is_metaconsole() === true) ? 'tmetaconsole_agent' : 'tagente';
|
||||||
|
|
||||||
|
if (users_is_admin() === true) {
|
||||||
|
return db_get_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND id_os=%d',
|
||||||
|
$table,
|
||||||
|
$id_os
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$groups = array_keys(users_get_groups($config['id_user'], 'AR', false));
|
||||||
|
|
||||||
|
return db_get_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT COUNT(*)
|
||||||
|
FROM %s
|
||||||
|
WHERE tagente.disabled=0 AND id_os=%d AND id_grupo IN (%s)',
|
||||||
|
$table,
|
||||||
|
$id_os,
|
||||||
|
implode(',', $groups)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@ function pandoraFlotPie(
|
|||||||
colors,
|
colors,
|
||||||
hide_labels
|
hide_labels
|
||||||
) {
|
) {
|
||||||
|
height = parseInt(height);
|
||||||
|
|
||||||
labels = labels.split(separator);
|
labels = labels.split(separator);
|
||||||
var data = values.split(separator);
|
var data = values.split(separator);
|
||||||
|
|
||||||
@ -79,11 +81,22 @@ function pandoraFlotPie(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var discount = 20;
|
||||||
|
if (water_mark) {
|
||||||
|
discount = 40;
|
||||||
|
}
|
||||||
|
|
||||||
var plot = $.plot($("#" + graph_id), data, conf_pie);
|
var plot = $.plot($("#" + graph_id), data, conf_pie);
|
||||||
|
|
||||||
var legends = $("#" + graph_id + " .legendLabel");
|
var legends = $("#" + graph_id + " .legendLabel");
|
||||||
legends.css("font-size", font_size + "pt");
|
legends.css("font-size", font_size + "pt");
|
||||||
|
|
||||||
|
var tableDiv = $("#" + graph_id + " .legend > div");
|
||||||
|
tableDiv.css("max-height", height - discount + "px");
|
||||||
|
|
||||||
|
var tableLegend = $("#" + graph_id + " .legend table");
|
||||||
|
tableLegend.css("max-height", height - discount + "px");
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
$("#" + graph_id).bind("plothover", pieHover);
|
$("#" + graph_id).bind("plothover", pieHover);
|
||||||
//$("#" + graph_id).bind("plotclick", pieClick);
|
//$("#" + graph_id).bind("plotclick", pieClick);
|
||||||
@ -443,14 +456,15 @@ function pandoraFlotHBars(
|
|||||||
"pt !important;" +
|
"pt !important;" +
|
||||||
"margin: 0; max-width: 200px;" +
|
"margin: 0; max-width: 200px;" +
|
||||||
"margin-right:5px;" +
|
"margin-right:5px;" +
|
||||||
"margin-left: -1.5em" +
|
"margin-left: -1.5em;" +
|
||||||
"text-align: right" +
|
"text-align: right;" +
|
||||||
"text-overflow: ellipsis;" +
|
"text-overflow: ellipsis;" +
|
||||||
"overflow: hidden;" +
|
"overflow: hidden;" +
|
||||||
"white-space: pre;";
|
"white-space: pre;";
|
||||||
|
|
||||||
if (label.indexOf("<br>") != -1) {
|
if (label.indexOf("<br>") != -1) {
|
||||||
div_attributes += "min-height: 2.5em;";
|
var label_array = label.split("<br>");
|
||||||
|
label = label_array[0] + label_array[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
div_attributes += '" title="' + label + '" style="overflow: hidden;"';
|
div_attributes += '" title="' + label + '" style="overflow: hidden;"';
|
||||||
@ -2455,6 +2469,8 @@ function pandoraFlotArea(
|
|||||||
number_format(value[x].max, 0, unit, short_data, divisor) +
|
number_format(value[x].max, 0, unit, short_data, divisor) +
|
||||||
" Avg: " +
|
" Avg: " +
|
||||||
number_format(value[x].avg, 0, unit, short_data, divisor);
|
number_format(value[x].avg, 0, unit, short_data, divisor);
|
||||||
|
} else {
|
||||||
|
data_legend[index] = " Min: " + 0 + " Max: " + 0 + " Avg: " + 0;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ function d3_tree_map_graph($data, $width=700, $height=700, $return=false)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function d3_sunburst_graph($data, $width=700, $height=700, $return=false)
|
function d3_sunburst_graph($data, $width=700, $height=700, $return=false, $tooltip=true)
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ function d3_sunburst_graph($data, $width=700, $height=700, $return=false)
|
|||||||
}
|
}
|
||||||
</style>';
|
</style>';
|
||||||
$output .= "<script language=\"javascript\" type=\"text/javascript\">
|
$output .= "<script language=\"javascript\" type=\"text/javascript\">
|
||||||
sunburst('#sunburst', $data, '$width', '$height');
|
sunburst('#sunburst', $data, '$width', '$height', '$tooltip');
|
||||||
</script>";
|
</script>";
|
||||||
|
|
||||||
if (!$return) {
|
if (!$return) {
|
||||||
|
@ -796,7 +796,7 @@ function treeMap(recipient, data, width, height) {
|
|||||||
// The area (or angle, depending on implementation) of each arc corresponds to its value.
|
// The area (or angle, depending on implementation) of each arc corresponds to its value.
|
||||||
// Sunburst design by John Stasko. Data courtesy Jeff Heer.
|
// Sunburst design by John Stasko. Data courtesy Jeff Heer.
|
||||||
// http://bl.ocks.org/mbostock/4348373
|
// http://bl.ocks.org/mbostock/4348373
|
||||||
function sunburst(recipient, data, width, height) {
|
function sunburst(recipient, data, width, height, tooltip = true) {
|
||||||
if (width === "auto") {
|
if (width === "auto") {
|
||||||
width = $(recipient).innerWidth();
|
width = $(recipient).innerWidth();
|
||||||
}
|
}
|
||||||
@ -858,11 +858,14 @@ function sunburst(recipient, data, width, height) {
|
|||||||
})
|
})
|
||||||
.style("cursor", "pointer")
|
.style("cursor", "pointer")
|
||||||
.on("click", click)
|
.on("click", click)
|
||||||
.on("mouseover", over_user)
|
.on("mouseover", tooltip === "1" ? over_user : "")
|
||||||
.on("mouseout", out_user)
|
.on("mouseout", out_user)
|
||||||
.on("mousemove", move_tooltip);
|
.on("mousemove", move_tooltip);
|
||||||
|
|
||||||
function computeTextRotation(d) {
|
function computeTextRotation(d) {
|
||||||
|
if (d.type === "central_service") {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
var ang = ((x(d.x + d.dx / 2) - Math.PI / 2) / Math.PI) * 180;
|
var ang = ((x(d.x + d.dx / 2) - Math.PI / 2) / Math.PI) * 180;
|
||||||
return ang > 90 ? 180 + ang : ang;
|
return ang > 90 ? 180 + ang : ang;
|
||||||
}
|
}
|
||||||
@ -882,9 +885,18 @@ function sunburst(recipient, data, width, height) {
|
|||||||
return computeTextRotation(d) > 180 ? -40 : -30;
|
return computeTextRotation(d) > 180 ? -40 : -30;
|
||||||
})
|
})
|
||||||
.attr("dx", "6") // margin
|
.attr("dx", "6") // margin
|
||||||
.attr("dy", ".35em") // vertical-align
|
.attr("dy", function(d) {
|
||||||
|
if (d.type === "central_service") {
|
||||||
|
return "-7em";
|
||||||
|
}
|
||||||
|
return ".35em";
|
||||||
|
}) // vertical-align
|
||||||
.attr("opacity", function(d) {
|
.attr("opacity", function(d) {
|
||||||
if (typeof d.show_name != "undefined" && d.show_name) return 1;
|
if (
|
||||||
|
(typeof d.show_name != "undefined" && d.show_name) ||
|
||||||
|
d.type === "central_service"
|
||||||
|
)
|
||||||
|
return 1;
|
||||||
else return 0;
|
else return 0;
|
||||||
})
|
})
|
||||||
.text(function(d) {
|
.text(function(d) {
|
||||||
@ -899,7 +911,11 @@ function sunburst(recipient, data, width, height) {
|
|||||||
window.location.href = d.link;
|
window.location.href = d.link;
|
||||||
} else {
|
} else {
|
||||||
// fade out all text elements
|
// fade out all text elements
|
||||||
text.transition().attr("opacity", 0);
|
if (d.type === "central_service") {
|
||||||
|
text.transition().attr("opacity", 1);
|
||||||
|
} else {
|
||||||
|
text.transition().attr("opacity", 0);
|
||||||
|
}
|
||||||
|
|
||||||
path
|
path
|
||||||
.transition()
|
.transition()
|
||||||
@ -965,8 +981,8 @@ function sunburst(recipient, data, width, height) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function move_tooltip(d) {
|
function move_tooltip(d) {
|
||||||
var x = d3.event.pageX + 10;
|
var x = d3.event.pageX + 10 - $("#menu_full").width();
|
||||||
var y = d3.event.pageY + 10;
|
var y = d3.event.pageY - 90;
|
||||||
|
|
||||||
$("#tooltip").css("left", x + "px");
|
$("#tooltip").css("left", x + "px");
|
||||||
$("#tooltip").css("top", y + "px");
|
$("#tooltip").css("top", y + "px");
|
||||||
@ -1017,10 +1033,10 @@ function sunburst(recipient, data, width, height) {
|
|||||||
"-moz-box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);" +
|
"-moz-box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);" +
|
||||||
"box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);" +
|
"box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.75);" +
|
||||||
"left: " +
|
"left: " +
|
||||||
x +
|
100 +
|
||||||
"px;" +
|
"px;" +
|
||||||
"top: " +
|
"top: " +
|
||||||
y +
|
100 +
|
||||||
"px;"
|
"px;"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -2027,3 +2027,33 @@ function inArray(needle, haystack) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter selector item by text based on a text input.
|
||||||
|
*
|
||||||
|
* @param {string} textbox Text input.
|
||||||
|
*
|
||||||
|
* @return {void}
|
||||||
|
*/
|
||||||
|
$.fn.filterByText = function(textbox) {
|
||||||
|
var select = this;
|
||||||
|
|
||||||
|
$(textbox).bind("change keyup", function() {
|
||||||
|
var search = $.trim($(textbox).val());
|
||||||
|
var regex = new RegExp(search, "gi");
|
||||||
|
|
||||||
|
$(select)
|
||||||
|
.find("option")
|
||||||
|
.each(function() {
|
||||||
|
if (
|
||||||
|
$(this)
|
||||||
|
.text()
|
||||||
|
.match(regex) !== null
|
||||||
|
) {
|
||||||
|
$(this).show();
|
||||||
|
} else {
|
||||||
|
$(this).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
@ -846,6 +846,10 @@ function add_macro_field(macro, row_model_id, type_copy, k) {
|
|||||||
|
|
||||||
// Change attributes to be unique and with identificable class
|
// Change attributes to be unique and with identificable class
|
||||||
$macro_field.attr("id", row_id);
|
$macro_field.attr("id", row_id);
|
||||||
|
$macro_field
|
||||||
|
.find("input")
|
||||||
|
.first()
|
||||||
|
.attr("name", macro_macro);
|
||||||
|
|
||||||
$macro_field.attr("class", "macro_field");
|
$macro_field.attr("class", "macro_field");
|
||||||
|
|
||||||
|
@ -412,6 +412,10 @@ class Widget
|
|||||||
$className .= '\WuxWidget';
|
$className .= '\WuxWidget';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'os_quick_report':
|
||||||
|
$className .= '\OsQuickReportWidget';
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$className = false;
|
$className = false;
|
||||||
break;
|
break;
|
||||||
|
@ -0,0 +1,350 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Widget Tree view Pandora FMS Console
|
||||||
|
*
|
||||||
|
* @category Console Class
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Widget Tree view
|
||||||
|
* @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.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace PandoraFMS\Dashboard;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OS quick report Widgets.
|
||||||
|
*/
|
||||||
|
class OsQuickReportWidget extends Widget
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name widget.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Title widget.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page widget;
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $page;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class name widget.
|
||||||
|
*
|
||||||
|
* @var [type]
|
||||||
|
*/
|
||||||
|
protected $className;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Values options for each widget.
|
||||||
|
*
|
||||||
|
* @var [type]
|
||||||
|
*/
|
||||||
|
protected $values;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration required.
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
protected $configurationRequired;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Error load widget.
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
protected $loadError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Width.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $width;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Heigth.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $height;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dashboard ID.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $dashboardId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cell ID.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $cellId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct.
|
||||||
|
*
|
||||||
|
* @param integer $cellId Cell ID.
|
||||||
|
* @param integer $dashboardId Dashboard ID.
|
||||||
|
* @param integer $widgetId Widget ID.
|
||||||
|
* @param integer|null $width New width.
|
||||||
|
* @param integer|null $height New height.
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
int $cellId,
|
||||||
|
int $dashboardId=0,
|
||||||
|
int $widgetId=0,
|
||||||
|
?int $width=0,
|
||||||
|
?int $height=0
|
||||||
|
) {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
// Includes.
|
||||||
|
enterprise_include_once('/include/functions_services.php');
|
||||||
|
enterprise_include_once('/include/functions_servicemap.php');
|
||||||
|
|
||||||
|
// WARNING: Do not edit. This chunk must be in the constructor.
|
||||||
|
parent::__construct(
|
||||||
|
$cellId,
|
||||||
|
$dashboardId,
|
||||||
|
$widgetId
|
||||||
|
);
|
||||||
|
|
||||||
|
// Width.
|
||||||
|
$this->width = $width;
|
||||||
|
|
||||||
|
// Height.
|
||||||
|
$this->height = $height;
|
||||||
|
|
||||||
|
// Cell Id.
|
||||||
|
$this->cellId = $cellId;
|
||||||
|
|
||||||
|
// Widget ID.
|
||||||
|
$this->widgetId = $widgetId;
|
||||||
|
|
||||||
|
// Dashboard ID.
|
||||||
|
$this->dashboardId = $dashboardId;
|
||||||
|
|
||||||
|
// Options.
|
||||||
|
$this->values = $this->decoders($this->getOptionsWidget());
|
||||||
|
|
||||||
|
// Positions.
|
||||||
|
$this->position = $this->getPositionWidget();
|
||||||
|
|
||||||
|
// Page.
|
||||||
|
$this->page = basename(__FILE__);
|
||||||
|
|
||||||
|
// ClassName.
|
||||||
|
$class = new \ReflectionClass($this);
|
||||||
|
$this->className = $class->getShortName();
|
||||||
|
|
||||||
|
// Title.
|
||||||
|
$this->title = __('OS quick report');
|
||||||
|
|
||||||
|
// Name.
|
||||||
|
if (empty($this->name) === true) {
|
||||||
|
$this->name = 'os_quick_report';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->overflow_scrollbars = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decoders hack for retrocompability.
|
||||||
|
*
|
||||||
|
* @param array $decoder Values.
|
||||||
|
*
|
||||||
|
* @return array Returns the values with the correct key.
|
||||||
|
*/
|
||||||
|
public function decoders(array $decoder): array
|
||||||
|
{
|
||||||
|
$values = [];
|
||||||
|
// Retrieve global - common inputs.
|
||||||
|
$values = parent::decoders($decoder);
|
||||||
|
|
||||||
|
return $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates inputs for form (specific).
|
||||||
|
*
|
||||||
|
* @return array Of inputs.
|
||||||
|
*
|
||||||
|
* @throws Exception On error.
|
||||||
|
*/
|
||||||
|
public function getFormInputs(): array
|
||||||
|
{
|
||||||
|
// Retrieve global - common inputs.
|
||||||
|
$inputs = parent::getFormInputs();
|
||||||
|
|
||||||
|
return $inputs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Post for widget.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getPost():array
|
||||||
|
{
|
||||||
|
// Retrieve global - common inputs.
|
||||||
|
$values = parent::getPost();
|
||||||
|
|
||||||
|
return $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Draw widget.
|
||||||
|
*
|
||||||
|
* @return string;
|
||||||
|
*/
|
||||||
|
public function load()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$values = $this->values;
|
||||||
|
|
||||||
|
$result = [];
|
||||||
|
$os_array = os_get_os();
|
||||||
|
foreach ($os_array as $os) {
|
||||||
|
$id_os = (int) $os['id_os'];
|
||||||
|
$total = os_agents_total($id_os);
|
||||||
|
if ((int) $total === 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result[$id_os]['name'] = $os['name'];
|
||||||
|
$result[$id_os]['total'] = (int) $total;
|
||||||
|
$result[$id_os]['normal'] = (int) os_agents_ok($id_os);
|
||||||
|
$result[$id_os]['critical'] = (int) os_agents_critical($id_os);
|
||||||
|
$result[$id_os]['unknown'] = (int) os_agents_unknown($id_os);
|
||||||
|
}
|
||||||
|
|
||||||
|
$output = '';
|
||||||
|
if (empty($result) === false) {
|
||||||
|
$table = new \stdClass();
|
||||||
|
|
||||||
|
$table->class = 'info_table';
|
||||||
|
$table->width = '100%';
|
||||||
|
$table->cellpadding = 0;
|
||||||
|
$table->cellspacing = 0;
|
||||||
|
$table->size = [];
|
||||||
|
$table->size[0] = '10%';
|
||||||
|
$table->size[1] = '10%';
|
||||||
|
$table->size[2] = '20%';
|
||||||
|
$table->size[3] = '20%';
|
||||||
|
$table->size[4] = '20%';
|
||||||
|
$table->size[5] = '20%';
|
||||||
|
|
||||||
|
$table->align = [];
|
||||||
|
$table->align[0] = 'center';
|
||||||
|
$table->align[1] = 'left';
|
||||||
|
$table->align[2] = 'center';
|
||||||
|
$table->align[3] = 'center';
|
||||||
|
$table->align[4] = 'center';
|
||||||
|
$table->align[5] = 'center';
|
||||||
|
|
||||||
|
$table->head = [];
|
||||||
|
$table->head[0] = __('OS');
|
||||||
|
$table->head[1] = __('OS name');
|
||||||
|
$table->head[2] = ucfirst(__('total agents'));
|
||||||
|
$table->head[3] = ucfirst(__('normal agents'));
|
||||||
|
$table->head[4] = ucfirst(__('critical agents'));
|
||||||
|
$table->head[5] = ucfirst(__('unknown agents'));
|
||||||
|
|
||||||
|
$table->headstyle = [];
|
||||||
|
$table->headstyle[0] = 'text-align:center;background-color: '.$values['background'];
|
||||||
|
$table->headstyle[1] = 'background-color: '.$values['background'];
|
||||||
|
$table->headstyle[2] = 'text-align:center;background-color: '.$values['background'];
|
||||||
|
$table->headstyle[3] = 'text-align:center;background-color: '.$values['background'];
|
||||||
|
$table->headstyle[4] = 'text-align:center;background-color: '.$values['background'];
|
||||||
|
$table->headstyle[5] = 'text-align:center;background-color: '.$values['background'];
|
||||||
|
|
||||||
|
$table->style = [];
|
||||||
|
$table->style[0] = 'background-color: '.$values['background'];
|
||||||
|
$table->style[1] = 'background-color: '.$values['background'];
|
||||||
|
$table->style[2] = 'font-size: 22px;background-color: '.$values['background'];
|
||||||
|
$table->style[3] = 'font-size: 22px;background-color: '.$values['background'];
|
||||||
|
$table->style[4] = 'font-size: 22px;background-color: '.$values['background'];
|
||||||
|
$table->style[5] = 'font-size: 22px;background-color: '.$values['background'];
|
||||||
|
|
||||||
|
foreach ($result as $id => $os) {
|
||||||
|
$data = [];
|
||||||
|
|
||||||
|
$data[0] = ui_print_os_icon($id, false, true);
|
||||||
|
$data[1] = $os['name'];
|
||||||
|
$data[2] = $os['total'];
|
||||||
|
$data[3] = $os['normal'];
|
||||||
|
$data[4] = $os['critical'];
|
||||||
|
$data[5] = $os['unknown'];
|
||||||
|
|
||||||
|
$table->data[] = $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
$output = html_print_table($table, true);
|
||||||
|
} else {
|
||||||
|
$output = 'No data available';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get description.
|
||||||
|
*
|
||||||
|
* @return string.
|
||||||
|
*/
|
||||||
|
public static function getDescription()
|
||||||
|
{
|
||||||
|
return __('OS quick report');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Name.
|
||||||
|
*
|
||||||
|
* @return string.
|
||||||
|
*/
|
||||||
|
public static function getName()
|
||||||
|
{
|
||||||
|
return 'os_quick_report';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -235,6 +235,10 @@ class ServiceMapWidget extends Widget
|
|||||||
$values['showLegend'] = $decoder['showLegend'];
|
$values['showLegend'] = $decoder['showLegend'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($decoder['sunburst']) === true) {
|
||||||
|
$values['sunburst'] = $decoder['sunburst'];
|
||||||
|
}
|
||||||
|
|
||||||
return $values;
|
return $values;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -296,19 +300,16 @@ class ServiceMapWidget extends Widget
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
// TODO refactoriced services: Hidden legend.
|
$inputs[] = [
|
||||||
/*
|
'label' => __('Enable sunburst'),
|
||||||
// Show legend.
|
|
||||||
$inputs[] = [
|
|
||||||
'label' => __('Show legend'),
|
|
||||||
'arguments' => [
|
'arguments' => [
|
||||||
'name' => 'showLegend',
|
'type' => 'switch',
|
||||||
'id' => 'showLegend',
|
'name' => 'sunburst',
|
||||||
'type' => 'switch',
|
'class' => 'event-widget-input',
|
||||||
'value' => $values['showLegend'],
|
'value' => $values['sunburst'],
|
||||||
|
'return' => true,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
*/
|
|
||||||
|
|
||||||
return $inputs;
|
return $inputs;
|
||||||
}
|
}
|
||||||
@ -325,7 +326,9 @@ class ServiceMapWidget extends Widget
|
|||||||
$values = parent::getPost();
|
$values = parent::getPost();
|
||||||
|
|
||||||
$values['serviceId'] = \get_parameter('serviceId', 0);
|
$values['serviceId'] = \get_parameter('serviceId', 0);
|
||||||
// $values['showLegend'] = \get_parameter_switch('showLegend');
|
|
||||||
|
$values['sunburst'] = \get_parameter_switch('sunburst', 0);
|
||||||
|
|
||||||
return $values;
|
return $values;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,6 +344,7 @@ class ServiceMapWidget extends Widget
|
|||||||
|
|
||||||
$size = parent::getSize();
|
$size = parent::getSize();
|
||||||
|
|
||||||
|
$output = '';
|
||||||
if (check_acl($config['id_user'], 0, 'AR') === 0) {
|
if (check_acl($config['id_user'], 0, 'AR') === 0) {
|
||||||
$output .= '<div class="container-center">';
|
$output .= '<div class="container-center">';
|
||||||
$output .= \ui_print_error_message(
|
$output .= \ui_print_error_message(
|
||||||
@ -367,42 +371,6 @@ class ServiceMapWidget extends Widget
|
|||||||
$style = 'position: relative; text-align: center;';
|
$style = 'position: relative; text-align: center;';
|
||||||
$output .= "<div id='".$containerId."' style='".$style."'>";
|
$output .= "<div id='".$containerId."' style='".$style."'>";
|
||||||
|
|
||||||
// TODO refactoriced services: Hidden legend.
|
|
||||||
/*
|
|
||||||
if ($this->values['showLegend'] === 1) {
|
|
||||||
$output .= "<div id='container_servicemap_legend".$this->values['serviceId'].'_'.$this->cellId."'>";
|
|
||||||
$output .= '<table>';
|
|
||||||
$output .= "<tr class='legend_servicemap_title'><td colspan='3' style='padding-bottom: 10px; min-width: 177px;'><b>".__('Legend').'</b></td>';
|
|
||||||
$output .= "<td><img class='legend_servicemap_toggle' style='padding-bottom: 10px;' src='images/darrowup.png'></td></tr>";
|
|
||||||
|
|
||||||
$output .= "<tr class='legend_servicemap_item'><td>";
|
|
||||||
$output .= "<img src='images/service.png'>";
|
|
||||||
$output .= '</td><td>'.__('Services').'</td>';
|
|
||||||
|
|
||||||
// Coulour legend.
|
|
||||||
$output .= "<td rowspan='3'>";
|
|
||||||
$output .= '<table>';
|
|
||||||
$output .= "<tr><td class='legend_square'><div style='background-color: ".COL_CRITICAL.";'></div></td><td>".__('Critical').'</td></tr>';
|
|
||||||
$output .= "<tr><td class='legend_square'><div style='background-color: ".COL_WARNING.";'></div></td><td>".__('Warning').'</td></tr>';
|
|
||||||
$output .= "<tr><td class='legend_square'><div style='background-color: ".COL_NORMAL.";'></div></td><td>".__('Ok').'</td></tr>';
|
|
||||||
$output .= "<tr><td class='legend_square'><div style='background-color: ".COL_UNKNOWN.";'></div></td><td>".__('Unknown').'</td></tr>';
|
|
||||||
$output .= '</table>';
|
|
||||||
$output .= '</td></tr>';
|
|
||||||
|
|
||||||
$output .= "<tr class='legend_servicemap_item'><td>";
|
|
||||||
$output .= "<img src='images/agent.png'>";
|
|
||||||
$output .= '</td><td>'.__('Agents').'</td>';
|
|
||||||
$output .= '</tr>';
|
|
||||||
|
|
||||||
$output .= "<tr class='legend_servicemap_item'><td>";
|
|
||||||
$output .= "<img src='images/module.png'>";
|
|
||||||
$output .= '</td><td>'.__('Modules').'</td>';
|
|
||||||
$output .= '</tr>';
|
|
||||||
$output .= '</table>';
|
|
||||||
$output .= '</div>';
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// TODO: removed refactoriced services. Only 1 widget Zoom.
|
// TODO: removed refactoriced services. Only 1 widget Zoom.
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT COUNT(*)
|
'SELECT COUNT(*)
|
||||||
@ -425,14 +393,21 @@ class ServiceMapWidget extends Widget
|
|||||||
);
|
);
|
||||||
// TODO:XXX fix draw service map.
|
// TODO:XXX fix draw service map.
|
||||||
ob_start();
|
ob_start();
|
||||||
servicemap_print_servicemap(
|
|
||||||
$this->values['serviceId'],
|
if ($this->values['sunburst'] === 0) {
|
||||||
false,
|
servicemap_print_servicemap(
|
||||||
$size['width'],
|
$this->values['serviceId'],
|
||||||
$size['height'],
|
false,
|
||||||
$this->cellId,
|
$size['width'],
|
||||||
$disableZoom
|
$size['height'],
|
||||||
);
|
$this->cellId,
|
||||||
|
$disableZoom
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
include_once $config['homedir'].'/include/graphs/functions_d3.php';
|
||||||
|
servicemap_print_sunburst($this->values['serviceId'], $size['width'], $size['height'], false);
|
||||||
|
}
|
||||||
|
|
||||||
$output .= ob_get_clean();
|
$output .= ob_get_clean();
|
||||||
$output .= '</div>';
|
$output .= '</div>';
|
||||||
return $output;
|
return $output;
|
||||||
|
@ -454,11 +454,38 @@ class TopNWidget extends Widget
|
|||||||
}
|
}
|
||||||
|
|
||||||
$data_hbar = [];
|
$data_hbar = [];
|
||||||
|
$valueMax = 0;
|
||||||
|
$valueMin = 0;
|
||||||
|
$booleanModulesCount = 0;
|
||||||
|
$booleanModulesTypes = [
|
||||||
|
2,
|
||||||
|
6,
|
||||||
|
9,
|
||||||
|
18,
|
||||||
|
35,
|
||||||
|
];
|
||||||
|
|
||||||
foreach ($modules as $module) {
|
foreach ($modules as $module) {
|
||||||
$module['aliasAgent'] = ui_print_truncate_text($module['aliasAgent'], 20);
|
$module['aliasAgent'] = ui_print_truncate_text($module['aliasAgent'], 20);
|
||||||
$item_name = '';
|
|
||||||
$item_name = $module['aliasAgent'].' - '.$module['nameModule'];
|
$item_name = $module['aliasAgent'].' - '.$module['nameModule'];
|
||||||
$data_hbar[$item_name]['g'] = $module[$display];
|
$data_hbar[$item_name]['g'] = $module[$display];
|
||||||
|
// Calculation of max-min values for show in graph.
|
||||||
|
$calc = (ceil((5 * (float) $module[$display]) / 100) + $module[$display]);
|
||||||
|
// Set of max-min values for graph.
|
||||||
|
$valueMax = ((int) $module[$display] >= $valueMax) ? $calc : (int) $valueMax;
|
||||||
|
$valueMin = ((int) $module[$display] < $valueMin) ? $calc : (int) $valueMin;
|
||||||
|
// Count if all modules are booleans (for visual representation).
|
||||||
|
if (in_array($module['type_module'], $booleanModulesTypes) === true) {
|
||||||
|
$booleanModulesCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($booleanModulesCount === count($modules)) {
|
||||||
|
// All modules are booleans. By this, only are allowed 0 or 1.
|
||||||
|
$valueMax = 1;
|
||||||
|
} else if ((int) $valueMax === (int) $valueMin) {
|
||||||
|
// This change is for get more space between values.
|
||||||
|
$valueMax += 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
$height = (count($data_hbar) * 25 + 35);
|
$height = (count($data_hbar) * 25 + 35);
|
||||||
@ -480,7 +507,9 @@ class TopNWidget extends Widget
|
|||||||
1,
|
1,
|
||||||
$config['homeurl'],
|
$config['homeurl'],
|
||||||
'white',
|
'white',
|
||||||
'black'
|
'#DFDFDF',
|
||||||
|
$valueMin,
|
||||||
|
$valueMax
|
||||||
);
|
);
|
||||||
$output .= '</div>';
|
$output .= '</div>';
|
||||||
|
|
||||||
|
@ -704,14 +704,19 @@ class Module extends Entity
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (bool) \db_process_sql_insert(
|
$old = $this->alertTemplatesAssigned();
|
||||||
'talert_template_modules',
|
if (in_array($id_alert_template, $old) === false) {
|
||||||
[
|
return (bool) \db_process_sql_insert(
|
||||||
'id_agent_module' => $this->id_agente_modulo(),
|
'talert_template_modules',
|
||||||
'id_alert_template' => $id_alert_template,
|
[
|
||||||
'last_reference' => time(),
|
'id_agent_module' => $this->id_agente_modulo(),
|
||||||
]
|
'id_alert_template' => $id_alert_template,
|
||||||
);
|
'last_reference' => time(),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -759,6 +759,9 @@ select:-internal-list-box {
|
|||||||
.flex {
|
.flex {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
.padding-0 {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
.padding-2 {
|
.padding-2 {
|
||||||
padding: 2em;
|
padding: 2em;
|
||||||
}
|
}
|
||||||
@ -6045,9 +6048,9 @@ table.table_modal_alternate tr td:first-child {
|
|||||||
font-family: "lato" !important;
|
font-family: "lato" !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flot-text {
|
.flot-text .flot-x-axis div {
|
||||||
width: 100%;
|
white-space: normal;
|
||||||
font-family: inherit !important;
|
word-break: break-all;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Font header feedback*/
|
/*Font header feedback*/
|
||||||
@ -6223,6 +6226,9 @@ div.graph td.legendLabel {
|
|||||||
div.graph div.legend div,
|
div.graph div.legend div,
|
||||||
div.graph div.legend table {
|
div.graph div.legend table {
|
||||||
top: 25px !important;
|
top: 25px !important;
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rotate_text_module {
|
.rotate_text_module {
|
||||||
|
@ -340,8 +340,8 @@ a.pandora_pagination {
|
|||||||
|
|
||||||
/* firts_task.css */
|
/* firts_task.css */
|
||||||
.new_task,
|
.new_task,
|
||||||
div.new_task_cluster,
|
div.new_task,
|
||||||
div.new_task_cluster > div {
|
div.new_task > div {
|
||||||
background-color: #222;
|
background-color: #222;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,8 +128,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style='height: 10px'>
|
<div style='height: 10px'>
|
||||||
<?php
|
<?php
|
||||||
$version = '7.0NG.761';
|
$version = '7.0NG.762';
|
||||||
$build = '220509';
|
$build = '220603';
|
||||||
$banner = "v$version Build $build";
|
$banner = "v$version Build $build";
|
||||||
|
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
|
@ -552,14 +552,18 @@ function print_table(
|
|||||||
|
|
||||||
$all_interfaces = [];
|
$all_interfaces = [];
|
||||||
|
|
||||||
foreach ($data as $value) {
|
foreach ($data as $key => $value) {
|
||||||
$agent_alias = agents_get_alias($value['name']);
|
if (empty($value['name']) === false) {
|
||||||
|
$agent_alias = $value['name'];
|
||||||
|
} else {
|
||||||
|
$agent_alias = agents_get_alias($key);
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($value['interfaces'] as $if_name => $interface) {
|
foreach ($value['interfaces'] as $if_name => $interface) {
|
||||||
$interface['agent_id'] = $value['name'];
|
$interface['agent_id'] = $key;
|
||||||
$interface['agent_alias'] = $agent_alias;
|
$interface['agent_alias'] = $agent_alias;
|
||||||
$interface['if_name'] = $if_name;
|
$interface['if_name'] = $if_name;
|
||||||
$all_interfaces[$if_name] = $interface;
|
$all_interfaces[$key][$if_name] = $interface;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -569,117 +573,121 @@ function print_table(
|
|||||||
) {
|
) {
|
||||||
$filtered_interfaces = $all_interfaces;
|
$filtered_interfaces = $all_interfaces;
|
||||||
} else {
|
} else {
|
||||||
// Filter interfaces array.
|
foreach ($all_interfaces as $key => $value) {
|
||||||
$filtered_interfaces = array_filter(
|
// Filter interfaces array.
|
||||||
$all_interfaces,
|
$filtered_interfaces[$key] = array_filter(
|
||||||
function ($interface) use ($selected_interfaces) {
|
$value,
|
||||||
return in_array(
|
function ($interface) use ($selected_interfaces) {
|
||||||
$interface['status_module_id'],
|
return in_array(
|
||||||
$selected_interfaces
|
$interface['status_module_id'],
|
||||||
) === true;
|
$selected_interfaces
|
||||||
}
|
);
|
||||||
);
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
foreach ($filtered_interfaces as $if_name => $agent_interfaces) {
|
foreach ($filtered_interfaces as $interfaces) {
|
||||||
// Get usage modules.
|
foreach ($interfaces as $if_name => $agent_interfaces) {
|
||||||
$usage_module_in = db_get_row(
|
// Get usage modules.
|
||||||
'tagente_modulo',
|
$usage_module_in = db_get_row(
|
||||||
'nombre',
|
'tagente_modulo',
|
||||||
$if_name.'_inUsage'
|
'nombre',
|
||||||
);
|
$if_name.'_inUsage'
|
||||||
$usage_module_out = db_get_row(
|
);
|
||||||
'tagente_modulo',
|
$usage_module_out = db_get_row(
|
||||||
'nombre',
|
'tagente_modulo',
|
||||||
$if_name.'_outUsage'
|
'nombre',
|
||||||
);
|
$if_name.'_outUsage'
|
||||||
|
);
|
||||||
|
|
||||||
$usage_module_id_in = $usage_module_in['id_agente_modulo'];
|
$usage_module_id_in = $usage_module_in['id_agente_modulo'];
|
||||||
$usage_module_id_out = $usage_module_out['id_agente_modulo'];
|
$usage_module_id_out = $usage_module_out['id_agente_modulo'];
|
||||||
$usage_module_description = $usage_module_in['descripcion'];
|
$usage_module_description = $usage_module_in['descripcion'];
|
||||||
|
|
||||||
// Get usage modules data.
|
// Get usage modules data.
|
||||||
$usage_module_data_in = modules_get_previous_data(
|
$usage_module_data_in = modules_get_previous_data(
|
||||||
$usage_module_id_in,
|
$usage_module_id_in,
|
||||||
time()
|
time()
|
||||||
);
|
);
|
||||||
|
|
||||||
$usage_module_data_out = modules_get_previous_data(
|
$usage_module_data_out = modules_get_previous_data(
|
||||||
$usage_module_id_out,
|
$usage_module_id_out,
|
||||||
time()
|
time()
|
||||||
);
|
);
|
||||||
|
|
||||||
// Extract ifSpeed from description of usage module.
|
// Extract ifSpeed from description of usage module.
|
||||||
$if_speed_str = strstr($usage_module_description, 'Speed:');
|
$if_speed_str = strstr($usage_module_description, 'Speed:');
|
||||||
$if_speed_str = substr($if_speed_str, 0, -1);
|
$if_speed_str = substr($if_speed_str, 0, -1);
|
||||||
$if_speed_str = explode(':', $if_speed_str)[1];
|
$if_speed_str = explode(':', $if_speed_str)[1];
|
||||||
|
|
||||||
$matches = [];
|
$matches = [];
|
||||||
preg_match_all('/\d+/', $if_speed_str, $matches);
|
preg_match_all('/\d+/', $if_speed_str, $matches);
|
||||||
|
|
||||||
$if_speed_value = $matches[0][0];
|
$if_speed_value = $matches[0][0];
|
||||||
|
|
||||||
// Transform ifSpeed unit.
|
// Transform ifSpeed unit.
|
||||||
$divisor = 1000;
|
$divisor = 1000;
|
||||||
$counter = 0;
|
$counter = 0;
|
||||||
while ($if_speed_value >= $divisor) {
|
while ($if_speed_value >= $divisor) {
|
||||||
if ($if_speed_value >= $divisor) {
|
if ($if_speed_value >= $divisor) {
|
||||||
$if_speed_value = ($if_speed_value / $divisor);
|
$if_speed_value = ($if_speed_value / $divisor);
|
||||||
|
}
|
||||||
|
|
||||||
|
$counter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$counter++;
|
$if_speed_unit = 'bps';
|
||||||
|
|
||||||
|
switch ($counter) {
|
||||||
|
case 1:
|
||||||
|
$if_speed_unit = 'Kbps';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
$if_speed_unit = 'Mbps';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
$if_speed_unit = 'Gbps';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
$if_speed_unit = 'Tbps';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$if_speed_unit = 'bps';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get in and out traffic.
|
||||||
|
$ifInOctets = modules_get_previous_data(
|
||||||
|
$agent_interfaces['traffic']['in'],
|
||||||
|
time()
|
||||||
|
);
|
||||||
|
$ifOutOctets = modules_get_previous_data(
|
||||||
|
$agent_interfaces['traffic']['out'],
|
||||||
|
time()
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($sec === 'view') {
|
||||||
|
$table_data[$loop_index]['if_agent_name'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente='.$agent_interfaces['agent_id'].'">'.$agent_interfaces['agent_alias'].'</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$table_data[$loop_index]['if_name'] = $agent_interfaces['if_name'];
|
||||||
|
$table_data[$loop_index]['if_status_image'] = $agent_interfaces['status_image'];
|
||||||
|
$table_data[$loop_index]['if_speed_data'] = ($if_speed_value === null) ? __('N/A') : $if_speed_value.' '.$if_speed_unit;
|
||||||
|
$table_data[$loop_index]['if_in_octets'] = ($ifInOctets['datos'] === null) ? __('N/A') : $ifInOctets['datos'];
|
||||||
|
$table_data[$loop_index]['if_out_octets'] = ($ifOutOctets['datos'] === null) ? __('N/A') : $ifOutOctets['datos'];
|
||||||
|
$table_data[$loop_index]['if_usage_module_data_in'] = ($usage_module_data_in['datos'] === null) ? __('N/A') : $usage_module_data_in['datos'];
|
||||||
|
$table_data[$loop_index]['if_usage_module_data_out'] = ($usage_module_data_out['datos'] === null) ? __('N/A') : $usage_module_data_out['datos'];
|
||||||
|
$table_data[$loop_index]['if_last_data'] = human_time_comparation($agent_interfaces['last_contact']);
|
||||||
|
|
||||||
|
$loop_index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$if_speed_unit = 'bps';
|
|
||||||
|
|
||||||
switch ($counter) {
|
|
||||||
case 1:
|
|
||||||
$if_speed_unit = 'Kbps';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
$if_speed_unit = 'Mbps';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 3:
|
|
||||||
$if_speed_unit = 'Gbps';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
$if_speed_unit = 'Tbps';
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$if_speed_unit = 'bps';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get in and out traffic.
|
|
||||||
$ifInOctets = modules_get_previous_data(
|
|
||||||
$agent_interfaces['traffic']['in'],
|
|
||||||
time()
|
|
||||||
);
|
|
||||||
$ifOutOctets = modules_get_previous_data(
|
|
||||||
$agent_interfaces['traffic']['out'],
|
|
||||||
time()
|
|
||||||
);
|
|
||||||
|
|
||||||
if ($sec === 'view') {
|
|
||||||
$table_data[$loop_index]['if_agent_name'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=main&id_agente='.$agent_interfaces['agent_id'].'">'.$agent_interfaces['agent_alias'].'</a>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$table_data[$loop_index]['if_name'] = $agent_interfaces['if_name'];
|
|
||||||
$table_data[$loop_index]['if_status_image'] = $agent_interfaces['status_image'];
|
|
||||||
$table_data[$loop_index]['if_speed_data'] = ($if_speed_value === null) ? __('N/A') : $if_speed_value.' '.$if_speed_unit;
|
|
||||||
$table_data[$loop_index]['if_in_octets'] = ($ifInOctets['datos'] === null) ? __('N/A') : $ifInOctets['datos'];
|
|
||||||
$table_data[$loop_index]['if_out_octets'] = ($ifOutOctets['datos'] === null) ? __('N/A') : $ifOutOctets['datos'];
|
|
||||||
$table_data[$loop_index]['if_usage_module_data_in'] = ($usage_module_data_in['datos'] === null) ? __('N/A') : $usage_module_data_in['datos'];
|
|
||||||
$table_data[$loop_index]['if_usage_module_data_out'] = ($usage_module_data_out['datos'] === null) ? __('N/A') : $usage_module_data_out['datos'];
|
|
||||||
$table_data[$loop_index]['if_last_data'] = human_time_comparation($agent_interfaces['last_contact']);
|
|
||||||
|
|
||||||
$loop_index++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort array of previously processed table values.
|
// Sort array of previously processed table values.
|
||||||
|
@ -117,11 +117,13 @@ ui_print_message_dialog(
|
|||||||
<link rel="stylesheet" href="../../include/styles/pandora_minimal.css" type="text/css" />
|
<link rel="stylesheet" href="../../include/styles/pandora_minimal.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../../include/styles/js/jquery-ui.min.css" type="text/css" />
|
<link rel="stylesheet" href="../../include/styles/js/jquery-ui.min.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="../../include/styles/js/jquery-ui_custom.css" type="text/css" />
|
<link rel="stylesheet" href="../../include/styles/js/jquery-ui_custom.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="../../include/styles/select2.min.css" type="text/css" />
|
||||||
<script type='text/javascript' src='../../include/javascript/pandora.js'></script>
|
<script type='text/javascript' src='../../include/javascript/pandora.js'></script>
|
||||||
<script type='text/javascript' src='../../include/javascript/pandora_ui.js'></script>
|
<script type='text/javascript' src='../../include/javascript/pandora_ui.js'></script>
|
||||||
<script type='text/javascript' src='../../include/javascript/jquery.current.js'></script>
|
<script type='text/javascript' src='../../include/javascript/jquery.current.js'></script>
|
||||||
<script type='text/javascript' src='../../include/javascript/jquery.pandora.js'></script>
|
<script type='text/javascript' src='../../include/javascript/jquery.pandora.js'></script>
|
||||||
<script type='text/javascript' src='../../include/javascript/jquery-ui.min.js'></script>
|
<script type='text/javascript' src='../../include/javascript/jquery-ui.min.js'></script>
|
||||||
|
<script type='text/javascript' src='../../include/javascript/select2.min.js'></script>
|
||||||
<?php
|
<?php
|
||||||
require_once $config['homedir'].'/include/graphs/functions_flot.php';
|
require_once $config['homedir'].'/include/graphs/functions_flot.php';
|
||||||
echo include_javascript_dependencies_flot_graph(true, '../');
|
echo include_javascript_dependencies_flot_graph(true, '../');
|
||||||
|
@ -241,10 +241,10 @@ if ($is_admin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$out = '<table cellpadding=0 cellspacing=0 class="databox pies mrgn_top_15px" width=100%><tr><td>';
|
$out = '<table cellpadding=0 cellspacing=0 class="databox pies mrgn_top_15px" width=100%><tr><td>';
|
||||||
$out .= '<fieldset class="databox tactical_set" id="total_event_graph">
|
$out .= '<fieldset class="padding-0 databox tactical_set" id="total_event_graph">
|
||||||
<legend>'.__('Event graph').'</legend>'.html_print_image('images/spinner.gif', true, ['id' => 'spinner_total_event_graph']).'</fieldset>';
|
<legend>'.__('Event graph').'</legend>'.html_print_image('images/spinner.gif', true, ['id' => 'spinner_total_event_graph']).'</fieldset>';
|
||||||
$out .= '</td><td>';
|
$out .= '</td><td>';
|
||||||
$out .= '<fieldset class="databox tactical_set" id="graphic_event_group">
|
$out .= '<fieldset class="padding-0 databox tactical_set" id="graphic_event_group">
|
||||||
<legend>'.__('Event graph by agent').'</legend>'.html_print_image('images/spinner.gif', true, ['id' => 'spinner_graphic_event_group']).'</fieldset>';
|
<legend>'.__('Event graph by agent').'</legend>'.html_print_image('images/spinner.gif', true, ['id' => 'spinner_graphic_event_group']).'</fieldset>';
|
||||||
$out .= '</td></tr></table>';
|
$out .= '</td></tr></table>';
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
*
|
*
|
||||||
* ============================================================================
|
* ============================================================================
|
||||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
* Copyright (c) 2005-2022 Artica Soluciones Tecnologicas
|
||||||
* Please see http://pandorafms.org for full contribution list
|
* Please see http://pandorafms.org for full contribution list
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
@ -46,19 +46,19 @@ check_login();
|
|||||||
|
|
||||||
enterprise_include_once('/include/class/CommandCenter.class.php');
|
enterprise_include_once('/include/class/CommandCenter.class.php');
|
||||||
|
|
||||||
$event_a = check_acl($config['id_user'], 0, 'ER');
|
$event_a = (bool) check_acl($config['id_user'], 0, 'ER');
|
||||||
$event_w = check_acl($config['id_user'], 0, 'EW');
|
$event_w = (bool) check_acl($config['id_user'], 0, 'EW');
|
||||||
$event_m = check_acl($config['id_user'], 0, 'EM');
|
$event_m = (bool) check_acl($config['id_user'], 0, 'EM');
|
||||||
|
|
||||||
if (! $event_a
|
if ($event_a === false
|
||||||
&& ! $event_w
|
&& $event_w === false
|
||||||
&& ! $event_m
|
&& $event_m === false
|
||||||
) {
|
) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
AUDIT_LOG_ACL_VIOLATION,
|
AUDIT_LOG_ACL_VIOLATION,
|
||||||
'Trying to access event viewer'
|
'Trying to access event viewer'
|
||||||
);
|
);
|
||||||
if (is_ajax()) {
|
if (is_ajax() === true) {
|
||||||
return ['error' => 'noaccess'];
|
return ['error' => 'noaccess'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,14 +67,14 @@ if (! $event_a
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$access = ($event_a == true) ? 'ER' : (($event_w == true) ? 'EW' : (($event_m == true) ? 'EM' : 'ER'));
|
$access = ($event_a === true) ? 'ER' : (($event_w === true) ? 'EW' : (($event_m === true) ? 'EM' : 'ER'));
|
||||||
|
|
||||||
|
|
||||||
$readonly = false;
|
$readonly = false;
|
||||||
if (is_metaconsole() === false
|
if (is_metaconsole() === false
|
||||||
&& isset($config['event_replication'])
|
&& isset($config['event_replication']) === true
|
||||||
&& $config['event_replication'] == 1
|
&& (int) $config['event_replication'] === 1
|
||||||
&& $config['show_events_in_local'] == 1
|
&& (int) $config['show_events_in_local'] === 1
|
||||||
) {
|
) {
|
||||||
$readonly = true;
|
$readonly = true;
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ $default_filter = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
$fb64 = get_parameter('fb64', null);
|
$fb64 = get_parameter('fb64', null);
|
||||||
if (isset($fb64)) {
|
if (isset($fb64) === true) {
|
||||||
$filter = json_decode(base64_decode($fb64), true);
|
$filter = json_decode(base64_decode($fb64), true);
|
||||||
$filter['tag_with'] = [];
|
$filter['tag_with'] = [];
|
||||||
$filter['tag_without'] = [];
|
$filter['tag_without'] = [];
|
||||||
@ -238,20 +238,20 @@ $custom_data = get_parameter(
|
|||||||
|
|
||||||
if (is_metaconsole() === true) {
|
if (is_metaconsole() === true) {
|
||||||
// Connect to node database.
|
// Connect to node database.
|
||||||
$id_node = $server_id;
|
$id_node = (int) $server_id;
|
||||||
if ($id_node != 0) {
|
if ($id_node !== 0) {
|
||||||
if (metaconsole_connect(null, $id_node) != NOERR) {
|
if (metaconsole_connect(null, $id_node) !== NOERR) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (empty($text_agent) && empty($id_agent) === false) {
|
if (empty($text_agent) === true && empty($id_agent) === false) {
|
||||||
$text_agent = agents_get_alias($id_agent);
|
$text_agent = agents_get_alias($id_agent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($text_module) && empty($id_agent_module) === false) {
|
if (empty($text_module) === true && empty($id_agent_module) === false) {
|
||||||
$text_module = modules_get_agentmodule_name($id_agent_module);
|
$text_module = modules_get_agentmodule_name($id_agent_module);
|
||||||
$text_agent = agents_get_alias(modules_get_agentmodule_agent($id_agent_module));
|
$text_agent = agents_get_alias(modules_get_agentmodule_agent($id_agent_module));
|
||||||
}
|
}
|
||||||
@ -501,7 +501,7 @@ if ($load_filter_id === 0) {
|
|||||||
|
|
||||||
// Do not load the user filter if we come from the 24h event graph.
|
// Do not load the user filter if we come from the 24h event graph.
|
||||||
$from_event_graph = get_parameter('filter[from_event_graph]', $filter['from_event_graph']);
|
$from_event_graph = get_parameter('filter[from_event_graph]', $filter['from_event_graph']);
|
||||||
if ($loaded_filter !== false && $from_event_graph != 1 && !isset($fb64)) {
|
if ($loaded_filter !== false && $from_event_graph != 1 && isset($fb64) === false) {
|
||||||
$filter = events_get_event_filter($loaded_filter['id_filter']);
|
$filter = events_get_event_filter($loaded_filter['id_filter']);
|
||||||
if ($filter !== false) {
|
if ($filter !== false) {
|
||||||
$id_group = $filter['id_group'];
|
$id_group = $filter['id_group'];
|
||||||
@ -1136,15 +1136,19 @@ $in = '<div class="filter_input"><label>'.__('Free search').'</label>';
|
|||||||
$in .= $data.'</div>';
|
$in .= $data.'</div>';
|
||||||
$inputs[] = $in;
|
$inputs[] = $in;
|
||||||
|
|
||||||
if (empty($severity) === true && $severity !== '0') {
|
if (is_array($severity) === false) {
|
||||||
$severity = -1;
|
if (empty($severity) === true && $severity !== '0') {
|
||||||
|
$severity = -1;
|
||||||
|
} else {
|
||||||
|
$severity = explode(',', $severity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Criticity - severity.
|
// Criticity - severity.
|
||||||
$data = html_print_select(
|
$data = html_print_select(
|
||||||
get_priorities(),
|
get_priorities(),
|
||||||
'severity',
|
'severity',
|
||||||
explode(',', $severity),
|
$severity,
|
||||||
'',
|
'',
|
||||||
__('All'),
|
__('All'),
|
||||||
-1,
|
-1,
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Pandora FMS Console
|
# Pandora FMS Console
|
||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.761
|
%define version 7.0NG.762
|
||||||
%define release 220509
|
%define release 220603
|
||||||
|
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Pandora FMS Console
|
# Pandora FMS Console
|
||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.761
|
%define version 7.0NG.762
|
||||||
%define release 220509
|
%define release 220603
|
||||||
|
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Pandora FMS Console
|
# Pandora FMS Console
|
||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.761
|
%define version 7.0NG.762
|
||||||
%define release 220509
|
%define release 220603
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name apache2
|
%define httpd_name apache2
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# This code is licensed under GPL 2.0 license.
|
# This code is licensed under GPL 2.0 license.
|
||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.761"
|
PI_VERSION="7.0NG.762"
|
||||||
FORCE=0
|
FORCE=0
|
||||||
DESTDIR=""
|
DESTDIR=""
|
||||||
LOG_TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"`
|
LOG_TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"`
|
||||||
|
@ -2817,6 +2817,7 @@ CREATE TABLE IF NOT EXISTS `tservice` (
|
|||||||
`cascade_protection` TINYINT NOT NULL DEFAULT 0,
|
`cascade_protection` TINYINT NOT NULL DEFAULT 0,
|
||||||
`evaluate_sla` INT NOT NULL DEFAULT 0,
|
`evaluate_sla` INT NOT NULL DEFAULT 0,
|
||||||
`is_favourite` TINYINT NOT NULL DEFAULT 0,
|
`is_favourite` TINYINT NOT NULL DEFAULT 0,
|
||||||
|
`enable_sunburst` TINYINT NOT NULL DEFAULT 0,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB
|
) ENGINE=InnoDB
|
||||||
COMMENT = 'Table to define services to monitor'
|
COMMENT = 'Table to define services to monitor'
|
||||||
|
@ -109,10 +109,10 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
|
|||||||
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
|
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
|
||||||
('custom_report_front_header', ''),
|
('custom_report_front_header', ''),
|
||||||
('custom_report_front_footer', ''),
|
('custom_report_front_footer', ''),
|
||||||
('MR', 53),
|
('MR', 54),
|
||||||
('identification_reminder', 1),
|
('identification_reminder', 1),
|
||||||
('identification_reminder_timestamp', 0),
|
('identification_reminder_timestamp', 0),
|
||||||
('current_package', 761),
|
('current_package', 762),
|
||||||
('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.00097656250000":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}'),
|
('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.00097656250000":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}'),
|
||||||
('custom_docs_logo', 'default_docs.png'),
|
('custom_docs_logo', 'default_docs.png'),
|
||||||
('custom_support_logo', 'default_support.png'),
|
('custom_support_logo', 'default_support.png'),
|
||||||
@ -142,7 +142,8 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
|
|||||||
('sample_agent', '0'),
|
('sample_agent', '0'),
|
||||||
('gotty', '/usr/bin/gotty'),
|
('gotty', '/usr/bin/gotty'),
|
||||||
('custom_module_units', '{"bytes":"bytes","entries":"entries","files":"files","hits":"hits","sessions":"sessions","users":"users","ºC":"ºC","ºF":"ºF"}'),
|
('custom_module_units', '{"bytes":"bytes","entries":"entries","files":"files","hits":"hits","sessions":"sessions","users":"users","ºC":"ºC","ºF":"ºF"}'),
|
||||||
('server_unique_identifier', replace(uuid(),'-',''));
|
('server_unique_identifier', replace(uuid(),'-','')),
|
||||||
|
('lts_name', 'Akira');
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -469,15 +469,21 @@ sub parse_log ($$$$$$$$) {
|
|||||||
# Go to starting position
|
# Go to starting position
|
||||||
seek(LOGFILE, $Idx_pos, 0);
|
seek(LOGFILE, $Idx_pos, 0);
|
||||||
|
|
||||||
$buffer .= "<module>\n";
|
if ($type eq "log_module"){
|
||||||
$buffer .= "<name><![CDATA[" . $Module_name . "]]></name>\n";
|
$buffer = "<log_module>\n";
|
||||||
$buffer .= "<description><![CDATA[" . $Description . "]]></description>\n";
|
$buffer .= "<source><![CDATA[" . $Module_name . "]]></source>\n";
|
||||||
|
$buffer .= "<data><![CDATA[";
|
||||||
if ($type eq "return_ocurrences"){
|
|
||||||
$buffer .= "<type>generic_data</type>\n";
|
|
||||||
} else {
|
} else {
|
||||||
$buffer .= "<type><![CDATA[async_string]]></type>\n";
|
$buffer .= "<module>\n";
|
||||||
$buffer .= "<datalist>\n";
|
$buffer .= "<name><![CDATA[" . $Module_name . "]]></name>\n";
|
||||||
|
$buffer .= "<description><![CDATA[" . $Description . "]]></description>\n";
|
||||||
|
|
||||||
|
if ($type eq "return_ocurrences"){
|
||||||
|
$buffer .= "<type>generic_data</type>\n";
|
||||||
|
} else {
|
||||||
|
$buffer .= "<type><![CDATA[async_string]]></type>\n";
|
||||||
|
$buffer .= "<datalist>\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while ($line = <LOGFILE>) {
|
while ($line = <LOGFILE>) {
|
||||||
@ -503,6 +509,11 @@ sub parse_log ($$$$$$$$) {
|
|||||||
$buffer .= "<data><value><![CDATA[".$line."]]></value></data>\n";
|
$buffer .= "<data><value><![CDATA[".$line."]]></value></data>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($type eq "log_module") {
|
||||||
|
$line =~ s/\]\]/]]]]><![CDATA[/g;
|
||||||
|
$buffer .= $line."\n";
|
||||||
|
}
|
||||||
|
|
||||||
# Critical severity will prevail over other matches
|
# Critical severity will prevail over other matches
|
||||||
if ($severity eq ""){
|
if ($severity eq ""){
|
||||||
$severity = $value->{"severity"};
|
$severity = $value->{"severity"};
|
||||||
@ -515,11 +526,12 @@ sub parse_log ($$$$$$$$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($type ne "log_module"){
|
||||||
if ($type eq "return_ocurrences"){
|
if ($type eq "return_ocurrences"){
|
||||||
$buffer .= "<data><![CDATA[".$count."]]></data>\n";
|
$buffer .= "<data><![CDATA[".$count."]]></data>\n";
|
||||||
} else {
|
} else {
|
||||||
$buffer .= "</datalist>\n";
|
$buffer .= "</datalist>\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute action if any match (always for last match)
|
# Execute action if any match (always for last match)
|
||||||
@ -527,13 +539,18 @@ sub parse_log ($$$$$$$$) {
|
|||||||
`$action`;
|
`$action`;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Write severity field in XML
|
if ($type ne "log_module"){
|
||||||
if ($severity ne ""){
|
# Write severity field in XML
|
||||||
$buffer .= "<status>$severity</status>\n";
|
if ($severity ne ""){
|
||||||
}
|
$buffer .= "<status>$severity</status>\n";
|
||||||
|
}
|
||||||
|
|
||||||
# End XML
|
# End XML
|
||||||
$buffer .= "</module>\n";
|
$buffer .= "</module>\n";
|
||||||
|
}else {
|
||||||
|
$buffer .= "]]></data>\n";
|
||||||
|
$buffer .= "</log_module>\n";
|
||||||
|
}
|
||||||
|
|
||||||
# Update Index
|
# Update Index
|
||||||
$Idx_pos = tell(LOGFILE);
|
$Idx_pos = tell(LOGFILE);
|
||||||
@ -746,4 +763,4 @@ while (my ($key, $value) = each (@{$plugin_setup{"log"}})) {
|
|||||||
|
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-server
|
package: pandorafms-server
|
||||||
Version: 7.0NG.761-220509
|
Version: 7.0NG.762-220603
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.761-220509"
|
pandora_version="7.0NG.762-220603"
|
||||||
|
|
||||||
package_cpan=0
|
package_cpan=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -68,10 +68,6 @@ dbhost 127.0.0.1
|
|||||||
|
|
||||||
#dbport 3306
|
#dbport 3306
|
||||||
|
|
||||||
# By default, parent agent will not be updated
|
|
||||||
|
|
||||||
#update_parent 0
|
|
||||||
|
|
||||||
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
||||||
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
||||||
# set to 1 or 3 on production enviroments.
|
# set to 1 or 3 on production enviroments.
|
||||||
|
@ -68,10 +68,6 @@ dbhost 127.0.0.1
|
|||||||
|
|
||||||
#dbport 3306
|
#dbport 3306
|
||||||
|
|
||||||
# By default, parent agent will not be updated
|
|
||||||
|
|
||||||
#update_parent 0
|
|
||||||
|
|
||||||
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
||||||
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
||||||
# set to 1 or 3 on production enviroments.
|
# set to 1 or 3 on production enviroments.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
# Pandora FMS Server Parameters
|
# Pandora FMS Server Parameters
|
||||||
# Pandora FMS, the Flexible Monitoring System.
|
# Pandora FMS, the Flexible Monitoring System.
|
||||||
# Version 7.0NG.761
|
# Version 7.0NG.762
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
# (c) 2003-2021 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
@ -79,10 +79,6 @@ dbssl 0
|
|||||||
|
|
||||||
# dbsslcapath
|
# dbsslcapath
|
||||||
|
|
||||||
# By default, parent agent will not be updated
|
|
||||||
|
|
||||||
#update_parent 0
|
|
||||||
|
|
||||||
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
||||||
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
||||||
# set to 1 or 3 on production enviroments.
|
# set to 1 or 3 on production enviroments.
|
||||||
@ -434,6 +430,7 @@ sample_agent_interval 600
|
|||||||
# Update parent from the agent xml
|
# Update parent from the agent xml
|
||||||
|
|
||||||
update_parent 1
|
update_parent 1
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# This enable realtime reverse geocoding using Google Maps public api.
|
# This enable realtime reverse geocoding using Google Maps public api.
|
||||||
|
@ -68,10 +68,6 @@ dbhost 192.168.55.1
|
|||||||
|
|
||||||
#dbport 3306
|
#dbport 3306
|
||||||
|
|
||||||
# By default, parent agent will not be updated
|
|
||||||
|
|
||||||
#update_parent 0
|
|
||||||
|
|
||||||
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
# verbosity: level of detail on errors/messages (0 default, 1 verbose, 2 debug.... 10 noisy)
|
||||||
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
# -v in command line (verbose) or -d (debug). Set this to 10 when try to locate problems and
|
||||||
# set to 1 or 3 on production enviroments.
|
# set to 1 or 3 on production enviroments.
|
||||||
|
@ -45,8 +45,8 @@ our @EXPORT = qw(
|
|||||||
);
|
);
|
||||||
|
|
||||||
# version: Defines actual version of Pandora Server for this module only
|
# version: Defines actual version of Pandora Server for this module only
|
||||||
my $pandora_version = "7.0NG.761";
|
my $pandora_version = "7.0NG.762";
|
||||||
my $pandora_build = "220509";
|
my $pandora_build = "220603";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
# Setup hash
|
# Setup hash
|
||||||
|
@ -33,8 +33,8 @@ use base 'Exporter';
|
|||||||
our @ISA = qw(Exporter);
|
our @ISA = qw(Exporter);
|
||||||
|
|
||||||
# version: Defines actual version of Pandora Server for this module only
|
# version: Defines actual version of Pandora Server for this module only
|
||||||
my $pandora_version = "7.0NG.761";
|
my $pandora_version = "7.0NG.762";
|
||||||
my $pandora_build = "220509";
|
my $pandora_build = "220603";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||||
@ -2206,73 +2206,93 @@ sub snmp_get {
|
|||||||
'error' => 'snmpwalk not found'
|
'error' => 'snmpwalk not found'
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
$snmp->{extra} = '' unless defined $snmp->{extra};
|
|
||||||
|
|
||||||
if ( defined ($snmp->{version} )
|
if (!defined $snmp->{version}) {
|
||||||
&& (($snmp->{version} eq "1")
|
|
||||||
|| ($snmp->{version} eq "2")
|
|
||||||
|| ($snmp->{version} eq "2c"))) {
|
|
||||||
|
|
||||||
if (defined $snmp->{port}){
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -c $snmp->{community} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -c $snmp->{community} $snmp->{host} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
elsif ( defined ($snmp->{version} )
|
|
||||||
&& ($snmp->{version} eq "3") ) { # SNMP v3
|
|
||||||
# Authentication required
|
|
||||||
|
|
||||||
# $securityLevel = (noAuthNoPriv|authNoPriv|authPriv);
|
|
||||||
|
|
||||||
# unauthenticated request
|
|
||||||
# Ex. snmpget -r $retries -t $timeout $snmp->{extra} -On -v 3 -n "" -u noAuthUser -l noAuthNoPriv test.net-snmp.org sysUpTime
|
|
||||||
|
|
||||||
# authenticated request
|
|
||||||
# Ex. snmpget -r $retries -t $timeout $snmp->{extra} -On -v 3 -n "" -u MD5User -a MD5 -A "The Net-SNMP Demo Password" -l authNoPriv test.net-snmp.org sysUpTime
|
|
||||||
|
|
||||||
# authenticated and encrypted request
|
|
||||||
# Ex. snmpget -r $retries -t $timeout $snmp->{extra} -On -v 3 -n "" -u MD5DESUser -a MD5 -A "The Net-SNMP Demo Password" -x DES -X "The Net-SNMP Demo Password" -l authPriv test.net-snmp.org system
|
|
||||||
|
|
||||||
if ($snmp->{securityLevel} =~ /^noAuthNoPriv$/i){
|
|
||||||
# Unauthenticated request
|
|
||||||
|
|
||||||
if (defined $snmp->{port}){
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -l $snmp->{securityLevel} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -l $snmp->{securityLevel} $snmp->{host} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elsif ($snmp->{securityLevel} =~ /^authNoPriv$/i){
|
|
||||||
# Authenticated request
|
|
||||||
|
|
||||||
if (defined $snmp->{port}){
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -a $snmp->{authProtocol} -A $snmp->{authKey} -l $snmp->{securityLevel} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -a $snmp->{authProtocol} -A $snmp->{authKey} -l $snmp->{securityLevel} $snmp->{host} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elsif ($snmp->{securityLevel} =~ /^authPriv$/i){
|
|
||||||
# Authenticated and encrypted request
|
|
||||||
|
|
||||||
if (defined $snmp->{port}){
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -l $snmp->{securityLevel} -a $snmp->{authProtocol} -A $snmp->{authKey} -x $snmp->{privProtocol} -X $snmp->{privKey} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -l $snmp->{securityLevel} -a $snmp->{authProtocol} -A $snmp->{authKey} -x $snmp->{privProtocol} -X $snmp->{privKey} $snmp->{host} $snmp->{oid}";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return {
|
return {
|
||||||
error => "Only SNMP 1 2 2c and 3 are supported."
|
'error' => "Only SNMP 1 2 2c and 3 are supported."
|
||||||
|
};
|
||||||
|
} elsif (!defined $snmp->{host}) {
|
||||||
|
return {
|
||||||
|
'error' => "Destination host must be defined."
|
||||||
|
};
|
||||||
|
} elsif (!defined $snmp->{oid}) {
|
||||||
|
return {
|
||||||
|
'error' => "OID must be defined"
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
$snmp->{extra} = '' unless defined $snmp->{extra};
|
||||||
|
$snmp->{context} = '' unless defined $snmp->{context};
|
||||||
|
$snmp->{community} = 'public' unless defined $snmp->{community};
|
||||||
|
|
||||||
|
if (($snmp->{version} eq "1")
|
||||||
|
|| ($snmp->{version} eq "2")
|
||||||
|
|| ($snmp->{version} eq "2c")) {
|
||||||
|
|
||||||
|
if (defined $snmp->{port}){
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -c $snmp->{community} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -c $snmp->{community} $snmp->{host} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
elsif ( defined ($snmp->{version} )
|
||||||
|
&& ($snmp->{version} eq "3") ) {
|
||||||
|
|
||||||
|
$snmp->{securityLevel} = '' unless defined $snmp->{securityLevel};
|
||||||
|
|
||||||
|
# SNMP v3
|
||||||
|
# Authentication required
|
||||||
|
|
||||||
|
# $securityLevel = (noAuthNoPriv|authNoPriv|authPriv);
|
||||||
|
|
||||||
|
# unauthenticated request
|
||||||
|
# Ex. snmpget -r $retries -t $timeout $snmp->{extra} -On -v 3 -n "" -u noAuthUser -l noAuthNoPriv test.net-snmp.org sysUpTime
|
||||||
|
|
||||||
|
# authenticated request
|
||||||
|
# Ex. snmpget -r $retries -t $timeout $snmp->{extra} -On -v 3 -n "" -u MD5User -a MD5 -A "The Net-SNMP Demo Password" -l authNoPriv test.net-snmp.org sysUpTime
|
||||||
|
|
||||||
|
# authenticated and encrypted request
|
||||||
|
# Ex. snmpget -r $retries -t $timeout $snmp->{extra} -On -v 3 -n "" -u MD5DESUser -a MD5 -A "The Net-SNMP Demo Password" -x DES -X "The Net-SNMP Demo Password" -l authPriv test.net-snmp.org system
|
||||||
|
|
||||||
|
if ($snmp->{securityLevel} =~ /^noAuthNoPriv$/i){
|
||||||
|
# Unauthenticated request
|
||||||
|
|
||||||
|
if (defined $snmp->{port}){
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -l $snmp->{securityLevel} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -l $snmp->{securityLevel} $snmp->{host} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($snmp->{securityLevel} =~ /^authNoPriv$/i){
|
||||||
|
# Authenticated request
|
||||||
|
|
||||||
|
if (defined $snmp->{port}){
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -a $snmp->{authProtocol} -A $snmp->{authKey} -l $snmp->{securityLevel} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -a $snmp->{authProtocol} -A $snmp->{authKey} -l $snmp->{securityLevel} $snmp->{host} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($snmp->{securityLevel} =~ /^authPriv$/i){
|
||||||
|
# Authenticated and encrypted request
|
||||||
|
|
||||||
|
if (defined $snmp->{port}){
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -l $snmp->{securityLevel} -a $snmp->{authProtocol} -A $snmp->{authKey} -x $snmp->{privProtocol} -X $snmp->{privKey} $snmp->{host}:$snmp->{port} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$cmd = "snmpget -r $retries -t $timeout $snmp->{extra} -On -v $snmp->{version} -n \"$snmp->{context}\" -u $snmp->{securityName} -l $snmp->{securityLevel} -a $snmp->{authProtocol} -A $snmp->{authKey} -x $snmp->{privProtocol} -X $snmp->{privKey} $snmp->{host} $snmp->{oid}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {
|
||||||
|
'error' => "Security Level not defined."
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#print STDERR "Launched: $cmd\n";
|
#print STDERR "Launched: $cmd\n";
|
||||||
my $result = `$cmd`;
|
my $result = `$cmd`;
|
||||||
if ($? != 0) {
|
if ($? != 0) {
|
||||||
@ -2293,7 +2313,7 @@ sub snmp_data_switcher {
|
|||||||
|
|
||||||
my $pure_data = trim($st_data[1]) or undef;
|
my $pure_data = trim($st_data[1]) or undef;
|
||||||
$data{data} = $pure_data;
|
$data{data} = $pure_data;
|
||||||
|
|
||||||
if ( uc($st_data[0]) eq uc("INTEGER")) {
|
if ( uc($st_data[0]) eq uc("INTEGER")) {
|
||||||
$data{type} = "generic_data";
|
$data{type} = "generic_data";
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user