diff --git a/README.md b/README.md index 74825e8419..5cc77912d5 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,17 @@ [![Build Status](https://travis-ci.org/pandorafms/pandorafms.svg?branch=develop)](https://travis-ci.org/pandorafms/pandorafms) -[![Pandora logo](http://wolf359.artica.es/public_images/logo_pandora_community.png)](http://pandorafms.org) +![logo Pandora-FMS](https://user-images.githubusercontent.com/8567291/151817953-dc9c4c88-5f3c-459b-98a7-da0534930a2c.png) -Pandora FMS is a monitoring software for IT infrastructure management which includes network equipment, Windows and Unix servers, virtual infrastructure and all different kind of applications. It has a large amount of features, making it a new generation software which discovers all the monitoring issues that an organization may need. + +With more than 50,000 customer installations across the five continents, Pandora FMS is an out-of-the-box monitoring solution: profitable and scalable, covering most infrastructure deployment options. + +Pandora FMS gives you the agility to find and solve problems quickly, scaling them so they can be derived from any source, on-premise, multi cloud or both of them mixed. Now you have that capability across your entire IT stack and analytics to find any problem, even the ones that are hard to find. + +Thanks to more than 500 plugins available, you can control and manage any application and technology, from SAP, Oracle, Lotus, Citrix or Jboss to VMware, AWS, SQL Server, Redhat, Websphere, etc. ### Support -For community support you can visit our forums at http://forums.pandorafms.org. Visit our community page at http://pandorafms.org and if you need commercial information or/and professional support visit http://pandorafms.com. +For community support you can visit our forums at https://pandorafms.com/community/ and if you need commercial information or/and professional support visit https://pandorafms.com ### How to install Pandora FMS diff --git a/extras/deploy-scripts/pandora_deploy_community.sh b/extras/deploy-scripts/pandora_deploy_community.sh index 7f70addfec..2e617eeeb1 100644 --- a/extras/deploy-scripts/pandora_deploy_community.sh +++ b/extras/deploy-scripts/pandora_deploy_community.sh @@ -1,20 +1,32 @@ #!/bin/bash +####################################################### +# PandoraFMS Community online installation script +####################################################### +## Tested versions ## +# Centos 7.9 -# define variables +#Constants PANDORA_CONSOLE=/var/www/html/pandora_console -CONSOLE_PATH=/var/www/html/pandora_console PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf -PANDORA_SERVER_BIN=/usr/bin/pandora_server -PANDORA_HA_BIN=/usr/bin/pandora_ha -PANDORA_TABLES_MIN=160 -DBHOST=127.0.0.1 -DBNAME=pandora -DBUSER=pandora -DBPASS=pandora -DBPORT=3306 -S_VERSION='2021012801' +PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf + + +S_VERSION='2022012401' LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log" +# define default variables +[ "$TZ" ] || TZ="Europe/Madrid" +[ "$DBHOST" ] || DBHOST=127.0.0.1 +[ "$DBNAME" ] || DBNAME=pandora +[ "$DBUSER" ] || DBUSER=pandora +[ "$DBPASS" ] || DBPASS=pandora +[ "$DBPORT" ] || DBPORT=3306 +[ "$DBROOTPASS" ] || DBROOTPASS=pandora +[ "$SKIP_PRECHECK" ] || SKIP_PRECHECK=0 +[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0 +[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0 +[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g") + # Ansi color code variables red="\e[0;91m" green="\e[0;92m" @@ -60,7 +72,7 @@ check_pre_pandora () { echo -en "${cyan}Checking environment ... ${reset}" rpm -qa | grep pandora &>> /dev/null && local fail=true - [ -d "$CONSOLE_PATH" ] && local fail=true + [ -d "$PANDORA_CONSOLE" ] && local fail=true [ -f /usr/bin/pandora_server ] && local fail=true echo "use $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true @@ -111,7 +123,7 @@ echo "Community installer version: $S_VERSION" >> $LOGFILE check_root_permissions # Pre installed pandora -check_pre_pandora +[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora # Connectivity check_repo_connection @@ -125,6 +137,9 @@ execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]" # Check disk size at least 10 Gb free space execute_cmd "[ $(df -BM / | tail -1 | awk '{print $4}' | tr -d M) -gt 10000 ]" 'Checking Disk (required: 10 GB free min)' +# Setting timezone +execute_cmd "timedatectl set-timezone $TZ" "Setting Timezone $TZ" + # Execute tools check execute_cmd "awk --version" 'Checking needed tools: awk' execute_cmd "grep --version" 'Checking needed tools: grep' @@ -148,10 +163,10 @@ http://rpms.remirepo.net/enterprise/remi-release-7.rpm \ https://repo.percona.com/yum/percona-release-latest.noarch.rpm" execute_cmd "yum install -y $extra_repos" "Installing extra repositories" -execute_cmd "yum-config-manager --enable remi-php73" "Configuring PHP" +execute_cmd "yum-config-manager --enable remi-php74" "Configuring PHP" # Install percona Database -[ -f /etc/my.cnf ] && rm -rf /etc/my.cnf +#[ -f /etc/my.cnf ] && rm -rf /etc/my.cnf execute_cmd "yum install -y Percona-Server-server-57" "Installing Percona Server" # Console dependencies @@ -256,6 +271,7 @@ server_dependencies=" \ perl(XML::Twig) \ expect \ openssh-clients \ + java \ http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \ http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm" execute_cmd "yum install -y $server_dependencies" "Installing Pandora FMS Server dependencies" @@ -275,32 +291,51 @@ execute_cmd "yum install -y $vmware_dependencies" "Installing SDK VMware perl de oracle_dependencies=" \ https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm \ https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm" -execute_cmd "yum install -y $oracle_dependencies" "Installing Oracle Instant client" +execute_cmd "yum install -y $oracle_dependencies || yum reinstall -y $oracle_dependencies" "Installing Oracle Instant client" + +#ipam dependencies +ipam_dependencies=" \ + http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \ + perl(NetAddr::IP) \ + perl(Sys::Syslog) \ + perl(DBI) \ + perl(XML::Simple) \ + perl(Geo::IP) \ + perl(IO::Socket::INET6) \ + perl(XML::Twig)" +execute_cmd "yum install -y $ipam_dependencies" "Installing IPAM Instant client" + +# MSSQL dependencies el7 +execute_cmd "curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/mssql-release.repo" "Configuring Microsoft repositories" +execute_cmd "yum remove unixODBC-utf16 unixODBC-utf16-devel" "Removing default unixODBC packages" +execute_cmd "env ACCEPT_EULA=Y yum install -y msodbcsql17" "Installing ODBC Driver for Microsoft(R) SQL Server(R)" +MS_ID=$(head -1 /etc/odbcinst.ini | tr -d '[]') &>> "$LOGFILE" +#yum config-manager --set-disable packages-microsoft-com-prod # Disabling SELINUX and firewalld setenforce 0 sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config systemctl disable firewalld --now &>> $LOGFILE - #Configuring Database +if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then execute_cmd "systemctl start mysqld" "Starting database engine" export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev) echo """ SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!'); UNINSTALL PLUGIN validate_password; - SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pandora'); - """ | mysql --connect-expired-password -uroot - -export MYSQL_PWD=$DBPASS + SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS'); + """ | mysql --connect-expired-password -uroot &>> "$LOGFILE" +fi +export MYSQL_PWD=$DBROOTPASS echo -en "${cyan}Creating Pandora FMS database...${reset}" echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST -check_cmd_status 'Error creating database pandora, is this an empty node? if you have a previus installation please contact with support.' +check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support." echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%' identified by \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST +export MYSQL_PWD=$DBPASS #Generating my.cnf -POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g") cat > /etc/my.cnf << EO_CONFIG_F [mysqld] datadir=/var/lib/mysql @@ -350,7 +385,7 @@ execute_cmd "systemctl restart mysqld" "Configuring database engine" # Downloading Pandora Packages execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community" execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community" -execute_cmd "wget http://firefly.artica.es/centos7/pandorafms_agent_unix-7.0NG.751_x86_64.rpm" "Downloading Pandora FMS Agent community" +execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm" "Downloading Pandora FMS Agent community" # Install Pandora execute_cmd "yum install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages" @@ -374,13 +409,13 @@ mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb_data.sq check_cmd_status 'Error Loading database schema data' # Configure console -cat > $CONSOLE_PATH/include/config.php << EO_CONFIG_F +cat > $PANDORA_CONSOLE/include/config.php << EO_CONFIG_F /etc/pandora/pandora_server.env << 'EOF_ENV' @@ -459,7 +498,7 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/$VERSION/client64/lib export ORACLE_HOME=/usr/lib/oracle/$VERSION/client64 EOF_ENV -# Kernel optimization +if [ "$SKIP_KERNEL_OPTIMIZATIONS" -eq '0' ] ; then cat >> /etc/sysctl.conf <> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab ## Enabling agent systemctl enable pandora_agent_daemon &>> $LOGFILE -execute_cmd "systemctl start pandora_agent_daemon" "starting Pandora FMS Agent" +execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent" #SSH banner [ "$(curl -s ifconfig.me)" ] && ipplublic=$(curl -s ifconfig.me) diff --git a/extras/deploy-scripts/pandora_deploy_community_el8.sh b/extras/deploy-scripts/pandora_deploy_community_el8.sh index b5b2935192..5b0bc37b1e 100644 --- a/extras/deploy-scripts/pandora_deploy_community_el8.sh +++ b/extras/deploy-scripts/pandora_deploy_community_el8.sh @@ -1,17 +1,35 @@ #!/bin/bash +####################################################### +# PandoraFMS Community online installation script +####################################################### +## Tested versions ## +# Centos 8.4, 8.5 +# Rocky 8.4, 8.5 +# Almalinuz 8.4, 8.5 +# RedHat 8.5 -# define variables +#Constants PANDORA_CONSOLE=/var/www/html/pandora_console -CONSOLE_PATH=/var/www/html/pandora_console PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf -DBHOST=127.0.0.1 -DBNAME=pandora -DBUSER=pandora -DBPASS=pandora -DBPORT=3306 -S_VERSION='2021070101' +PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf + + +S_VERSION='2022012401' LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log" +# define default variables +[ "$TZ" ] || TZ="Europe/Madrid" +[ "$DBHOST" ] || DBHOST=127.0.0.1 +[ "$DBNAME" ] || DBNAME=pandora +[ "$DBUSER" ] || DBUSER=pandora +[ "$DBPASS" ] || DBPASS=pandora +[ "$DBPORT" ] || DBPORT=3306 +[ "$DBROOTPASS" ] || DBROOTPASS=pandora +[ "$SKIP_PRECHECK" ] || SKIP_PRECHECK=0 +[ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0 +[ "$SKIP_KERNEL_OPTIMIZATIONS" ] || SKIP_KERNEL_OPTIMIZATIONS=0 +[ "$POOL_SIZE" ] || POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g") + # Ansi color code variables red="\e[0;91m" green="\e[0;92m" @@ -56,7 +74,7 @@ check_pre_pandora () { echo -en "${cyan}Checking environment ... ${reset}" rpm -qa | grep pandora &>> /dev/null && local fail=true - [ -d "$CONSOLE_PATH" ] && local fail=true + [ -d "$PANDORA_CONSOLE" ] && local fail=true [ -f /usr/bin/pandora_server ] && local fail=true echo "use $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true @@ -74,7 +92,7 @@ check_root_permissions () { echo -en "${cyan}Checking root account... ${reset}" if [ "$(whoami)" != "root" ]; then echo -e "${red}Fail${reset}" - echo "Please use a root account or sudo for installing PandoraFMS" + echo "Please use a root account or sudo for installing Pandora FMS" echo "Error installing Pandora FMS for detailed error please check log: $LOGFILE" exit 1 @@ -87,8 +105,8 @@ check_root_permissions () { echo "Starting PandoraFMS Community deployment EL8 ver. $S_VERSION" # Centos Version -if [ ! "$(grep -Ei 'centos|rocky' /etc/redhat-release)" ]; then - printf "\n ${red}Error this is not a Centos/Rocky Base system, this installer is compatible with Centos/Rocky systems only${reset}\n" +if [ ! "$(grep -Ei 'centos|rocky|Almalinux|Red Hat Enterprise' /etc/redhat-release)" ]; then + printf "\n ${red}Error this is not a Centos/Rocky/Almalinux Base system, this installer is compatible with Centos/Rocky systems only${reset}\n" exit 1 fi @@ -106,7 +124,7 @@ echo "Community installer version: $S_VERSION" >> "$LOGFILE" check_root_permissions # Pre installed pandora -check_pre_pandora +[ "$SKIP_PRECHECK" == 1 ] || check_pre_pandora # Connectivity check_repo_connection @@ -120,6 +138,9 @@ execute_cmd "[ $(grep MemTotal /proc/meminfo | awk '{print $2}') -ge 1700000 ]" # Check disk size at least 10 Gb free space execute_cmd "[ $(df -BM / | tail -1 | awk '{print $4}' | tr -d M) -gt 10000 ]" 'Checking Disk (required: 10 GB free min)' +# Setting timezone +execute_cmd "timedatectl set-timezone $TZ" "Setting Timezone $TZ" + # Execute tools check execute_cmd "awk --version" 'Checking needed tools: awk' execute_cmd "grep --version" 'Checking needed tools: grep' @@ -131,25 +152,57 @@ rm -rf "$HOME"/pandora_deploy_tmp/*.rpm* &>> "$LOGFILE" mkdir "$HOME"/pandora_deploy_tmp &>> "$LOGFILE" execute_cmd "cd $HOME/pandora_deploy_tmp" "Moving to workspace: $HOME/pandora_deploy_tmp" +## Extra steps on redhat envs +if [ "$(grep -Ei 'Red Hat Enterprise' /etc/redhat-release)" ]; then + ## In case REDHAT + # Check susbscription manager status: + echo -en "${cyan}Checking Red Hat Enterprise subscription... ${reset}" + subscription-manager status &>> "$LOGFILE" + subscription-manager list &>> "$LOGFILE" + subscription-manager list | grep 'Status:' | grep Subscribed &>> "$LOGFILE" + check_cmd_status 'Error checking subscription status, make sure your server is activated and suscribed to Red Hat Enterprise repositories' + + # Ckeck repolist + dnf repolist &>> "$LOGFILE" + echo -en "${cyan}Checking Red Hat Enterprise repolist... ${reset}" + dnf repolist | grep 'rhel-8-for-x86_64-baseos-rpms' &>> "$LOGFILE" + check_cmd_status 'Error checking repositories status, could try a subscription-manager attach command or contact sysadmin' + + #install extra repos + extra_repos=" \ + tar \ + dnf-utils \ + https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \ + http://rpms.remirepo.net/enterprise/remi-release-8.rpm \ + https://repo.percona.com/yum/percona-release-latest.noarch.rpm" + + execute_cmd "dnf install -y $extra_repos" "Installing extra repositories" + execute_cmd "subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms" "Enabling subscription to codeready-builder" +else + # For alma/rocky/centos + extra_repos=" \ + tar \ + dnf-utils \ + epel-release \ + http://rpms.remirepo.net/enterprise/remi-release-8.rpm \ + https://repo.percona.com/yum/percona-release-latest.noarch.rpm" + + execute_cmd "dnf install -y $extra_repos" "Installing extra repositories" + execute_cmd "dnf config-manager --set-enabled powertools" "Configuring Powertools" +fi + + #Installing wget execute_cmd "dnf install -y wget" "Installing wget" #Installing extra repositiries -extra_repos=" \ - tar \ - dnf-utils \ - epel-release \ - http://rpms.remirepo.net/enterprise/remi-release-8.rpm \ - https://repo.percona.com/yum/percona-release-latest.noarch.rpm" -execute_cmd "dnf install -y $extra_repos" "Installing extra repositories" -execute_cmd "dnf config-manager --set-enabled powertools" "Configuring Powertools" execute_cmd "dnf module reset -y php " "Disabling standard PHP module" -execute_cmd "dnf module install -y php:remi-7.3" "Configuring PHP" +execute_cmd "dnf module install -y php:remi-7.4" "Configuring PHP" # Install percona Database execute_cmd "dnf module disable -y mysql" "Disabiling mysql module" -rm -rf /etc/my.cnf +#rm -rf /etc/my.cnf execute_cmd "dnf install -y Percona-Server-server-57" "Installing Percona Server" # Console dependencies @@ -231,6 +284,7 @@ console_dependencies=" \ xorg-x11-fonts-misc \ poppler-data \ php-yaml \ + mod_ssl \ http://firefly.artica.es/centos8/perl-Net-Telnet-3.04-1.el8.noarch.rpm \ http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm \ http://firefly.artica.es/centos8/phantomjs-2.1.1-1.el7.x86_64.rpm" @@ -255,7 +309,8 @@ server_dependencies=" \ perl(IO::Socket::INET6) \ perl(XML::Twig) \ expect \ - openssh-clients \ + openssh-clients \ + java \ http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \ http://firefly.artica.es/centos7/wmic-1.4-1.el7.x86_64.rpm" execute_cmd "dnf install -y $server_dependencies" "Installing Pandora FMS Server dependencies" @@ -281,6 +336,7 @@ oracle_dependencies=" \ https://download.oracle.com/otn_software/linux/instantclient/19800/oracle-instantclient19.8-sqlplus-19.8.0.0.0-1.x86_64.rpm" execute_cmd "dnf install -y $oracle_dependencies" "Installing Oracle Instant client" +#ipam dependencies ipam_dependencies=" \ http://firefly.artica.es/centos7/xprobe2-0.3-12.2.x86_64.rpm \ perl(NetAddr::IP) \ @@ -290,32 +346,39 @@ ipam_dependencies=" \ perl(Geo::IP) \ perl(IO::Socket::INET6) \ perl(XML::Twig)" -execute_cmd "dnf install -y $ipam_dependencies" "Installing Oracle Instant client" +execute_cmd "dnf install -y $ipam_dependencies" "Installing IPAM Instant client" + +# MSSQL dependencies el8 +execute_cmd "curl https://packages.microsoft.com/config/rhel/8/prod.repo -o /etc/yum.repos.d/mssql-release.repo" "Configuring Microsoft repositories" +execute_cmd "dnf remove unixODBC-utf16 unixODBC-utf16-devel" "Removing default unixODBC packages" +execute_cmd "env ACCEPT_EULA=Y dnf install -y msodbcsql17" "Installing ODBC Driver for Microsoft(R) SQL Server(R)" +MS_ID=$(head -1 /etc/odbcinst.ini | tr -d '[]') &>> "$LOGFILE" +#dnf config-manager --set-disable packages-microsoft-com-prod # Disabling SELINUX and firewalld setenforce 0 &>> "$LOGFILE" sed -i -e "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config &>> "$LOGFILE" systemctl disable firewalld --now &>> "$LOGFILE" - #Configuring Database +if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then execute_cmd "systemctl start mysqld" "Starting database engine" export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev) echo """ SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!'); UNINSTALL PLUGIN validate_password; - SET PASSWORD FOR 'root'@'localhost' = PASSWORD('pandora'); - """ | mysql --connect-expired-password -uroot - -export MYSQL_PWD=$DBPASS + SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS'); + """ | mysql --connect-expired-password -uroot &>> "$LOGFILE" +fi +export MYSQL_PWD=$DBROOTPASS echo -en "${cyan}Creating Pandora FMS database...${reset}" echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST -check_cmd_status 'Error creating database pandora, is this an empty node? if you have a previus installation please contact with support.' +check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support." echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%' identified by \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST +export MYSQL_PWD=$DBPASS #Generating my.cnf -POOL_SIZE=$(grep -i total /proc/meminfo | head -1 | awk '{printf "%.2f \n", $(NF-1)*0.4/1024}' | sed "s/\\..*$/M/g") cat > /etc/my.cnf << EO_CONFIG_F [mysqld] datadir=/var/lib/mysql @@ -365,10 +428,10 @@ execute_cmd "systemctl restart mysqld" "Configuring database engine" # Downloading Pandora Packages execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_server-7.0NG.noarch.rpm" "Downloading Pandora FMS Server community" execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_console-7.0NG.noarch.rpm" "Downloading Pandora FMS Console community" -execute_cmd "wget http://firefly.artica.es/centos7/pandorafms_agent_unix-7.0NG.751_x86_64.rpm" "Downloading Pandora FMS Agent community" +execute_cmd "wget http://firefly.artica.es/pandorafms/latest/RHEL_CentOS/pandorafms_agent_unix-7.0NG.noarch.rpm" "Downloading Pandora FMS Agent community" # Install Pandora -execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "installing PandoraFMS packages" +execute_cmd "dnf install -y $HOME/pandora_deploy_tmp/pandorafms*.rpm" "Installing Pandora FMS packages" # Copy gotty utility execute_cmd "wget https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_amd64.tar.gz" 'Dowloading gotty util' @@ -391,13 +454,13 @@ mysql -u$DBUSER -P$DBPORT -h$DBHOST $DBNAME < $PANDORA_CONSOLE/pandoradb_data.sq check_cmd_status 'Error Loading database schema data' # Configure console -cat > $CONSOLE_PATH/include/config.php << EO_CONFIG_F +cat > $PANDORA_CONSOLE/include/config.php << EO_CONFIG_F > "$LOGFILE" # Prepare php.ini sed -i -e "s/^max_input_time.*/max_input_time = -1/g" /etc/php.ini @@ -466,6 +529,10 @@ sed -i -e "s/^dbname.*/dbname $DBNAME/g" $PANDORA_SERVER_CONF sed -i -e "s/^dbuser.*/dbuser $DBUSER/g" $PANDORA_SERVER_CONF sed -i -e "s|^dbpass.*|dbpass $DBPASS|g" $PANDORA_SERVER_CONF sed -i -e "s/^dbport.*/dbport $DBPORT/g" $PANDORA_SERVER_CONF +sed -i -e "s/^#.mssql_driver.*/mssql_driver $MS_ID/g" $PANDORA_SERVER_CONF + +# Enable agent remote config +sed -i "s/^remote_config.*$/remote_config 1/g" $PANDORA_AGENT_CONF # Set Oracle environment for pandora_server cat > /etc/pandora/pandora_server.env << 'EOF_ENV' @@ -477,6 +544,8 @@ export ORACLE_HOME=/usr/lib/oracle/$VERSION/client64 EOF_ENV # Kernel optimization + +if [ "$SKIP_KERNEL_OPTIMIZATIONS" -eq '0' ] ; then cat >> /etc/sysctl.conf <> "$LOGFILE" chmod +x /etc/init.d/pandora_websocket_engine # Start Websocket engine @@ -569,7 +639,7 @@ systemctl enable pandora_websocket_engine &>> "$LOGFILE" # Enable pandora ha service systemctl enable pandora_server --now &>> "$LOGFILE" -execute_cmd "systemctl start pandora_server" "Starting Pandora FMS Server" +execute_cmd "/etc/init.d/pandora_server start" "Starting Pandora FMS Server" # starting tentacle server systemctl enable tentacle_serverd &>> "$LOGFILE" @@ -580,7 +650,7 @@ execute_cmd "echo \"* * * * * root wget -q -O - --no-check-certificate http://12 echo "* * * * * root wget -q -O - --no-check-certificate http://127.0.0.1/pandora_console/enterprise/cron.php >> $PANDORA_CONSOLE/log/cron.log" >> /etc/crontab ## Enabling agent systemctl enable pandora_agent_daemon &>> "$LOGFILE" -execute_cmd "systemctl start pandora_agent_daemon" "starting Pandora FMS Agent" +execute_cmd "systemctl start pandora_agent_daemon" "Starting Pandora FMS Agent" #SSH banner [ "$(curl -s ifconfig.me)" ] && ipplublic=$(curl -s ifconfig.me) diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index f1adc4aced..108d66feb0 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.759-220202 +Version: 7.0NG.759-220207 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index e50e34915e..9a1db3dffa 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.759-220202" +pandora_version="7.0NG.759-220207" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/README b/pandora_agents/unix/README index 3758fa31b7..fd05861db3 100644 --- a/pandora_agents/unix/README +++ b/pandora_agents/unix/README @@ -47,4 +47,3 @@ License The project is distributed under the GPL License v2 or later. Copyright (C) 2004-2011 Pandora FMS development team - diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index a1e92986d8..6b3e1b0877 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1015,7 +1015,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.759'; -use constant AGENT_BUILD => '220202'; +use constant AGENT_BUILD => '220207'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 2f34c49649..ce70f1ccf1 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.759 -%define release 220202 +%define release 220207 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index d89eaf63b2..4f85f078f1 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.759 -%define release 220202 +%define release 220207 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 649ef1ab95..5587f32540 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.759" -PI_BUILD="220202" +PI_BUILD="220207" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 0e37901ba1..d76d4e21c3 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{220202} +{220207} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index b09e2700eb..72730f66c9 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.759 Build 220202") +#define PANDORA_VERSION ("7.0NG.759 Build 220207") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index afe809eebe..96b9992601 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.759(Build 220202))" + VALUE "ProductVersion", "(7.0NG.759(Build 220207))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 9998bb0d3f..46de6e0d89 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.759-220202 +Version: 7.0NG.759-220207 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 6f067bb9d2..554eda9839 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.759-220202" +pandora_version="7.0NG.759-220207" package_pear=0 package_pandora=1 diff --git a/pandora_console/godmode/agentes/planned_downtime.editor.php b/pandora_console/godmode/agentes/planned_downtime.editor.php index 616777ad6e..7d73a400c3 100644 --- a/pandora_console/godmode/agentes/planned_downtime.editor.php +++ b/pandora_console/godmode/agentes/planned_downtime.editor.php @@ -135,6 +135,7 @@ $first_create = (int) get_parameter('first_create'); $create_downtime = (int) get_parameter('create_downtime'); $update_downtime = (int) get_parameter('update_downtime'); $edit_downtime = (int) get_parameter('edit_downtime'); +$downtime_copy = (int) get_parameter('downtime_copy'); $id_downtime = (int) get_parameter('id_downtime'); $id_agent = (int) get_parameter('id_agent'); @@ -420,6 +421,16 @@ if ($create_downtime || $update_downtime) { } } +if ($downtime_copy) { + $result = planned_downtimes_copy($id_downtime); + if ($result['id_downtime'] !== false) { + $id_downtime = $result['id_downtime']; + ui_print_success_message($result['success']); + } else { + ui_print_error_message(__($result['error'])); + } +} + // Have any data to show ? if ($id_downtime > 0) { // Columns of the table tplanned_downtime. @@ -628,20 +639,20 @@ $table->data[5][1] = " ".ui_get_using_system_timezone_warning().' '.__('Type Periodicity:').' '.html_print_select( - [ - 'weekly' => __('Weekly'), - 'monthly' => __('Monthly'), - ], - 'type_periodicity', - $type_periodicity, - 'change_type_periodicity();', - '', - 0, - true, - false, - true, - '', - $disabled_in_execution + [ + 'weekly' => __('Weekly'), + 'monthly' => __('Monthly'), + ], + 'type_periodicity', + $type_periodicity, + 'change_type_periodicity();', + '', + 0, + true, + false, + true, + '', + $disabled_in_execution )." @@ -661,31 +672,31 @@ $table->data[5][1] = " ".__('From day:').' '.html_print_select( - $days, - 'periodically_day_from', - $periodically_day_from, - '', - '', - 0, - true, - false, - true, - '', - $disabled_in_execution + $days, + 'periodically_day_from', + $periodically_day_from, + '', + '', + 0, + true, + false, + true, + '', + $disabled_in_execution ).' '.__('To day:').' '.html_print_select( - $days, - 'periodically_day_to', - $periodically_day_to, - '', - '', - 0, - true, - false, - true, - '', - $disabled_in_execution + $days, + 'periodically_day_to', + $periodically_day_to, + '', + '', + 0, + true, + false, + true, + '', + $disabled_in_execution ).' '.ui_print_help_tip(__('The end day must be higher than the start day'), true).' @@ -694,26 +705,26 @@ $table->data[5][1] = " '.__('From hour:').' '.html_print_input_text( - 'periodically_time_from', - $periodically_time_from, - '', - 7, - 7, - true, - $disabled_in_execution + 'periodically_time_from', + $periodically_time_from, + '', + 7, + 7, + true, + $disabled_in_execution ).ui_print_help_tip( __('The end time must be higher than the start time'), true ).' '.__('To hour:').' '.html_print_input_text( - 'periodically_time_to', - $periodically_time_to, - '', - 7, - 7, - true, - $disabled_in_execution + 'periodically_time_to', + $periodically_time_to, + '', + 7, + 7, + true, + $disabled_in_execution ).ui_print_help_tip( __('The end time must be higher than the start time'), true @@ -997,13 +1008,13 @@ $table->data['module'][1] = " ".''.html_print_image( - 'images/cross.png', - true, - [ - 'border' => '0', - 'alt' => __('Delete'), - 'class' => 'invert_filter', - ] + 'images/cross.png', + true, + [ + 'border' => '0', + 'alt' => __('Delete'), + 'class' => 'invert_filter', + ] ).''." diff --git a/pandora_console/godmode/agentes/planned_downtime.list.php b/pandora_console/godmode/agentes/planned_downtime.list.php index d2e7de8ec9..cdd8bae876 100755 --- a/pandora_console/godmode/agentes/planned_downtime.list.php +++ b/pandora_console/godmode/agentes/planned_downtime.list.php @@ -405,6 +405,7 @@ else { if ($write_permisson || $manage_permisson) { $table->head['stop'] = __('Stop downtime'); + $table->head['copy'] = __('Copy'); $table->head['edit'] = __('Edit'); $table->head['delete'] = __('Delete'); } @@ -492,6 +493,8 @@ else { if (check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW') || check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD') ) { + // Copy. + $data['copy'] = ''.html_print_image('images/copy.png', true, ['title' => __('Copy'), 'class' => 'invert_filter']).''; // Edit. $data['edit'] = ''.html_print_image('images/config.png', true, ['title' => __('Update'), 'class' => 'invert_filter']).''; // Delete. @@ -504,6 +507,8 @@ else { if (check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AW') || check_acl_restricted_all($config['id_user'], $downtime['id_group'], 'AD') ) { + // Copy. + $data['copy'] = ''.html_print_image('images/copy.png', true, ['title' => __('Copy'), 'class' => 'invert_filter']).''; // Edit. $data['edit'] = ''.html_print_image('images/config.png', true, ['title' => __('Update'), 'class' => 'invert_filter']).''; // Delete. @@ -513,11 +518,13 @@ else { $data['delete'] = ''; } } else { + $data['copy'] = ''; $data['edit'] = ''; $data['delete'] = ''; } } else { $data['stop'] = ''; + $data['copy'] = ''; $data['edit'] = ''; $data['delete'] = ''; } diff --git a/pandora_console/godmode/gis_maps/configure_gis_map.php b/pandora_console/godmode/gis_maps/configure_gis_map.php index b8b3e62e49..5a5cac0f9b 100644 --- a/pandora_console/godmode/gis_maps/configure_gis_map.php +++ b/pandora_console/godmode/gis_maps/configure_gis_map.php @@ -71,6 +71,40 @@ foreach ($layer_ids as $layer_id) { $next_action = 'new_map'; +$buttons['gis_maps_list'] = [ + 'active' => false, + 'text' => ''.html_print_image( + 'images/list.png', + true, + [ + 'title' => __('GIS Maps list'), + 'class' => 'invert_filter', + ] + ).'', +]; +if ($idMap) { + $buttons['view_gis'] = [ + 'active' => false, + 'text' => ''.html_print_image( + 'images/op_gis.png', + true, + [ + 'title' => __('View GIS'), + 'class' => 'invert_filter', + ] + ).'', + ]; +} + +ui_print_page_header( + __('GIS Maps builder'), + 'images/gm_gis.png', + false, + 'configure_gis_map_edit', + true, + $buttons +); + switch ($action) { case 'save_new': $map_name = get_parameter('map_name'); @@ -269,42 +303,6 @@ switch ($action) { break; } -$url = 'index.php?sec='.$sec.'&sec2='.$sec2.'&map_id='.$idMap.'&action='.$next_action; - -$buttons['gis_maps_list'] = [ - 'active' => false, - 'text' => ''.html_print_image( - 'images/list.png', - true, - [ - 'title' => __('GIS Maps list'), - 'class' => 'invert_filter', - ] - ).'', -]; -if ($idMap) { - $buttons['view_gis'] = [ - 'active' => false, - 'text' => ''.html_print_image( - 'images/op_gis.png', - true, - [ - 'title' => __('View GIS'), - 'class' => 'invert_filter', - ] - ).'', - ]; -} - -ui_print_page_header( - __('GIS Maps builder'), - 'images/gm_gis.png', - false, - 'configure_gis_map_edit', - true, - $buttons -); - ?> '; // Load the data in edit or reload in update. @@ -463,12 +462,21 @@ foreach ($listConnectionTemp as $connectionTemp) { } $table->data[1][0] = __('Add Map connection').$iconError; -$table->data[1][1] = ".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)." - < / td > < td > < a href = 'javascript: addConnectionMap();' > ".html_print_image( +$table->data[1][1] = " + + + + ".gis_add_conection_maps_in_form($map_connection_list).'
+ ".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)." + + ".html_print_image( 'images/add.png', true, ['class' => 'invert_filter'] -)." < / a > < input type = 'hidden' name = 'map_connection_list' value = '' id = 'map_connection_list' / > < input type = 'hidden' name = 'layer_list' value = '' id = 'layer_list' / > < / td > < / tr > (".gis_add_conection_maps_in_form($map_connection_list).' +)." + + +
'; $own_info = get_user_info($config['id_user']); @@ -544,9 +552,9 @@ $table->data = []; $table->data[0][0] = '

'.__('List of layers').'

'; $table->data[0][1] = '
'.html_print_button(__('New layer'), 'new_layer', false, 'newLayer();', 'class="sub add "', true).'
'; -$table->data[1][0] = '
'; -$table->data[1][1] = '
'; +$table->data[1][1] = '