mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
Merge remote-tracking branch 'origin/develop' into ent-9002-Eliminar-monitorizacion-transaccional-Servidor-transaccional
This commit is contained in:
commit
39920692ef
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.766, AIX version
|
# Version 7.0NG.767, 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.766, FreeBSD Version
|
# Version 7.0NG.767, 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.766, HP-UX Version
|
# Version 7.0NG.767, 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.766, GNU/Linux
|
# Version 7.0NG.767, 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.766, GNU/Linux
|
# Version 7.0NG.767, 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.766, Solaris Version
|
# Version 7.0NG.767, 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.766
|
# Version 7.0NG.767
|
||||||
# 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.766, AIX version
|
# Version 7.0NG.767, 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.766
|
# Version 7.0NG.767
|
||||||
# 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.766, HPUX Version
|
# Version 7.0NG.767, 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.766
|
# Version 7.0NG.767
|
||||||
# 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.766
|
# Version 7.0NG.767
|
||||||
# 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.766
|
# Version 7.0NG.767
|
||||||
# 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.766, Solaris version
|
# Version 7.0NG.767, 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.766, AIX version
|
# Version 7.0NG.767, 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.766-221123
|
Version: 7.0NG.767-221209
|
||||||
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.766-221123"
|
pandora_version="7.0NG.767-221209"
|
||||||
|
|
||||||
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.766"
|
VERSION="7.0NG.767"
|
||||||
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.766" onConclusion="none">pandorafms_src.pdk</pkg-ref>
|
<pkg-ref id="com.pandorafms.pandorafms_src" version="7.0NG.767" 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.766" onConclusion="none">pandorafms_uninstall.pdk</pkg-ref>
|
<pkg-ref id="com.pandorafms.pandorafms_uninstall" version="7.0NG.767" 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.766</string>
|
<key>CFBundleVersion</key> <string>7.0NG.767</string>
|
||||||
<key>CFBundleGetInfoString</key> <string>7.0NG.766 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
<key>CFBundleGetInfoString</key> <string>7.0NG.767 Pandora FMS Agent uninstaller for MacOS by Artica ST on Aug 2020</string>
|
||||||
<key>CFBundleShortVersionString</key> <string>7.0NG.766</string>
|
<key>CFBundleShortVersionString</key> <string>7.0NG.767</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.766, GNU/Linux
|
# Version 7.0NG.767, 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.766, FreeBSD Version
|
# Version 7.0NG.767, 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.766, HP-UX Version
|
# Version 7.0NG.767, 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.766, GNU/Linux
|
# Version 7.0NG.767, 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.766, GNU/Linux
|
# Version 7.0NG.767, 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.766, NetBSD Version
|
# Version 7.0NG.767, 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.766, Solaris Version
|
# Version 7.0NG.767, 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.766';
|
use constant AGENT_VERSION => '7.0NG.767';
|
||||||
use constant AGENT_BUILD => '221123';
|
use constant AGENT_BUILD => '221209';
|
||||||
|
|
||||||
# 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.766
|
%define version 7.0NG.767
|
||||||
%define release 221123
|
%define release 221209
|
||||||
|
|
||||||
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.766
|
%define version 7.0NG.767
|
||||||
%define release 221123
|
%define release 221209
|
||||||
|
|
||||||
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.766"
|
PI_VERSION="7.0NG.767"
|
||||||
PI_BUILD="221123"
|
PI_BUILD="221209"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
@ -12,32 +12,34 @@
|
|||||||
#
|
#
|
||||||
###################################################
|
###################################################
|
||||||
|
|
||||||
from sys import argv
|
try:
|
||||||
from sys import path
|
from sys import argv
|
||||||
from sys import stderr
|
from sys import stderr
|
||||||
from sys import exit
|
from sys import exit
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
from subprocess import PIPE
|
from subprocess import PIPE
|
||||||
from subprocess import DEVNULL
|
from subprocess import DEVNULL
|
||||||
from subprocess import getstatusoutput
|
from subprocess import getstatusoutput
|
||||||
import psutil
|
import psutil
|
||||||
|
except ModuleNotFoundError as err:
|
||||||
|
print("{} error: {}. Exiting...".format(argv[0], err), file=stderr)
|
||||||
|
exit(1)
|
||||||
|
|
||||||
global module_list
|
|
||||||
module_list = []
|
module_list = []
|
||||||
version = "1.1"
|
VERSION = "1.2"
|
||||||
|
|
||||||
|
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
# Powershell class
|
# Powershell class
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
class PSCheck:
|
class PSCheck:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def check_service(servicename, option=False, memcpu=False):
|
def check_service(servicename, option=False, memcpu=False):
|
||||||
"""Check services with powershell by parsing their DisplayName. Returns a dict\
|
"""Check services with powershell by parsing their DisplayName. Returns a dict\
|
||||||
list with the name of the service and a boolean with its status.\n
|
list with the name of the service and a boolean with its status.\n
|
||||||
Requires service name (case insensitive)."""
|
Requires service name (case insensitive)."""
|
||||||
pscall = Popen(["powershell", "Get-Service", "-Name", "'*"+ str(servicename) + "*'",
|
pscall = Popen(["powershell", "Get-Service", "-Name", "'*"+ str(servicename) + "*'",
|
||||||
"|", "Select-Object", "-ExpandProperty", "Name"],
|
"|", "Select-Object", "-ExpandProperty", "Name"],
|
||||||
stdout=PIPE, stdin=DEVNULL, stderr=DEVNULL, universal_newlines=True)
|
stdout=PIPE, stdin=DEVNULL, stderr=DEVNULL, universal_newlines=True)
|
||||||
result = pscall.communicate()
|
result = pscall.communicate()
|
||||||
result = str(result[0]).strip().split("\n")
|
result = str(result[0]).strip().split("\n")
|
||||||
@ -50,15 +52,15 @@ class PSCheck:
|
|||||||
procname = PSCheck.get_serviceprocess(element)
|
procname = PSCheck.get_serviceprocess(element)
|
||||||
# Get process status
|
# Get process status
|
||||||
parstatus = PSCheck.getstatus(element)
|
parstatus = PSCheck.getstatus(element)
|
||||||
if memcpu == True and parstatus == 1:
|
if memcpu and parstatus == 1:
|
||||||
usage = get_memcpu(str(procname), str(element))
|
usage = get_memcpu(str(procname), str(element))
|
||||||
output += usage
|
output += usage
|
||||||
# Generate module with name and status
|
# Generate module with name and status
|
||||||
parent = service_module(str(element), parstatus)
|
parent = service_module(str(element), parstatus)
|
||||||
output += parent
|
output += parent
|
||||||
if option == True:
|
if option:
|
||||||
children = PSCheck.getchildren(element, memcpu)
|
children = PSCheck.getchildren(element, memcpu)
|
||||||
if type(children) == list and len(children) > 1:
|
if isinstance(children, list) and len(children) > 1:
|
||||||
for child in children:
|
for child in children:
|
||||||
output += child
|
output += child
|
||||||
else:
|
else:
|
||||||
@ -66,7 +68,6 @@ class PSCheck:
|
|||||||
else:
|
else:
|
||||||
next
|
next
|
||||||
|
|
||||||
#if output != '':
|
|
||||||
if output and element and procname:
|
if output and element and procname:
|
||||||
return ({"name" : element, "process" : procname, "modules": output})
|
return ({"name" : element, "process" : procname, "modules": output})
|
||||||
else:
|
else:
|
||||||
@ -84,22 +85,22 @@ class PSCheck:
|
|||||||
status = PSCheck.getstatus(child)
|
status = PSCheck.getstatus(child)
|
||||||
kids += service_module(str(child), status, "Service " + str(servicename) + " - Status")
|
kids += service_module(str(child), status, "Service " + str(servicename) + " - Status")
|
||||||
if status:
|
if status:
|
||||||
if memcpu == True:
|
if memcpu:
|
||||||
kidsusage = get_memcpu(str(child))
|
kidsusage = get_memcpu(str(child))
|
||||||
for usage in kidsusage:
|
for usage in kidsusage:
|
||||||
kids += usage
|
kids += usage
|
||||||
else:
|
else:
|
||||||
next
|
next
|
||||||
return (kids)
|
return kids
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getstatus(servicename):
|
def getstatus(servicename):
|
||||||
"""Gets the status of a given Windows service"""
|
"""Gets the status of a given Windows service"""
|
||||||
running = Popen(["powershell", "Get-Service", "-Name '" + str(servicename) +
|
running = Popen(["powershell", "Get-Service", "-Name '" + str(servicename) +
|
||||||
"' |", "Select-Object", "-ExpandProperty", "Status"],
|
"' |", "Select-Object", "-ExpandProperty", "Status"],
|
||||||
stdout=PIPE, stdin=DEVNULL, stderr=DEVNULL, universal_newlines=True)
|
stdout=PIPE, stdin=DEVNULL, stderr=DEVNULL, universal_newlines=True)
|
||||||
status = running.communicate()[0].strip()
|
status = running.communicate()[0].strip()
|
||||||
return (int(status == "Running"))
|
return int(status == "Running")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_serviceprocess(servicename):
|
def get_serviceprocess(servicename):
|
||||||
@ -108,7 +109,7 @@ class PSCheck:
|
|||||||
srv_pid = service.pid()
|
srv_pid = service.pid()
|
||||||
process = psutil.Process(srv_pid)
|
process = psutil.Process(srv_pid)
|
||||||
proc_name = process.name()
|
proc_name = process.name()
|
||||||
return (proc_name)
|
return proc_name
|
||||||
|
|
||||||
|
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
@ -124,13 +125,13 @@ def service_module(name, value, parent=None):
|
|||||||
"module_parent" : parent,
|
"module_parent" : parent,
|
||||||
}]
|
}]
|
||||||
#print ("service_module END "+str(now(0,1)))
|
#print ("service_module END "+str(now(0,1)))
|
||||||
return (module)
|
return module
|
||||||
|
|
||||||
def get_memcpu (process, servicename):
|
def get_memcpu (process, servicename=None):
|
||||||
"""Creates a module for Memory and CPU for a given process. Returns a list of dictionaries."""
|
"""Creates a module for Memory and CPU for a given process. Returns a list of dictionaries."""
|
||||||
modules = []
|
modules = []
|
||||||
if process:
|
if process:
|
||||||
if servicename != None:
|
if servicename is not None:
|
||||||
parentname = servicename
|
parentname = servicename
|
||||||
else:
|
else:
|
||||||
parentname = process
|
parentname = process
|
||||||
@ -147,7 +148,7 @@ def get_memcpu (process, servicename):
|
|||||||
"unit" : "%",
|
"unit" : "%",
|
||||||
"module_parent" : "Service "+ parentname + " - Status",
|
"module_parent" : "Service "+ parentname + " - Status",
|
||||||
}]
|
}]
|
||||||
return (modules)
|
return modules
|
||||||
|
|
||||||
def proc_percentbyname(procname): ############# 03/03/2020
|
def proc_percentbyname(procname): ############# 03/03/2020
|
||||||
"""Gets Memory and CPU usage for a given process. Returns a list."""
|
"""Gets Memory and CPU usage for a given process. Returns a list."""
|
||||||
@ -165,7 +166,7 @@ def proc_percentbyname(procname): ############# 03/03/2020
|
|||||||
except psutil.NoSuchProcess:
|
except psutil.NoSuchProcess:
|
||||||
next
|
next
|
||||||
#print ("proc_percentbyname END "+str(now(0,1)))
|
#print ("proc_percentbyname END "+str(now(0,1)))
|
||||||
return ([sum(memory),sum(cpu)])
|
return [sum(memory),sum(cpu)]
|
||||||
|
|
||||||
def win_service(servicelist, option=False, memcpu=False):
|
def win_service(servicelist, option=False, memcpu=False):
|
||||||
"""Creates modules for Windows servers."""
|
"""Creates modules for Windows servers."""
|
||||||
@ -173,7 +174,7 @@ def win_service(servicelist, option=False, memcpu=False):
|
|||||||
for srvc in servicelist:
|
for srvc in servicelist:
|
||||||
if srvc and len(srvc) > 2:
|
if srvc and len(srvc) > 2:
|
||||||
output = PSCheck.check_service(srvc, option, memcpu)
|
output = PSCheck.check_service(srvc, option, memcpu)
|
||||||
if output != None and output["modules"]:
|
if output is not None and output["modules"]:
|
||||||
modules += PSCheck.check_service(srvc.strip(), option, memcpu)["modules"]
|
modules += PSCheck.check_service(srvc.strip(), option, memcpu)["modules"]
|
||||||
module_list.append(srvc)
|
module_list.append(srvc)
|
||||||
#winprocess = output["name"]
|
#winprocess = output["name"]
|
||||||
@ -197,9 +198,9 @@ def lnx_service(services_list, memcpu=False):
|
|||||||
if sysctl == 0:
|
if sysctl == 0:
|
||||||
### Systemd available
|
### Systemd available
|
||||||
syscall = Popen(["systemctl", "show", "-pLoadState", "-pActiveState", srvc], stdout=PIPE,
|
syscall = Popen(["systemctl", "show", "-pLoadState", "-pActiveState", srvc], stdout=PIPE,
|
||||||
stdin=DEVNULL, universal_newlines=True)
|
stdin=DEVNULL, universal_newlines=True)
|
||||||
result = syscall.communicate()
|
result = syscall.communicate()
|
||||||
srvstatus= result[0].strip().lower().split("\n")
|
srvstatus = result[0].strip().lower().split("\n")
|
||||||
if srvstatus[0] == "loadstate=not-found":
|
if srvstatus[0] == "loadstate=not-found":
|
||||||
next
|
next
|
||||||
else:
|
else:
|
||||||
@ -212,7 +213,7 @@ def lnx_service(services_list, memcpu=False):
|
|||||||
elif sysctl != 0 and servic == 0:
|
elif sysctl != 0 and servic == 0:
|
||||||
### Systemd not available, switch to service command
|
### Systemd not available, switch to service command
|
||||||
syscall = Popen(["service", srvc, "status"], stdout=PIPE,
|
syscall = Popen(["service", srvc, "status"], stdout=PIPE,
|
||||||
stdin=DEVNULL, stderr=DEVNULL, universal_newlines=True)
|
stdin=DEVNULL, stderr=DEVNULL, universal_newlines=True)
|
||||||
result = syscall.communicate()[0].lower()
|
result = syscall.communicate()[0].lower()
|
||||||
if "is running" in result:
|
if "is running" in result:
|
||||||
modules += service_module(srvc, 1)
|
modules += service_module(srvc, 1)
|
||||||
@ -223,15 +224,15 @@ def lnx_service(services_list, memcpu=False):
|
|||||||
else:
|
else:
|
||||||
next
|
next
|
||||||
else:
|
else:
|
||||||
print ("No systemd or service commands available. Exiting...", file=stderr)
|
print("No systemd or service commands available. Exiting...", file=stderr)
|
||||||
exit()
|
exit()
|
||||||
if status:
|
if status:
|
||||||
module_list.append(srvc)
|
module_list.append(srvc)
|
||||||
if memcpu == True:
|
if memcpu:
|
||||||
modules += get_memcpu(srvc, None)
|
modules += get_memcpu(srvc, None)
|
||||||
|
|
||||||
for m in modules:
|
for m in modules:
|
||||||
print_module (m, 1)
|
print_module(m, 1)
|
||||||
|
|
||||||
|
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
@ -339,7 +340,7 @@ def print_module(module, str_flag=False):
|
|||||||
|
|
||||||
#### Print flag
|
#### Print flag
|
||||||
if str_flag is not False:
|
if str_flag is not False:
|
||||||
print (module_xml)
|
print(module_xml)
|
||||||
|
|
||||||
return (module_xml)
|
return (module_xml)
|
||||||
|
|
||||||
@ -362,7 +363,7 @@ def main():
|
|||||||
"postfix", "mysqld", "postgres", "oracle", "mongod"]
|
"postfix", "mysqld", "postgres", "oracle", "mongod"]
|
||||||
discover(OS, service_list)
|
discover(OS, service_list)
|
||||||
else:
|
else:
|
||||||
print ("OS not recognized. Exiting...", file=stderr)
|
print("OS not recognized. Exiting...", file=stderr)
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
def discover(osyst, servicelist):
|
def discover(osyst, servicelist):
|
||||||
@ -383,24 +384,24 @@ def discover(osyst, servicelist):
|
|||||||
elif osyst == "Linux":
|
elif osyst == "Linux":
|
||||||
lnx_service(servicelist, memcpu)
|
lnx_service(servicelist, memcpu)
|
||||||
else:
|
else:
|
||||||
print ("\nPandora FMS Autodiscovery plugin v{}".format(version))
|
print("\nPandora FMS Autodiscovery plugin v{}".format(VERSION))
|
||||||
print ("Checks the status of the services in list and monitors CPU and Memory for each of them.\n")
|
print("Checks the status of the services in list and monitors CPU and Memory for each of them.\n")
|
||||||
print ("Usage:")
|
print("Usage:")
|
||||||
print ("{} [options] [--usage]".format(argv[0]))
|
print("{} [options] [--usage]".format(argv[0]))
|
||||||
print ("--help")
|
print("--help")
|
||||||
print ("\tPrints this help screen")
|
print("\tPrints this help screen")
|
||||||
print ("--default")
|
print("--default")
|
||||||
print ("\tRuns this tool with default monitoring.")
|
print("\tRuns this tool with default monitoring.")
|
||||||
print ("\tServices monitored by default for {}:".format(osyst))
|
print("\tServices monitored by default for {}:".format(osyst))
|
||||||
print ("\t",", ".join(servicelist))
|
print("\t", ", ".join(servicelist))
|
||||||
print ("--list \"<srvc1,srvc2,srvc3>\"")
|
print("--list \"<srvc1,srvc2,srvc3>\"")
|
||||||
print ("\tReplaces default services for a given list (comma-separated)")
|
print("\tReplaces default services for a given list (comma-separated)")
|
||||||
if osyst == "Windows":
|
if osyst == "Windows":
|
||||||
print ("\tEach element of the list will be treated as a regexp, but they must be over 2 characters.")
|
print("\tEach element of the list will be treated as a regexp, but they must be over 2 characters.")
|
||||||
print ("\tElements under 2 characters will be discarded.")
|
print("\tElements under 2 characters will be discarded.")
|
||||||
print ("--usage")
|
print("--usage")
|
||||||
print ("\tAdds modules for CPU and Memory usage per service/process (optional, can take some time).\n")
|
print("\tAdds modules for CPU and Memory usage per service/process (optional, can take some time).\n")
|
||||||
|
|
||||||
|
|
||||||
##### RUN ####
|
##### RUN ####
|
||||||
main()
|
main()
|
||||||
|
@ -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.766
|
# Version 7.0NG.767
|
||||||
# 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.766}
|
{Pandora FMS Windows Agent v7.0NG.767}
|
||||||
|
|
||||||
ApplicationID
|
ApplicationID
|
||||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||||
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{221123}
|
{221209}
|
||||||
|
|
||||||
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.766 Build 221123")
|
#define PANDORA_VERSION ("7.0NG.767 Build 221209")
|
||||||
|
|
||||||
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.766(Build 221123))"
|
VALUE "ProductVersion", "(7.0NG.767(Build 221209))"
|
||||||
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.766-221123
|
Version: 7.0NG.767-221209
|
||||||
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.766-221123"
|
pandora_version="7.0NG.767-221209"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -2,4 +2,8 @@ START TRANSACTION;
|
|||||||
|
|
||||||
ALTER TABLE `tevent_filter` MODIFY COLUMN `server_id` TEXT;
|
ALTER TABLE `tevent_filter` MODIFY COLUMN `server_id` TEXT;
|
||||||
|
|
||||||
|
UPDATE tconfig SET value = 'Hope' WHERE token LIKE 'lts_name';
|
||||||
|
|
||||||
|
ALTER TABLE `tlayout_template` ADD COLUMN `maintenance_mode` TEXT;
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
@ -570,7 +570,7 @@ foreach ($simple_alerts as $alert) {
|
|||||||
|
|
||||||
if ($alert['times_fired'] > 0) {
|
if ($alert['times_fired'] > 0) {
|
||||||
$status = STATUS_ALERT_FIRED;
|
$status = STATUS_ALERT_FIRED;
|
||||||
$title = __('Alert fired').' '.$alert['internal_counter'].' '.__('time(s)');
|
$title = __('Alert fired').' '.$alert['times_fired'].' '.__('time(s)');
|
||||||
} else if ($alert['disabled'] > 0) {
|
} else if ($alert['disabled'] > 0) {
|
||||||
$status = STATUS_ALERT_DISABLED;
|
$status = STATUS_ALERT_DISABLED;
|
||||||
$title = __('Alert disabled');
|
$title = __('Alert disabled');
|
||||||
|
@ -102,7 +102,7 @@ $table_details->data[] = $data;
|
|||||||
|
|
||||||
if ($alert['times_fired'] > 0) {
|
if ($alert['times_fired'] > 0) {
|
||||||
$status = STATUS_ALERT_FIRED;
|
$status = STATUS_ALERT_FIRED;
|
||||||
$title = __('Alert fired').' '.$alert['internal_counter'].' '.__('time(s)');
|
$title = __('Alert fired').' '.$alert['times_fired'].' '.__('time(s)');
|
||||||
} else if ($alert['disabled'] > 0) {
|
} else if ($alert['disabled'] > 0) {
|
||||||
$status = STATUS_ALERT_DISABLED;
|
$status = STATUS_ALERT_DISABLED;
|
||||||
$title = __('Alert disabled');
|
$title = __('Alert disabled');
|
||||||
|
@ -42,7 +42,6 @@ require_once $config['homedir'].'/include/functions_users.php';
|
|||||||
if (is_metaconsole() === true) {
|
if (is_metaconsole() === true) {
|
||||||
enterprise_include_once('include/functions_metaconsole.php');
|
enterprise_include_once('include/functions_metaconsole.php');
|
||||||
enterprise_include_once('meta/include/functions_agents_meta.php');
|
enterprise_include_once('meta/include/functions_agents_meta.php');
|
||||||
enterprise_hook('open_meta_frame');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_ajax() === true) {
|
if (is_ajax() === true) {
|
||||||
@ -270,6 +269,7 @@ if (is_ajax() === true) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enterprise_hook('open_meta_frame');
|
||||||
|
|
||||||
$tab = (string) get_parameter('tab', 'groups');
|
$tab = (string) get_parameter('tab', 'groups');
|
||||||
|
|
||||||
|
@ -100,16 +100,15 @@ if (! check_acl($config['id_user'], 0, 'AW')) {
|
|||||||
|
|
||||||
$options_policies = [];
|
$options_policies = [];
|
||||||
$policies_options = enterprise_hook('massive_policies_options');
|
$policies_options = enterprise_hook('massive_policies_options');
|
||||||
$policies_options = array_unique($policies_options);
|
|
||||||
|
|
||||||
if ($policies_options != ENTERPRISE_NOT_HOOK) {
|
if ($policies_options != ENTERPRISE_NOT_HOOK) {
|
||||||
|
$policies_options = array_unique($policies_options);
|
||||||
$options_policies = array_merge($options_policies, $policies_options);
|
$options_policies = array_merge($options_policies, $policies_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
$options_snmp = [];
|
$options_snmp = [];
|
||||||
$snmp_options = enterprise_hook('massive_snmp_options');
|
$snmp_options = enterprise_hook('massive_snmp_options');
|
||||||
$snmp_options = array_reverse($snmp_options);
|
|
||||||
if ($snmp_options != ENTERPRISE_NOT_HOOK) {
|
if ($snmp_options != ENTERPRISE_NOT_HOOK) {
|
||||||
|
$snmp_options = array_reverse($snmp_options);
|
||||||
$options_snmp = array_merge($options_snmp, $snmp_options);
|
$options_snmp = array_merge($options_snmp, $snmp_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,6 +63,7 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
$table->class = 'info_table';
|
$table->class = 'info_table';
|
||||||
$table->width = '98%';
|
$table->width = '98%';
|
||||||
$table->head[0] = __('Map connection name');
|
$table->head[0] = __('Map connection name');
|
||||||
|
@ -207,6 +207,7 @@ switch ($action) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
$table->width = '90%';
|
$table->width = '90%';
|
||||||
|
|
||||||
$table->data = [];
|
$table->data = [];
|
||||||
|
@ -35,8 +35,6 @@ require_once $config['homedir'].'/vendor/autoload.php';
|
|||||||
|
|
||||||
use PandoraFMS\Dashboard\Manager;
|
use PandoraFMS\Dashboard\Manager;
|
||||||
|
|
||||||
enterprise_hook('open_meta_frame');
|
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_profile.php';
|
require_once $config['homedir'].'/include/functions_profile.php';
|
||||||
require_once $config['homedir'].'/include/functions_users.php';
|
require_once $config['homedir'].'/include/functions_users.php';
|
||||||
require_once $config['homedir'].'/include/functions_groups.php';
|
require_once $config['homedir'].'/include/functions_groups.php';
|
||||||
@ -270,7 +268,7 @@ if (is_ajax()) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enterprise_hook('open_meta_frame');
|
||||||
|
|
||||||
$tab = get_parameter('tab', 'user');
|
$tab = get_parameter('tab', 'user');
|
||||||
|
|
||||||
@ -1942,7 +1940,10 @@ function delete_profile(event, btn) {
|
|||||||
|
|
||||||
var json = json_profile.val();
|
var json = json_profile.val();
|
||||||
var test = JSON.parse(json);
|
var test = JSON.parse(json);
|
||||||
test.splice(position-1, 1);
|
|
||||||
|
var position_offset = <?php echo (is_metaconsole() === true) ? 2 : 1; ?>;
|
||||||
|
|
||||||
|
test.splice(position-position_offset, 1);
|
||||||
json_profile.val(JSON.stringify(test));
|
json_profile.val(JSON.stringify(test));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,9 +250,9 @@ function process_user_login_remote($login, $pass, $api=false)
|
|||||||
{
|
{
|
||||||
global $config, $mysql_cache;
|
global $config, $mysql_cache;
|
||||||
|
|
||||||
// Remote authentication
|
// Remote authentication.
|
||||||
switch ($config['auth']) {
|
switch ($config['auth']) {
|
||||||
// LDAP
|
// LDAP.
|
||||||
case 'ldap':
|
case 'ldap':
|
||||||
$sr = ldap_process_user_login($login, $pass);
|
$sr = ldap_process_user_login($login, $pass);
|
||||||
// Try with secondary server if not login.
|
// Try with secondary server if not login.
|
||||||
@ -265,7 +265,7 @@ function process_user_login_remote($login, $pass, $api=false)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Active Directory
|
// Active Directory.
|
||||||
case 'ad':
|
case 'ad':
|
||||||
if (enterprise_hook('ad_process_user_login', [$login, $pass]) === false) {
|
if (enterprise_hook('ad_process_user_login', [$login, $pass]) === false) {
|
||||||
$config['auth_error'] = 'User not found in database or incorrect password';
|
$config['auth_error'] = 'User not found in database or incorrect password';
|
||||||
@ -273,7 +273,7 @@ function process_user_login_remote($login, $pass, $api=false)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Remote Pandora FMS
|
// Remote Pandora FMS.
|
||||||
case 'pandora':
|
case 'pandora':
|
||||||
if (enterprise_hook('remote_pandora_process_user_login', [$login, $pass]) === false) {
|
if (enterprise_hook('remote_pandora_process_user_login', [$login, $pass]) === false) {
|
||||||
$config['auth_error'] = 'User not found in database or incorrect password';
|
$config['auth_error'] = 'User not found in database or incorrect password';
|
||||||
@ -281,7 +281,7 @@ function process_user_login_remote($login, $pass, $api=false)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Remote Integria
|
// Remote Integria.
|
||||||
case 'integria':
|
case 'integria':
|
||||||
if (enterprise_hook('remote_integria_process_user_login', [$login, $pass]) === false) {
|
if (enterprise_hook('remote_integria_process_user_login', [$login, $pass]) === false) {
|
||||||
$config['auth_error'] = 'User not found in database or incorrect password';
|
$config['auth_error'] = 'User not found in database or incorrect password';
|
||||||
@ -289,7 +289,7 @@ function process_user_login_remote($login, $pass, $api=false)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Unknown authentication method
|
// Unknown authentication method.
|
||||||
default:
|
default:
|
||||||
$config['auth_error'] = 'User not found in database or incorrect password';
|
$config['auth_error'] = 'User not found in database or incorrect password';
|
||||||
return false;
|
return false;
|
||||||
@ -303,7 +303,7 @@ function process_user_login_remote($login, $pass, $api=false)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Authentication ok, check if the user exists in the local database
|
// Authentication ok, check if the user exists in the local database.
|
||||||
if (is_user($login)) {
|
if (is_user($login)) {
|
||||||
if (!user_can_login($login) && $api === false) {
|
if (!user_can_login($login) && $api === false) {
|
||||||
return false;
|
return false;
|
||||||
@ -370,10 +370,10 @@ function process_user_login_remote($login, $pass, $api=false)
|
|||||||
return $login;
|
return $login;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The user does not exist and can not be created
|
// The user does not exist and can not be created.
|
||||||
if ($config['autocreate_remote_users'] == 0 || is_user_blacklisted($login)) {
|
if ($config['autocreate_remote_users'] == 0 || is_user_blacklisted($login)) {
|
||||||
$config['auth_error'] = __(
|
$config['auth_error'] = __(
|
||||||
'Ooops User not found in
|
'Ooops User not found in
|
||||||
database or incorrect password'
|
database or incorrect password'
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -967,6 +967,12 @@ function ldap_process_user_login($login, $password, $secondary_server=false)
|
|||||||
|
|
||||||
$sr = ldap_search($ds, io_safe_output($ldap['ldap_base_dn']), $filter);
|
$sr = ldap_search($ds, io_safe_output($ldap['ldap_base_dn']), $filter);
|
||||||
|
|
||||||
|
if (empty($sr) === true) {
|
||||||
|
$config['auth_error'] = 'ldap search failed';
|
||||||
|
@ldap_close($ds);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$memberof = ldap_get_entries($ds, $sr);
|
$memberof = ldap_get_entries($ds, $sr);
|
||||||
|
|
||||||
if ($memberof['count'] == 0 && !isset($memberof[0]['memberof'])) {
|
if ($memberof['count'] == 0 && !isset($memberof[0]['memberof'])) {
|
||||||
|
@ -2215,7 +2215,9 @@ class NetworkMap
|
|||||||
// Store relationships.
|
// Store relationships.
|
||||||
$this->relations = array_merge($edges, $orphans);
|
$this->relations = array_merge($edges, $orphans);
|
||||||
} else {
|
} else {
|
||||||
$this->relations = $edges;
|
if (empty($this->relations) === true && empty($this->$edges) === false) {
|
||||||
|
$this->relations = $edges;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close dot file.
|
// Close dot file.
|
||||||
@ -2409,6 +2411,13 @@ class NetworkMap
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($this->mapOptions['map_filter']['node_separation']) === true) {
|
||||||
|
foreach ($graph['nodes'] as $key => $value) {
|
||||||
|
$graph['nodes'][$key]['x'] *= $this->mapOptions['map_filter']['node_separation'];
|
||||||
|
$graph['nodes'][$key]['y'] *= $this->mapOptions['map_filter']['node_separation'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
unlink($filename_plain);
|
unlink($filename_plain);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
/**
|
/**
|
||||||
* Pandora build version and version
|
* Pandora build version and version
|
||||||
*/
|
*/
|
||||||
$build_version = 'PC221123';
|
$build_version = 'PC221209';
|
||||||
$pandora_version = 'v7.0NG.766';
|
$pandora_version = 'v7.0NG.767';
|
||||||
|
|
||||||
// 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();
|
||||||
|
@ -4367,7 +4367,6 @@ function agents_get_starmap(int $id_agent, float $width=0, float $height=0)
|
|||||||
$status = modules_get_agentmodule_status($key);
|
$status = modules_get_agentmodule_status($key);
|
||||||
switch ($status) {
|
switch ($status) {
|
||||||
case 0:
|
case 0:
|
||||||
case 4:
|
|
||||||
case 300:
|
case 300:
|
||||||
$status = 'normal';
|
$status = 'normal';
|
||||||
break;
|
break;
|
||||||
@ -4386,6 +4385,7 @@ function agents_get_starmap(int $id_agent, float $width=0, float $height=0)
|
|||||||
$status = 'unknown';
|
$status = 'unknown';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
case 5:
|
case 5:
|
||||||
$status = 'notinit';
|
$status = 'notinit';
|
||||||
break;
|
break;
|
||||||
|
@ -1100,7 +1100,7 @@ function gis_update_map(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists('layer_agent_list', $layer)) {
|
if (array_key_exists('layer_agent_list', $layer)) {
|
||||||
if (count($layer['layer_agent_list']) > 0) {
|
if (empty($layer['layer_agent_list']) === false && count($layer['layer_agent_list']) > 0) {
|
||||||
foreach ($layer['layer_agent_list'] as $agent) {
|
foreach ($layer['layer_agent_list'] as $agent) {
|
||||||
$id = db_process_sql_insert(
|
$id = db_process_sql_insert(
|
||||||
'tgis_map_layer_has_tagente',
|
'tgis_map_layer_has_tagente',
|
||||||
@ -1114,7 +1114,7 @@ function gis_update_map(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (array_key_exists('layer_group_list', $layer)) {
|
if (array_key_exists('layer_group_list', $layer)) {
|
||||||
if (count($layer['layer_group_list']) > 0) {
|
if (empty($layer['layer_group_list']) === false && count($layer['layer_group_list']) > 0) {
|
||||||
foreach ($layer['layer_group_list'] as $group) {
|
foreach ($layer['layer_group_list'] as $group) {
|
||||||
$id = db_process_sql_insert(
|
$id = db_process_sql_insert(
|
||||||
'tgis_map_layer_groups',
|
'tgis_map_layer_groups',
|
||||||
|
@ -124,8 +124,9 @@ function network_general_map_configuration($nodes, $relations)
|
|||||||
'map_options' => [
|
'map_options' => [
|
||||||
'generation_method' => LAYOUT_SPRING1,
|
'generation_method' => LAYOUT_SPRING1,
|
||||||
'map_filter' => [
|
'map_filter' => [
|
||||||
'node_radius' => 40,
|
'node_radius' => 40,
|
||||||
'node_sep' => 7,
|
'node_sep' => 7,
|
||||||
|
'node_separation' => 5,
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
@ -171,8 +172,8 @@ function network_init_node_map($name)
|
|||||||
return [
|
return [
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'type' => NODE_GENERIC,
|
'type' => NODE_GENERIC,
|
||||||
'width' => 20,
|
'width' => 40,
|
||||||
'height' => 20,
|
'height' => 40,
|
||||||
'status' => '#82B92E',
|
'status' => 0,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -284,7 +284,7 @@ function profile_print_profile_table($id, $json_profile=false, $return=false)
|
|||||||
if (empty($profile['tags'])) {
|
if (empty($profile['tags'])) {
|
||||||
$data['tags'] = '';
|
$data['tags'] = '';
|
||||||
} else {
|
} else {
|
||||||
if (is_array($profile['tags'] === false)) {
|
if (is_array($profile['tags']) === false) {
|
||||||
$tags_ids = explode(',', $profile['tags']);
|
$tags_ids = explode(',', $profile['tags']);
|
||||||
} else {
|
} else {
|
||||||
$tags_ids = $profile['tags'];
|
$tags_ids = $profile['tags'];
|
||||||
|
@ -1107,7 +1107,7 @@ function tags_get_user_tags($id_user=false, $access='AR', $return_tag_any=false)
|
|||||||
|
|
||||||
$profiles_without_tags = db_get_value_sql($query);
|
$profiles_without_tags = db_get_value_sql($query);
|
||||||
|
|
||||||
if ($profiles_without_tags == 0) {
|
if (users_is_admin() === true || $profiles_without_tags == 0) {
|
||||||
// --------------------------------------------------------------
|
// --------------------------------------------------------------
|
||||||
// FIXED FOR TICKET #1921
|
// FIXED FOR TICKET #1921
|
||||||
//
|
//
|
||||||
|
@ -4003,10 +4003,10 @@ function ui_toggle(
|
|||||||
// Options.
|
// Options.
|
||||||
$style = 'overflow:hidden;';
|
$style = 'overflow:hidden;';
|
||||||
if ($hidden_default) {
|
if ($hidden_default) {
|
||||||
$style .= 'height:0;';
|
$style .= 'height:0;position:absolute;';
|
||||||
$original = $img_b;
|
$original = $img_b;
|
||||||
} else {
|
} else {
|
||||||
$style .= 'height:auto;';
|
$style .= 'height:auto;position:relative;';
|
||||||
$original = $img_a;
|
$original = $img_a;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4113,10 +4113,12 @@ function ui_toggle(
|
|||||||
$output .= ' if (hide_tgl_ctrl_'.$uniqid.") {\n";
|
$output .= ' if (hide_tgl_ctrl_'.$uniqid.") {\n";
|
||||||
$output .= ' hide_tgl_ctrl_'.$uniqid." = 0;\n";
|
$output .= ' hide_tgl_ctrl_'.$uniqid." = 0;\n";
|
||||||
$output .= " $('#tgl_div_".$uniqid."').css('height', 'auto');\n";
|
$output .= " $('#tgl_div_".$uniqid."').css('height', 'auto');\n";
|
||||||
|
$output .= " $('#tgl_div_".$uniqid."').css('position', 'relative');\n";
|
||||||
$output .= " }\n";
|
$output .= " }\n";
|
||||||
$output .= " else {\n";
|
$output .= " else {\n";
|
||||||
$output .= ' hide_tgl_ctrl_'.$uniqid." = 1;\n";
|
$output .= ' hide_tgl_ctrl_'.$uniqid." = 1;\n";
|
||||||
$output .= " $('#tgl_div_".$uniqid."').css('height', 0);\n";
|
$output .= " $('#tgl_div_".$uniqid."').css('height', 0);\n";
|
||||||
|
$output .= " $('#tgl_div_".$uniqid."').css('position', 'absolute');\n";
|
||||||
$output .= " }\n";
|
$output .= " }\n";
|
||||||
$output .= " }\n";
|
$output .= " }\n";
|
||||||
$output .= " });\n";
|
$output .= " });\n";
|
||||||
@ -4124,12 +4126,14 @@ function ui_toggle(
|
|||||||
$output .= ' if (hide_tgl_ctrl_'.$uniqid.") {\n";
|
$output .= ' if (hide_tgl_ctrl_'.$uniqid.") {\n";
|
||||||
$output .= ' hide_tgl_ctrl_'.$uniqid." = 0;\n";
|
$output .= ' hide_tgl_ctrl_'.$uniqid." = 0;\n";
|
||||||
$output .= " $('#tgl_div_".$uniqid."').css('height', 'auto');\n";
|
$output .= " $('#tgl_div_".$uniqid."').css('height', 'auto');\n";
|
||||||
|
$output .= " $('#tgl_div_".$uniqid."').css('position', 'relative');\n";
|
||||||
$output .= " $('#image_".$uniqid."').attr({src: '".$image_a."'});\n";
|
$output .= " $('#image_".$uniqid."').attr({src: '".$image_a."'});\n";
|
||||||
$output .= " $('#checkbox-".$switch_name."').prop('checked', true);\n";
|
$output .= " $('#checkbox-".$switch_name."').prop('checked', true);\n";
|
||||||
$output .= " }\n";
|
$output .= " }\n";
|
||||||
$output .= " else {\n";
|
$output .= " else {\n";
|
||||||
$output .= ' hide_tgl_ctrl_'.$uniqid." = 1;\n";
|
$output .= ' hide_tgl_ctrl_'.$uniqid." = 1;\n";
|
||||||
$output .= " $('#tgl_div_".$uniqid."').css('height', 0);\n";
|
$output .= " $('#tgl_div_".$uniqid."').css('height', 0);\n";
|
||||||
|
$output .= " $('#tgl_div_".$uniqid."').css('position', 'absolute');\n";
|
||||||
$output .= " $('#image_".$uniqid."').attr({src: '".$image_b."'});\n";
|
$output .= " $('#image_".$uniqid."').attr({src: '".$image_b."'});\n";
|
||||||
$output .= " $('#checkbox-".$switch_name."').prop('checked', false);\n";
|
$output .= " $('#checkbox-".$switch_name."').prop('checked', false);\n";
|
||||||
$output .= " }\n";
|
$output .= " }\n";
|
||||||
|
@ -583,8 +583,7 @@ function module_changed_by_multiple_modules(event, id_module, selected) {
|
|||||||
status_module: status_module,
|
status_module: status_module,
|
||||||
"module_name[]": idModules,
|
"module_name[]": idModules,
|
||||||
selection_mode: selection_mode,
|
selection_mode: selection_mode,
|
||||||
tags: tags_selected,
|
tags: tags_selected
|
||||||
id_group: id_group
|
|
||||||
},
|
},
|
||||||
function(data) {
|
function(data) {
|
||||||
$("#agents").append(
|
$("#agents").append(
|
||||||
|
@ -846,7 +846,56 @@ function check_execute_response_massive(response_id, response_parameters) {
|
|||||||
|
|
||||||
function event_widget_options() {
|
function event_widget_options() {
|
||||||
if ($("#customFilter").val() != "-1") {
|
if ($("#customFilter").val() != "-1") {
|
||||||
$(".event-widget-input").disable();
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: "ajax.php",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
page: "include/ajax/events",
|
||||||
|
get_filter_values: 1,
|
||||||
|
id: $("#customFilter").val()
|
||||||
|
},
|
||||||
|
success: function(data) {
|
||||||
|
if (data["event_type"] === "") {
|
||||||
|
$("#eventType").val("0");
|
||||||
|
$("#eventType").trigger("change");
|
||||||
|
} else {
|
||||||
|
$("#eventType").val(data["event_type"]);
|
||||||
|
$("#eventType").trigger("change");
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#limit").val(data["pagination"]);
|
||||||
|
$("#limit").trigger("change");
|
||||||
|
|
||||||
|
$("input[name='maxHours']").val(data["event_view_hr"]);
|
||||||
|
|
||||||
|
$("#eventStatus").val(data["status"]);
|
||||||
|
$("#eventStatus").trigger("change");
|
||||||
|
|
||||||
|
let posicion = data["severity"].indexOf(-1);
|
||||||
|
if (posicion !== -1) {
|
||||||
|
$("#severity").val(-1);
|
||||||
|
$("#severity").trigger("change");
|
||||||
|
} else {
|
||||||
|
const severity_array = data["severity"].split(",");
|
||||||
|
$("#severity").val(severity_array[0]);
|
||||||
|
$("#severity").trigger("change");
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#tagsId option").attr("selected", false);
|
||||||
|
$.each(
|
||||||
|
atob(data["tag_with"])
|
||||||
|
.slice(0, -1)
|
||||||
|
.slice(1)
|
||||||
|
.split(","),
|
||||||
|
function(i, e) {
|
||||||
|
$(`#tagsId option[value=${e}]`).prop("selected", true);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
$(".event-widget-input").disable();
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
$(".event-widget-input").enable();
|
$(".event-widget-input").enable();
|
||||||
}
|
}
|
||||||
|
@ -375,11 +375,19 @@ class TopNWidget extends Widget
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Prevent double safe input in agents_get_group_agents function.
|
||||||
|
$agentRegex = io_safe_output($agentRegex);
|
||||||
|
|
||||||
// This function check ACL.
|
// This function check ACL.
|
||||||
$agents = @agents_get_group_agents(0, ['aliasRegex' => $agentRegex]);
|
$agents = @agents_get_group_agents(0, ['aliasRegex' => $agentRegex]);
|
||||||
$agentsId = \array_keys($agents);
|
$agentsId = \array_keys($agents);
|
||||||
$agentsIdString = \implode(',', $agentsId);
|
$agentsIdString = \implode(',', $agentsId);
|
||||||
|
|
||||||
|
// Prevent from error when performing IN clause with an empty string.
|
||||||
|
if ($agentsIdString === '') {
|
||||||
|
$agentsIdString = 'NULL';
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize variables.
|
// Initialize variables.
|
||||||
$date = \get_system_time();
|
$date = \get_system_time();
|
||||||
$datelimit = ($date - $period);
|
$datelimit = ($date - $period);
|
||||||
|
@ -121,7 +121,7 @@ final class BarsGraph extends Item
|
|||||||
*
|
*
|
||||||
* @return mixed String representing the grid color (not empty) or null.
|
* @return mixed String representing the grid color (not empty) or null.
|
||||||
*/
|
*/
|
||||||
private function extractGridColor(array $data): string
|
private static function extractGridColor(array $data): string
|
||||||
{
|
{
|
||||||
return static::notEmptyStringOr(
|
return static::notEmptyStringOr(
|
||||||
static::issetInArray($data, ['gridColor', 'border_color']),
|
static::issetInArray($data, ['gridColor', 'border_color']),
|
||||||
@ -138,7 +138,7 @@ final class BarsGraph extends Item
|
|||||||
* @return string One of 'white', 'black' or 'transparent'.
|
* @return string One of 'white', 'black' or 'transparent'.
|
||||||
* 'white' by default.
|
* 'white' by default.
|
||||||
*/
|
*/
|
||||||
private function extractBackgroundColor(array $data): string
|
private static function extractBackgroundColor(array $data): string
|
||||||
{
|
{
|
||||||
$backgroundColor = static::notEmptyStringOr(
|
$backgroundColor = static::notEmptyStringOr(
|
||||||
static::issetInArray($data, ['backgroundColor', 'image']),
|
static::issetInArray($data, ['backgroundColor', 'image']),
|
||||||
@ -163,7 +163,7 @@ final class BarsGraph extends Item
|
|||||||
*
|
*
|
||||||
* @return string One of 'vertical' or 'horizontal'. 'vertical' by default.
|
* @return string One of 'vertical' or 'horizontal'. 'vertical' by default.
|
||||||
*/
|
*/
|
||||||
private function extractTypeGraph(array $data): string
|
private static function extractTypeGraph(array $data): string
|
||||||
{
|
{
|
||||||
$typeGraph = static::notEmptyStringOr(
|
$typeGraph = static::notEmptyStringOr(
|
||||||
static::issetInArray($data, ['typeGraph', 'type_graph']),
|
static::issetInArray($data, ['typeGraph', 'type_graph']),
|
||||||
|
@ -77,7 +77,7 @@ final class EventsHistory extends Item
|
|||||||
*
|
*
|
||||||
* @return mixed String representing the grid color (not empty) or null.
|
* @return mixed String representing the grid color (not empty) or null.
|
||||||
*/
|
*/
|
||||||
private function extractLegendColor(array $data): string
|
private static function extractLegendColor(array $data): string
|
||||||
{
|
{
|
||||||
return static::notEmptyStringOr(
|
return static::notEmptyStringOr(
|
||||||
static::issetInArray($data, ['legendColor', 'border_color']),
|
static::issetInArray($data, ['legendColor', 'border_color']),
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
.agent_options_column_left,
|
.agent_options_column_left,
|
||||||
.agent_options_column_right {
|
.agent_options_column_right {
|
||||||
width: 50%;
|
width: calc(50% - 40px);
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4762,8 +4762,11 @@ input:checked + .p-slider:before {
|
|||||||
.white_box {
|
.white_box {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border: 1px solid #e1e1e1;
|
border: 1px solid #e1e1e1;
|
||||||
border-radius: 5px;
|
border-radius: 0px 0px 5px 5px;
|
||||||
padding: 20px 50px;
|
}
|
||||||
|
|
||||||
|
.white_box > div {
|
||||||
|
margin: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -128,8 +128,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style='height: 10px'>
|
<div style='height: 10px'>
|
||||||
<?php
|
<?php
|
||||||
$version = '7.0NG.766';
|
$version = '7.0NG.767';
|
||||||
$build = '221123';
|
$build = '221209';
|
||||||
$banner = "v$version Build $build";
|
$banner = "v$version Build $build";
|
||||||
|
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
|
@ -321,7 +321,7 @@ class Alerts
|
|||||||
|
|
||||||
if ($alert['times_fired'] > 0) {
|
if ($alert['times_fired'] > 0) {
|
||||||
$status = STATUS_ALERT_FIRED;
|
$status = STATUS_ALERT_FIRED;
|
||||||
$title = __('Alert fired').' '.$alert['internal_counter'].' '.__('time(s)');
|
$title = __('Alert fired').' '.$alert['times_fired'].' '.__('time(s)');
|
||||||
} else if ($alert['disabled'] > 0) {
|
} else if ($alert['disabled'] > 0) {
|
||||||
$status = STATUS_ALERT_DISABLED;
|
$status = STATUS_ALERT_DISABLED;
|
||||||
$title = __('Alert disabled');
|
$title = __('Alert disabled');
|
||||||
|
@ -53,7 +53,7 @@ $isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
|
|||||||
|
|
||||||
$strict_user = db_get_value('strict_acl', 'tusuario', 'id_user', $config['id_user']);
|
$strict_user = db_get_value('strict_acl', 'tusuario', 'id_user', $config['id_user']);
|
||||||
|
|
||||||
$filter = get_parameter('disabled', 'all_enabled');
|
$filter = get_parameter('filter', 'all_enabled');
|
||||||
$filter_standby = get_parameter('standby', 'all');
|
$filter_standby = get_parameter('standby', 'all');
|
||||||
$id_group = (int) get_parameter('ag_group', 0);
|
$id_group = (int) get_parameter('ag_group', 0);
|
||||||
// 0 is the All group (selects all groups)
|
// 0 is the All group (selects all groups)
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Pandora FMS Console
|
# Pandora FMS Console
|
||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.766
|
%define version 7.0NG.767
|
||||||
%define release 221123
|
%define release 221209
|
||||||
|
|
||||||
# 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.766
|
%define version 7.0NG.767
|
||||||
%define release 221123
|
%define release 221209
|
||||||
|
|
||||||
# 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.766
|
%define version 7.0NG.767
|
||||||
%define release 221123
|
%define release 221209
|
||||||
%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.766"
|
PI_VERSION="7.0NG.767"
|
||||||
FORCE=0
|
FORCE=0
|
||||||
DESTDIR=""
|
DESTDIR=""
|
||||||
LOG_TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"`
|
LOG_TIMESTAMP=`date +"%Y/%m/%d %H:%M:%S"`
|
||||||
|
@ -3625,6 +3625,7 @@ CREATE TABLE IF NOT EXISTS `tlayout_template` (
|
|||||||
`background_color` VARCHAR(50) NOT NULL DEFAULT '#FFF',
|
`background_color` VARCHAR(50) NOT NULL DEFAULT '#FFF',
|
||||||
`is_favourite` INT UNSIGNED NOT NULL DEFAULT 0,
|
`is_favourite` INT UNSIGNED NOT NULL DEFAULT 0,
|
||||||
`auto_adjust` INT UNSIGNED NOT NULL DEFAULT 0,
|
`auto_adjust` INT UNSIGNED NOT NULL DEFAULT 0,
|
||||||
|
`maintenance_mode` TEXT,
|
||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;
|
||||||
|
|
||||||
|
@ -112,10 +112,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', 58),
|
('MR', 59),
|
||||||
('identification_reminder', 1),
|
('identification_reminder', 1),
|
||||||
('identification_reminder_timestamp', 0),
|
('identification_reminder_timestamp', 0),
|
||||||
('current_package', 766),
|
('current_package', 767),
|
||||||
('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'),
|
||||||
@ -146,7 +146,7 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
|
|||||||
('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', '');
|
('lts_name', 'Hope');
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-server
|
package: pandorafms-server
|
||||||
Version: 7.0NG.766-221123
|
Version: 7.0NG.767-221209
|
||||||
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.766-221123"
|
pandora_version="7.0NG.767-221209"
|
||||||
|
|
||||||
package_cpan=0
|
package_cpan=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -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.766
|
# Version 7.0NG.767
|
||||||
# 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
|
||||||
|
@ -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.766";
|
my $pandora_version = "7.0NG.767";
|
||||||
my $pandora_build = "221123";
|
my $pandora_build = "221209";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
# Setup hash
|
# Setup hash
|
||||||
|
@ -1300,13 +1300,17 @@ sub pandora_execute_action ($$$$$$$$$;$$) {
|
|||||||
$group = get_db_single_row ($dbh, 'SELECT * FROM tgrupo WHERE id_grupo = ?', $agent->{'id_grupo'});
|
$group = get_db_single_row ($dbh, 'SELECT * FROM tgrupo WHERE id_grupo = ?', $agent->{'id_grupo'});
|
||||||
}
|
}
|
||||||
|
|
||||||
my $agent_status;
|
my $time_down;
|
||||||
if(ref ($module) eq "HASH") {
|
if ($alert_mode == RECOVERED_ALERT && defined($extra_macros->{'_modulelaststatuschange_'})) {
|
||||||
$agent_status = get_db_single_row ($dbh, 'SELECT * FROM tagente_estado WHERE id_agente_modulo = ?', $module->{'id_agente_modulo'});
|
$time_down = (time() - $extra_macros->{'_modulelaststatuschange_'});
|
||||||
|
} else {
|
||||||
|
my $agent_status;
|
||||||
|
if(ref ($module) eq "HASH") {
|
||||||
|
$agent_status = get_db_single_row ($dbh, 'SELECT * FROM tagente_estado WHERE id_agente_modulo = ?', $module->{'id_agente_modulo'});
|
||||||
|
}
|
||||||
|
$time_down = (defined ($agent_status)) ? (time() - $agent_status->{'last_status_change'}) : undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $time_down = (defined ($agent_status)) ? (time() - $agent_status->{'last_status_change'}) : undef;
|
|
||||||
|
|
||||||
if (is_numeric($data)) {
|
if (is_numeric($data)) {
|
||||||
my $data_precision = $pa_config->{'graph_precision'};
|
my $data_precision = $pa_config->{'graph_precision'};
|
||||||
$data = sprintf("%.$data_precision" . "f", $data);
|
$data = sprintf("%.$data_precision" . "f", $data);
|
||||||
|
@ -1041,6 +1041,7 @@ sub get_db_rows_parallel ($$;@) {
|
|||||||
no warnings 'redefine';
|
no warnings 'redefine';
|
||||||
local *PandoraFMS::ProducerConsumerServer::DESTROY = sub {};
|
local *PandoraFMS::ProducerConsumerServer::DESTROY = sub {};
|
||||||
local *PandoraFMS::BlockProducerConsumerServer::DESTROY = sub {};
|
local *PandoraFMS::BlockProducerConsumerServer::DESTROY = sub {};
|
||||||
|
local *PandoraFMS::SNMPServer::DESTROY = sub {};
|
||||||
|
|
||||||
# Query the nodes.
|
# Query the nodes.
|
||||||
foreach my $node (@{$nodes}) {
|
foreach my $node (@{$nodes}) {
|
||||||
|
@ -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.766";
|
my $pandora_version = "7.0NG.767";
|
||||||
my $pandora_build = "221123";
|
my $pandora_build = "221209";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Pandora FMS Server
|
# Pandora FMS Server
|
||||||
#
|
#
|
||||||
%define name pandorafms_server
|
%define name pandorafms_server
|
||||||
%define version 7.0NG.766
|
%define version 7.0NG.767
|
||||||
%define release 221123
|
%define release 221209
|
||||||
|
|
||||||
Summary: Pandora FMS Server
|
Summary: Pandora FMS Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
# Pandora FMS Server
|
# Pandora FMS Server
|
||||||
#
|
#
|
||||||
%define name pandorafms_server
|
%define name pandorafms_server
|
||||||
%define version 7.0NG.766
|
%define version 7.0NG.767
|
||||||
%define release 221123
|
%define release 221209
|
||||||
|
|
||||||
Summary: Pandora FMS Server
|
Summary: Pandora FMS Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
# This code is licensed under GPL 2.0 license.
|
# This code is licensed under GPL 2.0 license.
|
||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.766"
|
PI_VERSION="7.0NG.767"
|
||||||
PI_BUILD="221123"
|
PI_BUILD="221209"
|
||||||
|
|
||||||
MODE=$1
|
MODE=$1
|
||||||
if [ $# -gt 1 ]; then
|
if [ $# -gt 1 ]; then
|
||||||
|
@ -35,7 +35,7 @@ use PandoraFMS::Config;
|
|||||||
use PandoraFMS::DB;
|
use PandoraFMS::DB;
|
||||||
|
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "7.0NG.766 Build 221123";
|
my $version = "7.0NG.767 Build 221209";
|
||||||
|
|
||||||
# Pandora server configuration
|
# Pandora server configuration
|
||||||
my %conf;
|
my %conf;
|
||||||
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||||||
Encode::Locale::decode_argv;
|
Encode::Locale::decode_argv;
|
||||||
|
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "7.0NG.766 Build 221123";
|
my $version = "7.0NG.767 Build 221209";
|
||||||
|
|
||||||
# save program name for logging
|
# save program name for logging
|
||||||
my $progname = basename($0);
|
my $progname = basename($0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user