mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 16:24:54 +02:00
Merge branch 'develop' into 'ent-3837-7848-campo-id_source_event-en-vista-de-eventos-y-poder-filtrar-por-este'
# Conflicts: # pandora_console/extras/mr/29.sql # pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql # pandora_console/include/functions_events.php
This commit is contained in:
commit
34cdcdfd6e
BIN
extras/bin/gotty
Executable file
BIN
extras/bin/gotty
Executable file
Binary file not shown.
@ -1,170 +1,183 @@
|
|||||||
var max_events;
|
var max_events;
|
||||||
var bg;
|
var bg;
|
||||||
$(document).ready(function(){
|
$(document).ready(function() {
|
||||||
max_events=localStorage["events"];
|
max_events = localStorage["events"];
|
||||||
if(localStorage["events"]==undefined){
|
if (localStorage["events"] == undefined) {
|
||||||
localStorage["events"]="20";
|
localStorage["events"] = "20";
|
||||||
}
|
}
|
||||||
bg=chrome.extension.getBackgroundPage();
|
bg = chrome.extension.getBackgroundPage();
|
||||||
|
|
||||||
// Display the information
|
// Display the information
|
||||||
if (bg.fetchEvents().length == 0) {
|
if (bg.fetchEvents().length == 0) {
|
||||||
showError("Error in fetching data!! Check your internet connection");
|
showError("No events");
|
||||||
} else {
|
} else {
|
||||||
showEvents();
|
showEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adding buttons listeners
|
// Adding buttons listeners
|
||||||
document.getElementById("m_refresh").addEventListener("click", mrefresh);
|
document.getElementById("m_refresh").addEventListener("click", mrefresh);
|
||||||
|
|
||||||
// Added listener to background messages
|
// Added listener to background messages
|
||||||
chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){
|
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
|
||||||
switch (message.text) {
|
switch (message.text) {
|
||||||
case "FETCH_EVENTS":
|
case "FETCH_EVENTS":
|
||||||
setSpinner();
|
setSpinner();
|
||||||
//$('div.b').hide();
|
//$('div.b').hide();
|
||||||
break;
|
break;
|
||||||
case "FETCH_EVENTS_SUCCESS":
|
case "FETCH_EVENTS_SUCCESS":
|
||||||
unsetSpinner();
|
unsetSpinner();
|
||||||
showEvents();
|
showEvents();
|
||||||
break;
|
break;
|
||||||
case "FETCH_EVENTS_DATA_ERROR":
|
case "FETCH_EVENTS_DATA_ERROR":
|
||||||
unsetSpinner();
|
unsetSpinner();
|
||||||
showError("Error in fetching data!! Check your internet connection");
|
showError("Error in fetching data!! Check your internet connection");
|
||||||
break;
|
break;
|
||||||
case "FETCH_EVENTS_URL_ERROR":
|
case "FETCH_EVENTS_URL_ERROR":
|
||||||
unsetSpinner();
|
unsetSpinner();
|
||||||
showError("Configure ip address,API password, user name and password with correct values");
|
showError(
|
||||||
break;
|
"Configure ip address,API password, user name and password with correct values"
|
||||||
default:
|
);
|
||||||
console.log("Unrecognized message: ", message.text);
|
break;
|
||||||
break;
|
default:
|
||||||
}
|
console.log("Unrecognized message: ", message.text);
|
||||||
});
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function setSpinner () {
|
function setSpinner() {
|
||||||
$('#refr_img_id').attr("src", "images/spinny.gif");
|
$("#refr_img_id").attr("src", "images/spinny.gif");
|
||||||
}
|
}
|
||||||
|
|
||||||
function unsetSpinner() {
|
function unsetSpinner() {
|
||||||
$('#refr_img_id').attr("src", "images/refresh.png");
|
$("#refr_img_id").attr("src", "images/refresh.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
function clearError() {
|
function clearError() {
|
||||||
$('.error').hide();
|
$(".error").hide();
|
||||||
$('.error a').text("");
|
$(".error a").text("");
|
||||||
$('.result').css('height', null);
|
$(".result").css("height", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
function showError(text){
|
function showError(text) {
|
||||||
$('.error a').text(text);
|
$(".error a").text(text);
|
||||||
$('.error').show();
|
$(".error").show();
|
||||||
$('.result').height(420);
|
$(".result").height(420);
|
||||||
}
|
}
|
||||||
|
|
||||||
function showEvents(){
|
function showEvents() {
|
||||||
|
clearError();
|
||||||
|
$("#events").empty();
|
||||||
|
var e_refr = document.getElementById("event_temp");
|
||||||
|
if (e_refr) {
|
||||||
|
wrapper.removeChild(e_refr);
|
||||||
|
}
|
||||||
|
var allEvents = bg.fetchEvents();
|
||||||
|
var notVisitedEvents = bg.fetchNotVisited();
|
||||||
|
var eve = document.createElement("div");
|
||||||
|
eve.id = "event_temp";
|
||||||
|
eve.setAttribute("class", "b");
|
||||||
|
|
||||||
clearError();
|
var i = 0;
|
||||||
$('#events').empty();
|
if (allEvents.length > 0) {
|
||||||
var e_refr = document.getElementById('event_temp');
|
while (i < max_events && i < allEvents.length) {
|
||||||
if(e_refr){
|
var eve_title = document.createElement("div");
|
||||||
wrapper.removeChild(e_refr);
|
eve_title.id = "e_" + i + "_" + allEvents[i]["id"];
|
||||||
}
|
var img = document.createElement("img");
|
||||||
var allEvents = bg.fetchEvents();
|
img.src = "images/plus.png";
|
||||||
var notVisitedEvents = bg.fetchNotVisited();
|
img.className = "pm";
|
||||||
var eve=document.createElement('div');
|
img.id = "i_" + i + "_" + allEvents[i]["id"];
|
||||||
eve.id="event_temp";
|
eve_title.appendChild(img);
|
||||||
eve.setAttribute("class","b");
|
var div_empty = document.createElement("img");
|
||||||
|
var a = document.createElement("a");
|
||||||
var i=0;
|
var temp_style;
|
||||||
if(allEvents.length>0){
|
|
||||||
while(i<max_events && i<allEvents.length){
|
|
||||||
var eve_title=document.createElement('div');
|
|
||||||
eve_title.id = 'e_' + i + '_' + allEvents[i]['id'];
|
|
||||||
var img = document.createElement('img');
|
|
||||||
img.src = 'images/plus.png';
|
|
||||||
img.className ='pm';
|
|
||||||
img.id='i_' + i + '_' + allEvents[i]['id'];
|
|
||||||
eve_title.appendChild(img);
|
|
||||||
var div_empty = document.createElement('img');
|
|
||||||
var a = document.createElement('a');
|
|
||||||
var temp_style;
|
|
||||||
|
|
||||||
var agent_url = (allEvents[i]["agent"] == 0)
|
|
||||||
? localStorage["ip_address"]
|
|
||||||
+ "/index.php?sec=eventos&sec2=operation/events/events"
|
|
||||||
: localStorage["ip_address"]
|
|
||||||
+ "/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente="
|
|
||||||
+ allEvents[i]['agent'];
|
|
||||||
a.setAttribute("href",agent_url);
|
|
||||||
a.target = "_blank";
|
|
||||||
a.className = 'a_2_mo';
|
|
||||||
|
|
||||||
|
|
||||||
a.innerText = allEvents[i]['title'];
|
|
||||||
eve_title.setAttribute("class","event sev-" + allEvents[i]['severity']);
|
|
||||||
|
|
||||||
if (notVisitedEvents[allEvents[i]['id']] === true) {
|
var agent_url =
|
||||||
eve_title.style.fontWeight = 600;
|
allEvents[i]["agent"] == 0
|
||||||
}
|
? localStorage["ip_address"] +
|
||||||
|
"/index.php?sec=eventos&sec2=operation/events/events"
|
||||||
eve_title.appendChild(a);
|
: localStorage["ip_address"] +
|
||||||
eve.appendChild(eve_title);
|
"/index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=" +
|
||||||
|
allEvents[i]["agent"];
|
||||||
var time=allEvents[i]['date'].split(" ");
|
a.setAttribute("href", agent_url);
|
||||||
var time_text = time[0]+" "+time[1];
|
a.target = "_blank";
|
||||||
|
a.className = "a_2_mo";
|
||||||
var p = document.createElement('p');
|
|
||||||
var id = (allEvents[i]['module']==0)
|
|
||||||
? "."
|
|
||||||
: " in the module with Id "+ allEvents[i]['module'] + ".";
|
|
||||||
|
|
||||||
p.innerText = allEvents[i]['type']+" : "+allEvents[i]['source']+". Event occured at "+ time_text+id;
|
|
||||||
p.id = 'p_' + i;
|
|
||||||
eve_title.appendChild(p);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#events').append(eve);
|
|
||||||
|
|
||||||
$('img.pm').click(showHide);
|
a.innerText = allEvents[i]["title"];
|
||||||
$('div.b').show();
|
eve_title.setAttribute("class", "event sev-" + allEvents[i]["severity"]);
|
||||||
} else {
|
|
||||||
showError("Error in fetching data!! Check your internet connection");
|
if (notVisitedEvents[allEvents[i]["id"]] === true) {
|
||||||
}
|
eve_title.style.fontWeight = 600;
|
||||||
|
}
|
||||||
localStorage["new_events"]=0;
|
|
||||||
bg.updateBadge();
|
eve_title.appendChild(a);
|
||||||
|
eve.appendChild(eve_title);
|
||||||
|
|
||||||
|
var time = allEvents[i]["date"].split(" ");
|
||||||
|
var time_text = time[0] + " " + time[1];
|
||||||
|
|
||||||
|
var p = document.createElement("p");
|
||||||
|
var id =
|
||||||
|
allEvents[i]["module"] == 0
|
||||||
|
? "."
|
||||||
|
: " in the module with Id " + allEvents[i]["module"] + ".";
|
||||||
|
|
||||||
|
p.innerText =
|
||||||
|
allEvents[i]["type"] +
|
||||||
|
" : " +
|
||||||
|
allEvents[i]["source"] +
|
||||||
|
". Event occured at " +
|
||||||
|
time_text +
|
||||||
|
id;
|
||||||
|
p.id = "p_" + i;
|
||||||
|
eve_title.appendChild(p);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#events").append(eve);
|
||||||
|
|
||||||
|
$("img.pm").click(showHide);
|
||||||
|
$("div.b").show();
|
||||||
|
} else {
|
||||||
|
showError("No events");
|
||||||
|
}
|
||||||
|
|
||||||
|
localStorage["new_events"] = 0;
|
||||||
|
bg.updateBadge();
|
||||||
}
|
}
|
||||||
|
|
||||||
function showHide() {
|
function showHide() {
|
||||||
var id = $(this).attr('id');
|
var id = $(this).attr("id");
|
||||||
// Image id has the form i_<position>_<eventId>
|
// Image id has the form i_<position>_<eventId>
|
||||||
var nums = id.split('_');
|
var nums = id.split("_");
|
||||||
var pid = "p_" + nums[1];
|
var pid = "p_" + nums[1];
|
||||||
|
|
||||||
// Mark as visited if visited
|
// Mark as visited if visited
|
||||||
if($(this).parent().css('font-weight') == '600') {
|
if (
|
||||||
bg.removeNotVisited(nums[2]);
|
$(this)
|
||||||
$(this).parent().css('font-weight', '');
|
.parent()
|
||||||
}
|
.css("font-weight") == "600"
|
||||||
|
) {
|
||||||
|
bg.removeNotVisited(nums[2]);
|
||||||
|
$(this)
|
||||||
|
.parent()
|
||||||
|
.css("font-weight", "");
|
||||||
|
}
|
||||||
|
|
||||||
// Toggle information
|
// Toggle information
|
||||||
if($('#' + pid).css('display') == 'none') {
|
if ($("#" + pid).css("display") == "none") {
|
||||||
$('#' + pid).slideDown();
|
$("#" + pid).slideDown();
|
||||||
$(this).attr({src: 'images/minus.png'});
|
$(this).attr({ src: "images/minus.png" });
|
||||||
}
|
} else {
|
||||||
else {
|
$("#" + pid).slideUp();
|
||||||
$('#' + pid).slideUp();
|
$(this).attr({ src: "images/plus.png" });
|
||||||
$(this).attr({src: 'images/plus.png'});
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function mrefresh(){
|
function mrefresh() {
|
||||||
localStorage["new_events"]=0;
|
localStorage["new_events"] = 0;
|
||||||
bg.updateBadge();
|
bg.updateBadge();
|
||||||
clearError();
|
clearError();
|
||||||
bg.resetInterval();
|
bg.resetInterval();
|
||||||
bg.main();
|
bg.main();
|
||||||
}
|
}
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
{
|
{
|
||||||
"name": "__MSG_name__",
|
"name": "__MSG_name__",
|
||||||
"version": "2.1",
|
"version": "2.2",
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"description": "Pandora FMS Event viewer Chrome extension",
|
"description": "Pandora FMS Event viewer Chrome extension",
|
||||||
"homepage_url": "http://pandorafms.com",
|
"homepage_url": "http://pandorafms.com",
|
||||||
"browser_action": {
|
"browser_action": {
|
||||||
"default_title": "__MSG_default_title__",
|
"default_title": "__MSG_default_title__",
|
||||||
"default_icon": "images/icon.png",
|
"default_icon": "images/icon.png",
|
||||||
"default_popup": "popup.html"
|
"default_popup": "popup.html"
|
||||||
},
|
},
|
||||||
"background": {
|
"background": {
|
||||||
"page": "background.html"
|
"page": "background.html"
|
||||||
},
|
},
|
||||||
"icons": {
|
"icons": {
|
||||||
"128": "images/icon128.png",
|
"128": "images/icon128.png",
|
||||||
"16": "images/icon16.png",
|
"16": "images/icon16.png",
|
||||||
"32": "images/icon32.png",
|
"32": "images/icon32.png",
|
||||||
"48": "images/icon48.png"
|
"48": "images/icon48.png"
|
||||||
},
|
},
|
||||||
"options_page": "options.html",
|
"options_page": "options.html",
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"tabs",
|
"tabs",
|
||||||
"notifications",
|
"notifications",
|
||||||
"http://*/*",
|
"http://*/*",
|
||||||
"https://*/*",
|
"https://*/*",
|
||||||
"background"
|
"background"
|
||||||
],
|
],
|
||||||
"default_locale": "en"
|
"default_locale": "en"
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
docker build --rm=true --pull --no-cache --build-arg BRANCH="develop" --build-arg DB_PASS="pandora" -t pandorafms/pandorafms:7 . && \
|
docker build --rm=true --pull --no-cache --build-arg BRANCH="develop" --build-arg DB_PASS="pandora" -t pandorafms/pandorafms:7 . && \
|
||||||
|
[ "$QA_ENV" == "" ] && \
|
||||||
docker push pandorafms/pandorafms:7
|
docker push pandorafms/pandorafms:7
|
||||||
|
50
pandora_agents/Dockerfile
Normal file
50
pandora_agents/Dockerfile
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
FROM centos:centos7
|
||||||
|
MAINTAINER Pandora FMS Team <info@pandorafms.com>
|
||||||
|
|
||||||
|
# Add Pandora FMS agent installer
|
||||||
|
ADD unix /tmp/pandora_agent/unix
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
RUN yum -y install \
|
||||||
|
epel-release \
|
||||||
|
unzip \
|
||||||
|
perl \
|
||||||
|
sed \
|
||||||
|
"perl(Sys::Syslog)"
|
||||||
|
|
||||||
|
# Install Pandora FMS agent
|
||||||
|
RUN cd /tmp/pandora_agent/unix \
|
||||||
|
&& chmod +x pandora_agent_installer \
|
||||||
|
&& ./pandora_agent_installer --install
|
||||||
|
|
||||||
|
# Set default variables
|
||||||
|
ENV SERVER_IP '127.0.0.1'
|
||||||
|
ENV REMOTE_CONFIG '0'
|
||||||
|
ENV GROUP 'Servers'
|
||||||
|
ENV DEBUG '0'
|
||||||
|
ENV AGENT_NAME 'agent_docker'
|
||||||
|
ENV AGENT_ALIAS 'agent_docker'
|
||||||
|
ENV TIMEZONE 'UTC'
|
||||||
|
ENV SECONDARY_GROUPS ''
|
||||||
|
|
||||||
|
# Create the entrypoint script.
|
||||||
|
RUN echo -e '#/bin/bash\n \
|
||||||
|
sed -i "s/^server_ip.*$/server_ip $SERVER_IP/g" /etc/pandora/pandora_agent.conf\n \
|
||||||
|
sed -i "s/^remote_config.*$/remote_config $REMOTE_CONFIG/g" /etc/pandora/pandora_agent.conf\n \
|
||||||
|
sed -i "s/^group.*$/group $GROUP/g" /etc/pandora/pandora_agent.conf\n \
|
||||||
|
sed -i "s/^debug.*$/debug $DEBUG/g" /etc/pandora/pandora_agent.conf\n \
|
||||||
|
sed -i "s/^#agent_name.*$/agent_name $AGENT_NAME/g" /etc/pandora/pandora_agent.conf\n \
|
||||||
|
sed -i "s/^#agent_alias.*$/agent_alias $AGENT_ALIAS/g" /etc/pandora/pandora_agent.conf\n \
|
||||||
|
sed -i "s/^# secondary_groups.*$/secondary_groups $SECONDARY_GROUPS/g" /etc/pandora/pandora_agent.conf\n \
|
||||||
|
if [ $TIMEZONE != "" ]; then\n \
|
||||||
|
\tln -sfn /usr/share/zoneinfo/$TIMEZONE /etc/localtime\n \
|
||||||
|
fi\n \
|
||||||
|
/etc/init.d/pandora_agent_daemon start\n \
|
||||||
|
rm -f $0\n \
|
||||||
|
tail -f /var/log/pandora/pandora_agent.log' \
|
||||||
|
>> /entrypoint.sh && \
|
||||||
|
chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
# Entrypoint + CMD
|
||||||
|
ENTRYPOINT ["bash"]
|
||||||
|
CMD ["/entrypoint.sh"]
|
18
pandora_agents/build_agent_docker.sh
Normal file
18
pandora_agents/build_agent_docker.sh
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
source /root/code/pandorafms/extras/build_vars.sh
|
||||||
|
|
||||||
|
# Set tag for docker build
|
||||||
|
if [ "$1" == "nightly" ]; then
|
||||||
|
LOCAL_VERSION="latest"
|
||||||
|
else
|
||||||
|
LOCAL_VERSION=$VERSION
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build image with code
|
||||||
|
docker build --rm=true --pull --no-cache -t pandorafms/pandorafms-agent:$LOCAL_VERSION -f $CODEHOME/pandora_agents/Dockerfile $CODEHOME/pandora_agents/
|
||||||
|
|
||||||
|
# Push image
|
||||||
|
docker push pandorafms/pandorafms-agent:$LOCAL_VERSION
|
||||||
|
|
||||||
|
# Delete local image
|
||||||
|
docker image rm -f pandorafms/pandorafms-agent:$LOCAL_VERSION
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.735, AIX version
|
# Version 7.0NG.740, AIX version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 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.735, FreeBSD Version
|
# Version 7.0NG.740, FreeBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 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.735, HP-UX Version
|
# Version 7.0NG.740, HP-UX Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 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.735, GNU/Linux
|
# Version 7.0NG.740, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 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.735, GNU/Linux
|
# Version 7.0NG.740, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 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.735, Solaris Version
|
# Version 7.0NG.740, Solaris Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 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-2010 Artica Soluciones Tecnologicas
|
# (c) 2006-2010 Artica Soluciones Tecnologicas
|
||||||
# Version 7.0NG.735
|
# Version 7.0NG.740
|
||||||
|
|
||||||
# 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
|
||||||
|
@ -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.735, AIX version
|
# Version 7.0NG.740, 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.735
|
# Version 7.0NG.740
|
||||||
# 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.735, HPUX Version
|
# Version 7.0NG.740, 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.735
|
# Version 7.0NG.740
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# (c) 2003-2010 Artica Soluciones Tecnologicas
|
# (c) 2003-2010 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.735
|
# Version 7.0NG.740
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# (c) 2003-2009 Artica Soluciones Tecnologicas
|
# (c) 2003-2009 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.735
|
# Version 7.0NG.740
|
||||||
# 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.735, Solaris version
|
# Version 7.0NG.740, 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.735, AIX version
|
# Version 7.0NG.740, AIX version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 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.735-190621
|
Version: 7.0NG.740-191121
|
||||||
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.735-190621"
|
pandora_version="7.0NG.740-191121"
|
||||||
|
|
||||||
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
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Base config file for Pandora FMS agents
|
# Base config file for Pandora FMS agents
|
||||||
# Version 7.0NG.735, GNU/Linux
|
# Version 7.0NG.740, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2012 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2012 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.735, FreeBSD Version
|
# Version 7.0NG.740, FreeBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2016 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2016 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.735, HP-UX Version
|
# Version 7.0NG.740, HP-UX Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 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.735, GNU/Linux
|
# Version 7.0NG.740, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2014 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2014 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.735, GNU/Linux
|
# Version 7.0NG.740, GNU/Linux
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 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.735, NetBSD Version
|
# Version 7.0NG.740, NetBSD Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2010 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2010 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.735, Solaris Version
|
# Version 7.0NG.740, Solaris Version
|
||||||
# Licensed under GPL license v2,
|
# Licensed under GPL license v2,
|
||||||
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
# Copyright (c) 2003-2009 Artica Soluciones Tecnologicas
|
||||||
# http://www.pandorafms.com
|
# http://www.pandorafms.com
|
||||||
|
@ -41,8 +41,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.735';
|
use constant AGENT_VERSION => '7.0NG.740';
|
||||||
use constant AGENT_BUILD => '190621';
|
use constant AGENT_BUILD => '191121';
|
||||||
|
|
||||||
# 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;
|
||||||
@ -239,6 +239,15 @@ my $tentacle_pid = undef;
|
|||||||
# PID of udp_server
|
# PID of udp_server
|
||||||
my $udp_server_pid = undef;
|
my $udp_server_pid = undef;
|
||||||
|
|
||||||
|
# BrokerFlag
|
||||||
|
my $BrokerFlag = 0;
|
||||||
|
|
||||||
|
# Global loop counter.
|
||||||
|
my $LoopCounter = 0;
|
||||||
|
|
||||||
|
# Define a max value for loopCounter to avoid overflow.
|
||||||
|
use constant MAX_LOOP_COUNTER => 1000000000;
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Print usage information and exit.
|
# Print usage information and exit.
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -1385,6 +1394,7 @@ sub sleep_agent {
|
|||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$LoopCounter = ($LoopCounter + 1) % MAX_LOOP_COUNTER;
|
||||||
return $iter_base_time;
|
return $iter_base_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1699,6 +1709,14 @@ sub exec_module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Check module interval
|
# Check module interval
|
||||||
|
if ($BrokerFlag > 0) {
|
||||||
|
if ($LoopCounter == 0) {
|
||||||
|
$module->{'counter'} = $module->{'intensive_interval'};
|
||||||
|
} else {
|
||||||
|
$module->{'counter'} = (($LoopCounter -1 ) % $module->{'intensive_interval'});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (++($module->{'counter'}) < $module->{'intensive_interval'}) {
|
if (++($module->{'counter'}) < $module->{'intensive_interval'}) {
|
||||||
$ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
$ThreadSem->up () if (defined ($ThreadSem) && $Conf{'agent_threads'} > 1);
|
||||||
return;
|
return;
|
||||||
@ -2985,7 +3003,6 @@ while (1) {
|
|||||||
@BrokerPid = ();
|
@BrokerPid = ();
|
||||||
my @broker_agents = read_config ('broker_agent');
|
my @broker_agents = read_config ('broker_agent');
|
||||||
foreach my $broker_agent (@broker_agents) {
|
foreach my $broker_agent (@broker_agents) {
|
||||||
|
|
||||||
# Create broker conf file if it does not exist
|
# Create broker conf file if it does not exist
|
||||||
if (! -e "$ConfDir/${broker_agent}.conf") {
|
if (! -e "$ConfDir/${broker_agent}.conf") {
|
||||||
write_broker_conf($broker_agent);
|
write_broker_conf($broker_agent);
|
||||||
@ -2995,7 +3012,9 @@ while (1) {
|
|||||||
|
|
||||||
# Broker agent
|
# Broker agent
|
||||||
if ($main_agent == 0) {
|
if ($main_agent == 0) {
|
||||||
|
# Mark broker flag.
|
||||||
|
$BrokerFlag = 1;
|
||||||
|
|
||||||
# Set the configuration file
|
# Set the configuration file
|
||||||
$ConfFile = "${broker_agent}.conf";
|
$ConfFile = "${broker_agent}.conf";
|
||||||
|
|
||||||
|
@ -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.735
|
%define version 7.0NG.740
|
||||||
%define release 190621
|
%define release 191121
|
||||||
|
|
||||||
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.735
|
%define version 7.0NG.740
|
||||||
%define release 190621
|
%define release 191121
|
||||||
|
|
||||||
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.735"
|
PI_VERSION="7.0NG.740"
|
||||||
PI_BUILD="190621"
|
PI_BUILD="191121"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
@ -162,7 +162,15 @@ uninstall () {
|
|||||||
rm -Rf $PANDORA_BASE$PANDORA_EXEC_BIN 2> /dev/null
|
rm -Rf $PANDORA_BASE$PANDORA_EXEC_BIN 2> /dev/null
|
||||||
rm -Rf $PANDORA_BASE$PANDORA_REVENT_BIN 2> /dev/null
|
rm -Rf $PANDORA_BASE$PANDORA_REVENT_BIN 2> /dev/null
|
||||||
rm -f $DESTDIR/etc/logrotate.d/pandora_agent
|
rm -f $DESTDIR/etc/logrotate.d/pandora_agent
|
||||||
|
|
||||||
|
# Remove systemd service if exists
|
||||||
|
if [ $(systemctl --v | grep systemd | wc -l) != 0 ]
|
||||||
|
then
|
||||||
|
PANDORA_AGENT_SERVICE="/etc/systemd/system/pandora_agent_daemon.service"
|
||||||
|
rm -f $PANDORA_AGENT_SERVICE
|
||||||
|
systemctl reset-failed
|
||||||
|
fi
|
||||||
|
|
||||||
#Test if exist Pandora Server in this machine
|
#Test if exist Pandora Server in this machine
|
||||||
if [ -d $PANDORA_BASE$PANDORA_TEMP/data_in ]
|
if [ -d $PANDORA_BASE$PANDORA_TEMP/data_in ]
|
||||||
then
|
then
|
||||||
@ -465,6 +473,22 @@ install () {
|
|||||||
else
|
else
|
||||||
RCDIRS="/etc/rc2.d /etc/rc3.d"
|
RCDIRS="/etc/rc2.d /etc/rc3.d"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Create systemd service
|
||||||
|
if [ $(systemctl --v | grep systemd | wc -l) != 0 ]
|
||||||
|
then
|
||||||
|
echo "Creating systemd service for pandora_agent_daemon"
|
||||||
|
|
||||||
|
PANDORA_AGENT_SERVICE="/etc/systemd/system/pandora_agent_daemon.service"
|
||||||
|
EXEC_START='ExecStart='$PANDORA_BASE$PANDORA_BIN' '$PANDORA_BASE$PANDORA_CFG
|
||||||
|
|
||||||
|
rm -f $PANDORA_AGENT_SERVICE
|
||||||
|
cp pandora_agent_daemon.service $PANDORA_AGENT_SERVICE
|
||||||
|
|
||||||
|
sed -i "s|^ExecStart=.*$|$EXEC_START|g" $PANDORA_AGENT_SERVICE
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
[ "$RCDIRS" ] && for RCDIR in $RCDIRS
|
[ "$RCDIRS" ] && for RCDIR in $RCDIRS
|
||||||
do
|
do
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Base config file for Pandora FMS Windows Agent
|
# Base config file for Pandora FMS Windows Agent
|
||||||
# (c) 2006-2017 Artica Soluciones Tecnologicas
|
# (c) 2006-2017 Artica Soluciones Tecnologicas
|
||||||
# Version 7.0NG.735
|
# Version 7.0NG.740
|
||||||
|
|
||||||
# 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
|
||||||
|
@ -3,7 +3,7 @@ AllowLanguageSelection
|
|||||||
{Yes}
|
{Yes}
|
||||||
|
|
||||||
AppName
|
AppName
|
||||||
{Pandora FMS Windows Agent v7.0NG.735}
|
{Pandora FMS Windows Agent v7.0NG.740}
|
||||||
|
|
||||||
ApplicationID
|
ApplicationID
|
||||||
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
{17E3D2CF-CA02-406B-8A80-9D31C17BD08F}
|
||||||
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{190621}
|
{191121}
|
||||||
|
|
||||||
ViewReadme
|
ViewReadme
|
||||||
{Yes}
|
{Yes}
|
||||||
|
@ -1422,48 +1422,48 @@ Pandora_Module::evaluatePreconditions () {
|
|||||||
buffer[read] = '\0';
|
buffer[read] = '\0';
|
||||||
output += (char *) buffer;
|
output += (char *) buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
double_output = Pandora_Strutils::strtodouble (output);
|
double_output = Pandora_Strutils::strtodouble (output);
|
||||||
} catch (Pandora_Strutils::Invalid_Conversion e) {
|
} catch (Pandora_Strutils::Invalid_Conversion e) {
|
||||||
double_output = 0;
|
double_output = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dwRet == WAIT_OBJECT_0) {
|
||||||
|
break;
|
||||||
|
} else if(this->getTimeout() < GetTickCount() - tickbase) {
|
||||||
|
/* STILL_ACTIVE */
|
||||||
|
TerminateProcess(pi.hThread, STILL_ACTIVE);
|
||||||
|
pandoraLog ("evaluatePreconditions: %s timed out (retcode: %d)", this->module_name.c_str (), STILL_ACTIVE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dwRet == WAIT_OBJECT_0) {
|
GetExitCodeProcess (pi.hProcess, &retval);
|
||||||
break;
|
|
||||||
} else if(this->getTimeout() < GetTickCount() - tickbase) {
|
if (retval != 0) {
|
||||||
/* STILL_ACTIVE */
|
if (! TerminateJobObject (job, 0)) {
|
||||||
TerminateProcess(pi.hThread, STILL_ACTIVE);
|
pandoraLog ("evaluatePreconditions: TerminateJobObject failed. (error %d)",
|
||||||
pandoraLog ("evaluatePreconditions: %s timed out (retcode: %d)", this->module_name.c_str (), STILL_ACTIVE);
|
GetLastError ());
|
||||||
break;
|
}
|
||||||
|
if (retval != STILL_ACTIVE) {
|
||||||
|
pandoraLog ("evaluatePreconditions: %s did not executed well (retcode: %d)",
|
||||||
|
this->module_name.c_str (), retval);
|
||||||
|
}
|
||||||
|
/* Close job, process and thread handles. */
|
||||||
|
CloseHandle (job);
|
||||||
|
CloseHandle (pi.hProcess);
|
||||||
|
CloseHandle (pi.hThread);
|
||||||
|
CloseHandle (new_stdout);
|
||||||
|
CloseHandle (out_read);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
GetExitCodeProcess (pi.hProcess, &retval);
|
|
||||||
|
|
||||||
if (retval != 0) {
|
|
||||||
if (! TerminateJobObject (job, 0)) {
|
|
||||||
pandoraLog ("evaluatePreconditions: TerminateJobObject failed. (error %d)",
|
|
||||||
GetLastError ());
|
|
||||||
}
|
|
||||||
if (retval != STILL_ACTIVE) {
|
|
||||||
pandoraLog ("evaluatePreconditions: %s did not executed well (retcode: %d)",
|
|
||||||
this->module_name.c_str (), retval);
|
|
||||||
}
|
|
||||||
/* Close job, process and thread handles. */
|
/* Close job, process and thread handles. */
|
||||||
CloseHandle (job);
|
CloseHandle (job);
|
||||||
CloseHandle (pi.hProcess);
|
CloseHandle (pi.hProcess);
|
||||||
CloseHandle (pi.hThread);
|
CloseHandle (pi.hThread);
|
||||||
CloseHandle (new_stdout);
|
|
||||||
CloseHandle (out_read);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Close job, process and thread handles. */
|
|
||||||
CloseHandle (job);
|
|
||||||
CloseHandle (pi.hProcess);
|
|
||||||
CloseHandle (pi.hThread);
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseHandle (new_stdout);
|
CloseHandle (new_stdout);
|
||||||
CloseHandle (out_read);
|
CloseHandle (out_read);
|
||||||
@ -1693,4 +1693,18 @@ Pandora_Module::getAsync () {
|
|||||||
return this->async;
|
return this->async;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get current exections
|
||||||
|
*/
|
||||||
|
long
|
||||||
|
Pandora_Module::getExecutions () {
|
||||||
|
return this->executions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set current execution (global) used for brokers.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
Pandora_Module::setExecutions (long executions) {
|
||||||
|
this->executions = executions;
|
||||||
|
}
|
||||||
|
@ -234,6 +234,8 @@ namespace Pandora_Modules {
|
|||||||
int getTimeout ();
|
int getTimeout ();
|
||||||
string getSave ();
|
string getSave ();
|
||||||
bool getAsync ();
|
bool getAsync ();
|
||||||
|
void setExecutions(long executions=0);
|
||||||
|
long getExecutions();
|
||||||
|
|
||||||
virtual string getXml ();
|
virtual string getXml ();
|
||||||
|
|
||||||
|
@ -1214,7 +1214,8 @@ Pandora_Module_Factory::getModuleFromDefinition (string definition) {
|
|||||||
module_source,
|
module_source,
|
||||||
module_eventtype,
|
module_eventtype,
|
||||||
module_eventcode,
|
module_eventcode,
|
||||||
module_pattern);
|
module_pattern,
|
||||||
|
module_application);
|
||||||
} else if (module_wmiquery != "") {
|
} else if (module_wmiquery != "") {
|
||||||
module = new Pandora_Module_WMIQuery (module_name,
|
module = new Pandora_Module_WMIQuery (module_name,
|
||||||
module_wmiquery, module_wmicolumn);
|
module_wmiquery, module_wmicolumn);
|
||||||
|
@ -53,7 +53,7 @@ static EvtUpdateBookmarkT EvtUpdateBookmarkF = NULL;
|
|||||||
* @param name Module name.
|
* @param name Module name.
|
||||||
* @param service_name Service internal name to check.
|
* @param service_name Service internal name to check.
|
||||||
*/
|
*/
|
||||||
Pandora_Module_Logchannel::Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern)
|
Pandora_Module_Logchannel::Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern, string application)
|
||||||
: Pandora_Module (name) {
|
: Pandora_Module (name) {
|
||||||
int i;
|
int i;
|
||||||
vector<wstring> query;
|
vector<wstring> query;
|
||||||
@ -93,6 +93,13 @@ Pandora_Module_Logchannel::Pandora_Module_Logchannel (string name, string source
|
|||||||
query.push_back(ss.str());
|
query.push_back(ss.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the application
|
||||||
|
if (application != "") {
|
||||||
|
wstringstream ss;
|
||||||
|
ss << L"*[System/Provider[@Name='" << application.c_str() << L"']]";
|
||||||
|
query.push_back(ss.str());
|
||||||
|
}
|
||||||
|
|
||||||
// Fill the filter
|
// Fill the filter
|
||||||
if (query.size() == 0) {
|
if (query.size() == 0) {
|
||||||
this->filter = L"*";
|
this->filter = L"*";
|
||||||
@ -579,4 +586,4 @@ Pandora_Module_Logchannel::GetMessageString(EVT_HANDLE hMetadata, EVT_HANDLE hEv
|
|||||||
}
|
}
|
||||||
|
|
||||||
return pBuffer;
|
return pBuffer;
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ namespace Pandora_Modules {
|
|||||||
LPWSTR GetMessageString(EVT_HANDLE hMetadata, EVT_HANDLE hEvent, EVT_FORMAT_MESSAGE_FLAGS FormatId);
|
LPWSTR GetMessageString(EVT_HANDLE hMetadata, EVT_HANDLE hEvent, EVT_FORMAT_MESSAGE_FLAGS FormatId);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern);
|
Pandora_Module_Logchannel (string name, string source, string type, string id, string pattern, string application);
|
||||||
void run ();
|
void run ();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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.735(Build 190621)")
|
#define PANDORA_VERSION ("7.0NG.740(Build 191121)")
|
||||||
|
|
||||||
string pandora_path;
|
string pandora_path;
|
||||||
string pandora_dir;
|
string pandora_dir;
|
||||||
|
@ -1849,7 +1849,7 @@ Pandora_Windows_Service::sendBufferedXml (string path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Pandora_Windows_Service::pandora_run_broker (string config) {
|
Pandora_Windows_Service::pandora_run_broker (string config, long executions) {
|
||||||
Pandora_Agent_Conf *conf = NULL;
|
Pandora_Agent_Conf *conf = NULL;
|
||||||
string server_addr;
|
string server_addr;
|
||||||
unsigned char data_flag = 0;
|
unsigned char data_flag = 0;
|
||||||
@ -1876,7 +1876,10 @@ Pandora_Windows_Service::pandora_run_broker (string config) {
|
|||||||
Pandora_Module *module;
|
Pandora_Module *module;
|
||||||
|
|
||||||
module = this->broker_modules->getCurrentValue ();
|
module = this->broker_modules->getCurrentValue ();
|
||||||
|
|
||||||
|
/* Keep executions matching main agent */
|
||||||
|
module->setExecutions(executions);
|
||||||
|
|
||||||
/* Check preconditions */
|
/* Check preconditions */
|
||||||
if (module->evaluatePreconditions () == 0) {
|
if (module->evaluatePreconditions () == 0) {
|
||||||
pandoraDebug ("Preconditions not matched for module %s", module->getName ().c_str ());
|
pandoraDebug ("Preconditions not matched for module %s", module->getName ().c_str ());
|
||||||
@ -2074,7 +2077,7 @@ Pandora_Windows_Service::pandora_run (int forced_run) {
|
|||||||
check_broker_agents(all_conf);
|
check_broker_agents(all_conf);
|
||||||
for (i=0;i<num;i++){
|
for (i=0;i<num;i++){
|
||||||
pandora_init_broker(all_conf[i]);
|
pandora_init_broker(all_conf[i]);
|
||||||
pandora_run_broker(all_conf[i]);
|
pandora_run_broker(all_conf[i], execution_number);
|
||||||
}
|
}
|
||||||
delete []all_conf;
|
delete []all_conf;
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ namespace Pandora {
|
|||||||
int checkConfig (string file);
|
int checkConfig (string file);
|
||||||
void purgeDiskCollections ();
|
void purgeDiskCollections ();
|
||||||
void pandora_init_broker (string file_conf);
|
void pandora_init_broker (string file_conf);
|
||||||
void pandora_run_broker (string config);
|
void pandora_run_broker (string config, long executions=0);
|
||||||
int count_broker_agents();
|
int count_broker_agents();
|
||||||
void check_broker_agents(string *all_conf);
|
void check_broker_agents(string *all_conf);
|
||||||
int launchTentacleProxy();
|
int launchTentacleProxy();
|
||||||
|
@ -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.735(Build 190621))"
|
VALUE "ProductVersion", "(7.0NG.740(Build 191121))"
|
||||||
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.735-190621
|
Version: 7.0NG.740-191121
|
||||||
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.735-190621"
|
pandora_version="7.0NG.740-191121"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -11,4 +11,11 @@ echo Restart the apache.
|
|||||||
/etc/init.d/apache2 restart
|
/etc/init.d/apache2 restart
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Install pandora_websocket_engine service.
|
||||||
|
cp -pf %{prefix}/pandora_console/pandora_websocket_engine /etc/init.d/
|
||||||
|
chmod +x /etc/init.d/pandora_websocket_engine
|
||||||
|
|
||||||
|
echo "You can now start the Pandora FMS Websocket service by executing"
|
||||||
|
echo " /etc/init.d/pandora_websocket_engine start"
|
||||||
|
|
||||||
echo "Please, now, point your browser to http://your_IP_address/pandora_console/install.php and follow all the steps described on it."
|
echo "Please, now, point your browser to http://your_IP_address/pandora_console/install.php and follow all the steps described on it."
|
||||||
|
@ -1,17 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Ajax handler.
|
||||||
|
*
|
||||||
|
* @category Ajax handler.
|
||||||
|
* @package Pandora FMS.
|
||||||
|
* @subpackage OpenSource.
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
define('AJAX', true);
|
||||||
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
|
||||||
// ==================================================
|
|
||||||
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
|
|
||||||
// Please see http://pandorafms.org for full contribution list
|
|
||||||
// This program is free software; you can redistribute it and/or
|
|
||||||
// modify it under the terms of the GNU Lesser General Public License
|
|
||||||
// as published by the Free Software Foundation; version 2
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
// Enable profiler for testing
|
|
||||||
if (!defined('__PAN_XHPROF__')) {
|
if (!defined('__PAN_XHPROF__')) {
|
||||||
define('__PAN_XHPROF__', 0);
|
define('__PAN_XHPROF__', 0);
|
||||||
}
|
}
|
||||||
@ -56,7 +73,7 @@ if (isset($_GET['loginhash'])) {
|
|||||||
|
|
||||||
$public_hash = get_parameter('hash', false);
|
$public_hash = get_parameter('hash', false);
|
||||||
|
|
||||||
// Check user
|
// Check user.
|
||||||
if ($public_hash == false) {
|
if ($public_hash == false) {
|
||||||
check_login();
|
check_login();
|
||||||
} else {
|
} else {
|
||||||
@ -68,9 +85,9 @@ if ($public_hash == false) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
define('AJAX', true);
|
|
||||||
|
|
||||||
// Enterprise support
|
|
||||||
|
// Enterprise support.
|
||||||
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
||||||
include_once ENTERPRISE_DIR.'/load_enterprise.php';
|
include_once ENTERPRISE_DIR.'/load_enterprise.php';
|
||||||
}
|
}
|
||||||
@ -86,11 +103,9 @@ if ($isFunctionSkins !== ENTERPRISE_NOT_HOOK) {
|
|||||||
$config['relative_path'] = enterprise_hook('skins_set_image_skin_path', [$config['id_user']]);
|
$config['relative_path'] = enterprise_hook('skins_set_image_skin_path', [$config['id_user']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($config['metaconsole'])) {
|
if (is_metaconsole()) {
|
||||||
// Not cool way of know if we are executing from metaconsole or normal console
|
// Backward compatibility.
|
||||||
if ($config['metaconsole']) {
|
define('METACONSOLE', true);
|
||||||
define('METACONSOLE', true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_exists($page)) {
|
if (file_exists($page)) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Pandora FMS",
|
"name": "pandorafms/console",
|
||||||
"description": "Pandora Flexible Monitoring System ",
|
"description": "Pandora Flexible Monitoring System ",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@ -14,7 +14,9 @@
|
|||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Models\\": "include/rest-api/models",
|
"Models\\": "include/rest-api/models",
|
||||||
"Enterprise\\Models\\": "enterprise/include/rest-api/models"
|
"Enterprise\\Models\\": "enterprise/include/rest-api/models",
|
||||||
|
"PandoraFMS\\": "include/lib",
|
||||||
|
"PandoraFMS\\Enterprise\\": "enterprise/include/lib"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
|
@ -69,7 +69,7 @@ function extension_db_status()
|
|||||||
|
|
||||||
echo "<div style='text-align: right;'>";
|
echo "<div style='text-align: right;'>";
|
||||||
html_print_input_hidden('db_status_execute', 1);
|
html_print_input_hidden('db_status_execute', 1);
|
||||||
html_print_submit_button(__('Execute Test'), 'submit', false, 'class="sub"');
|
html_print_submit_button(__('Execute Test'), 'submit', false, 'class="sub next"');
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
|
@ -44,24 +44,16 @@ $groups = groups_get_all();
|
|||||||
// Add the All group to the beginning to be always the first
|
// Add the All group to the beginning to be always the first
|
||||||
// Use this instead array_unshift to keep the array keys
|
// Use this instead array_unshift to keep the array keys
|
||||||
$groups = ([0 => __('All')] + $groups);
|
$groups = ([0 => __('All')] + $groups);
|
||||||
$html = '';
|
$groups_selected = [];
|
||||||
$style = 'style="padding: 2px 10px; display: inline-block;"';
|
|
||||||
foreach ($groups as $id => $name) {
|
foreach ($groups as $id => $name) {
|
||||||
$checked = in_array($id, $file['groups']);
|
if (in_array($id, $file['groups'])) {
|
||||||
$all_checked = false;
|
$groups_selected[] = $id;
|
||||||
if ($id === 0) {
|
|
||||||
$checkbox = html_print_checkbox_extended('groups[]', $id, $checked, false, '', 'class="chkb_all"', true);
|
|
||||||
$all_checked = $checked;
|
|
||||||
} else {
|
|
||||||
$checkbox = html_print_checkbox_extended('groups[]', $id, $checked, $all_checked, '', 'class="chkb_group"', true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= "<div $style>$name $checkbox</div>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$row = [];
|
$row = [];
|
||||||
$row[0] = __('Groups');
|
$row[0] = __('Groups');
|
||||||
$row[1] = $html;
|
$row[1] = html_print_select($groups, 'groups[]', $groups_selected, '', '', '', true, true, '', '', '');
|
||||||
$table->data[] = $row;
|
$table->data[] = $row;
|
||||||
$table->colspan[][1] = 3;
|
$table->colspan[][1] = 3;
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ function files_repo_add_file($file_input_name='upfile', $description='', $groups
|
|||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$attachment_path = io_safe_output($config['attachment_store']);
|
$attachment_path = io_safe_output($config['attachment_store']);
|
||||||
$files_repo_path = $attachment_path.'/'.'files_repo';
|
$files_repo_path = $attachment_path.'/files_repo';
|
||||||
|
|
||||||
$result = [];
|
$result = [];
|
||||||
$result['status'] = false;
|
$result['status'] = false;
|
||||||
|
@ -30,6 +30,15 @@
|
|||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
|
// ACL Check
|
||||||
|
if (!check_acl($config['id_user'], 0, 'AR')) {
|
||||||
|
db_pandora_audit(
|
||||||
|
'ACL Violation',
|
||||||
|
'Trying to access Module Groups view'
|
||||||
|
);
|
||||||
|
include 'general/noaccess.php';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_ajax()) {
|
if (is_ajax()) {
|
||||||
$get_info_alert_module_group = (bool) get_parameter('get_info_alert_module_group');
|
$get_info_alert_module_group = (bool) get_parameter('get_info_alert_module_group');
|
||||||
@ -82,6 +91,16 @@ function mainModuleGroups()
|
|||||||
$agent_group_search = get_parameter('agent_group_search', '');
|
$agent_group_search = get_parameter('agent_group_search', '');
|
||||||
$module_group_search = get_parameter('module_group_search', '');
|
$module_group_search = get_parameter('module_group_search', '');
|
||||||
|
|
||||||
|
// Check the user's group permissions.
|
||||||
|
$user_groups = users_get_groups($config['user'], 'AR');
|
||||||
|
$info = array_filter(
|
||||||
|
$info,
|
||||||
|
function ($v, $k) use ($user_groups) {
|
||||||
|
return $user_groups[$v['id']] != null;
|
||||||
|
},
|
||||||
|
ARRAY_FILTER_USE_BOTH
|
||||||
|
);
|
||||||
|
|
||||||
$info = array_filter(
|
$info = array_filter(
|
||||||
$info,
|
$info,
|
||||||
function ($v, $k) use ($agent_group_search) {
|
function ($v, $k) use ($agent_group_search) {
|
||||||
@ -265,11 +284,17 @@ function mainModuleGroups()
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
';
|
';
|
||||||
|
|
||||||
if (true) {
|
if ($info && $array_module_group) {
|
||||||
$table = new StdClass();
|
$table = new StdClass();
|
||||||
$table->style[0] = 'color: #ffffff; background-color: #373737; font-weight: bolder; min-width: 230px;';
|
$table->style[0] = 'color: #ffffff; background-color: #373737; font-weight: bolder; min-width: 230px;';
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
|
|
||||||
|
if ($config['style'] === 'pandora_black') {
|
||||||
|
$background_color = '#333';
|
||||||
|
} else {
|
||||||
|
$background_color = '#fff';
|
||||||
|
}
|
||||||
|
|
||||||
$head[0] = __('Groups');
|
$head[0] = __('Groups');
|
||||||
$headstyle[0] = 'width: 20%; font-weight: bolder;';
|
$headstyle[0] = 'width: 20%; font-weight: bolder;';
|
||||||
foreach ($array_module_group as $key => $value) {
|
foreach ($array_module_group as $key => $value) {
|
||||||
@ -290,22 +315,22 @@ function mainModuleGroups()
|
|||||||
$url = 'index.php?sec=estado&sec2=operation/agentes/status_monitor&status=-1&ag_group='.$key.'&modulegroup='.$k;
|
$url = 'index.php?sec=estado&sec2=operation/agentes/status_monitor&status=-1&ag_group='.$key.'&modulegroup='.$k;
|
||||||
|
|
||||||
if ($array_data[$key][$k]['alerts_module_count'] != 0) {
|
if ($array_data[$key][$k]['alerts_module_count'] != 0) {
|
||||||
$color = '#FFA631';
|
$color = COL_ALERTFIRED;
|
||||||
// Orange when the cell for this model group and agent has at least one alert fired.
|
// Orange when the cell for this model group and agent has at least one alert fired.
|
||||||
} else if ($array_data[$key][$k]['critical_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['critical_module_count'] != 0) {
|
||||||
$color = '#e63c52';
|
$color = COL_CRITICAL;
|
||||||
// Red when the cell for this model group and agent has at least one module in critical state and the rest in any state.
|
// Red when the cell for this model group and agent has at least one module in critical state and the rest in any state.
|
||||||
} else if ($array_data[$key][$k]['warning_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['warning_module_count'] != 0) {
|
||||||
$color = '#f3b200';
|
$color = COL_WARNING;
|
||||||
// Yellow when the cell for this model group and agent has at least one in warning state and the rest in green state.
|
// Yellow when the cell for this model group and agent has at least one in warning state and the rest in green state.
|
||||||
} else if ($array_data[$key][$k]['unknown_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['unknown_module_count'] != 0) {
|
||||||
$color = '#B2B2B2 ';
|
$color = COL_UNKNOWN;
|
||||||
// Grey when the cell for this model group and agent has at least one module in unknown state and the rest in any state.
|
// Grey when the cell for this model group and agent has at least one module in unknown state and the rest in any state.
|
||||||
} else if ($array_data[$key][$k]['normal_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['normal_module_count'] != 0) {
|
||||||
$color = '#82b92e';
|
$color = COL_NORMAL;
|
||||||
// Green when the cell for this model group and agent has OK state all modules.
|
// Green when the cell for this model group and agent has OK state all modules.
|
||||||
} else if ($array_data[$key][$k]['notInit_module_count'] != 0) {
|
} else if ($array_data[$key][$k]['notInit_module_count'] != 0) {
|
||||||
$color = '#5BB6E5';
|
$color = COL_NOTINIT;
|
||||||
// Blue when the cell for this module group and all modules have not init value.
|
// Blue when the cell for this module group and all modules have not init value.
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,7 +339,7 @@ function mainModuleGroups()
|
|||||||
$data[$i][$j] .= $array_data[$key][$k]['total_count'];
|
$data[$i][$j] .= $array_data[$key][$k]['total_count'];
|
||||||
$data[$i][$j] .= '</a></div>';
|
$data[$i][$j] .= '</a></div>';
|
||||||
} else {
|
} else {
|
||||||
$data[$i][$j] = "<div style='background:white;".$cell_style."'>";
|
$data[$i][$j] = "<div style='background:".$background_color.';'.$cell_style."'>";
|
||||||
$data[$i][$j] .= 0;
|
$data[$i][$j] .= 0;
|
||||||
$data[$i][$j] .= '</div>';
|
$data[$i][$j] .= '</div>';
|
||||||
}
|
}
|
||||||
@ -323,7 +348,7 @@ function mainModuleGroups()
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
foreach ($value['gm'] as $k => $v) {
|
foreach ($value['gm'] as $k => $v) {
|
||||||
$data[$i][$j] = "<div style='background:white; min-width: 60px;max-width:5%;overflow:hidden; margin-left: auto; margin-right: auto; text-align: center; padding: 5px;padding-bottom:10px;font-size: 18px;line-height:25px;'>";
|
$data[$i][$j] = "<div style='background:".$background_color."; min-width: 60px;max-width:5%;overflow:hidden; margin-left: auto; margin-right: auto; text-align: center; padding: 5px;padding-bottom:10px;font-size: 18px;line-height:25px;'>";
|
||||||
$data[$i][$j] .= 0;
|
$data[$i][$j] .= 0;
|
||||||
$data[$i][$j] .= '</div>';
|
$data[$i][$j] .= '</div>';
|
||||||
$j++;
|
$j++;
|
||||||
@ -353,7 +378,7 @@ function mainModuleGroups()
|
|||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_WARNING.";'></div></td><td>".__('Yellow cell when the module group and agent have at least one in warning status and the others in grey or green status').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_WARNING.";'></div></td><td>".__('Yellow cell when the module group and agent have at least one in warning status and the others in grey or green status').'</td></tr>';
|
||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_UNKNOWN.";'></div></td><td>".__('Grey cell when the module group and agent have at least one in unknown status and the others in green status').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_UNKNOWN.";'></div></td><td>".__('Grey cell when the module group and agent have at least one in unknown status and the others in green status').'</td></tr>';
|
||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_NORMAL.";'></div></td><td>".__('Green cell when the module group and agent have all modules in OK status').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_NORMAL.";'></div></td><td>".__('Green cell when the module group and agent have all modules in OK status').'</td></tr>';
|
||||||
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_MAINTENANCE.";'></div></td><td>".__('Blue cell when the module group and agent have all modules in not init status.').'</td></tr>';
|
echo "<tr><td class='legend_square_simple'><div style='background-color: ".COL_NOTINIT.";'></div></td><td>".__('Blue cell when the module group and agent have all modules in not init status.').'</td></tr>';
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,26 +1,60 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Net tools utils.
|
||||||
|
*
|
||||||
|
* @category Extensions
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage NetTools
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
// Begin.
|
||||||
// ==================================================
|
global $config;
|
||||||
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
|
|
||||||
// Please see http://pandorafms.org for full contribution list
|
// Requires.
|
||||||
// This program is free software; you can redistribute it and/or
|
require_once $config['homedir'].'/include/functions.php';
|
||||||
// modify it under the terms of the GNU General Public License
|
|
||||||
// as published by the Free Software Foundation; version 2
|
// This extension is usefull only if the agent has associated IP.
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
$id_agente = get_parameter('id_agente');
|
$id_agente = get_parameter('id_agente');
|
||||||
|
|
||||||
// This extension is usefull only if the agent has associated IP
|
|
||||||
$address = agents_get_address($id_agente);
|
$address = agents_get_address($id_agente);
|
||||||
|
|
||||||
if (!empty($address) || empty($id_agente)) {
|
if (!empty($address) || empty($id_agente)) {
|
||||||
extensions_add_opemode_tab_agent('network_tools', 'Network Tools', 'extensions/net_tools/nettool.png', 'main_net_tools', 'v1r1', 'AW');
|
extensions_add_opemode_tab_agent(
|
||||||
|
'network_tools',
|
||||||
|
'Network Tools',
|
||||||
|
'extensions/net_tools/nettool.png',
|
||||||
|
'main_net_tools',
|
||||||
|
'v1r1',
|
||||||
|
'AW'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Searchs for command.
|
||||||
|
*
|
||||||
|
* @param string $command Command.
|
||||||
|
*
|
||||||
|
* @return string Path.
|
||||||
|
*/
|
||||||
function whereis_the_command($command)
|
function whereis_the_command($command)
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
@ -63,6 +97,9 @@ function whereis_the_command($command)
|
|||||||
return $snmpget_path;
|
return $snmpget_path;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,85 +124,20 @@ function whereis_the_command($command)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function main_net_tools()
|
/**
|
||||||
|
* Execute net tools action.
|
||||||
|
*
|
||||||
|
* @param integer $operation Operation.
|
||||||
|
* @param string $ip Ip.
|
||||||
|
* @param string $community Community.
|
||||||
|
* @param string $snmp_version SNMP version.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function net_tools_execute($operation, $ip, $community, $snmp_version)
|
||||||
{
|
{
|
||||||
$id_agente = get_parameter('id_agente');
|
|
||||||
$principal_ip = db_get_sql("SELECT direccion FROM tagente WHERE id_agente = $id_agente");
|
|
||||||
|
|
||||||
$list_address = db_get_all_rows_sql('select id_a from taddress_agent where id_agent = '.$id_agente);
|
|
||||||
foreach ($list_address as $address) {
|
|
||||||
$ids[] = join(',', $address);
|
|
||||||
}
|
|
||||||
|
|
||||||
$ids_address = implode(',', $ids);
|
|
||||||
$ips = db_get_all_rows_sql('select ip from taddress where id_a in ('.$ids_address.')');
|
|
||||||
|
|
||||||
if ($ips == '') {
|
|
||||||
echo "<div class='error' style='margin-top:5px'>".__('The agent hasn\'t got IP').'</div>';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "
|
|
||||||
<script type='text/javascript'>
|
|
||||||
function mostrarColumns(ValueSelect) {
|
|
||||||
value = ValueSelect.value;
|
|
||||||
if (value == 3) {
|
|
||||||
$('netToolTable').css('width','100%');
|
|
||||||
$('#snmpcolumn').show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('netToolTable').css('width','100%');
|
|
||||||
$('#snmpcolumn').hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>";
|
|
||||||
|
|
||||||
echo '<div>';
|
|
||||||
echo "<form name='actionbox' method='post'>";
|
|
||||||
echo "<table class='databox filters' width=100% id=netToolTable>";
|
|
||||||
echo '<tr><td>';
|
|
||||||
echo __('Operation');
|
|
||||||
ui_print_help_tip(
|
|
||||||
__('You can set the command path in the menu Administration -> Extensions -> Config Network Tools')
|
|
||||||
);
|
|
||||||
echo '</td><td>';
|
|
||||||
echo "<select name='operation' onChange='mostrarColumns(this);'>";
|
|
||||||
echo "<option value='1'>".__('Traceroute');
|
|
||||||
echo "<option value='2'>".__('Ping host & Latency');
|
|
||||||
echo "<option value='3'>".__('SNMP Interface status');
|
|
||||||
echo "<option value='4'>".__('Basic TCP Port Scan');
|
|
||||||
echo "<option value='5'>".__('DiG/Whois Lookup');
|
|
||||||
echo '</select>';
|
|
||||||
echo '</td>';
|
|
||||||
echo '<td>';
|
|
||||||
echo __('IP address');
|
|
||||||
echo '</td><td>';
|
|
||||||
echo "<select name='select_ips'>";
|
|
||||||
foreach ($ips as $ip) {
|
|
||||||
if ($ip['ip'] == $principal_ip) {
|
|
||||||
echo "<option value='".$ip['ip']."' selected = 'selected'>".$ip['ip'];
|
|
||||||
} else {
|
|
||||||
echo "<option value='".$ip['ip']."'>".$ip['ip'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '</select>';
|
|
||||||
echo '</td>';
|
|
||||||
echo "<td id='snmpcolumn' style=\"display:none;\">";
|
|
||||||
echo __('SNMP Community').' ';
|
|
||||||
echo "<input name=community type=text value='public'>";
|
|
||||||
echo '</td><td>';
|
|
||||||
echo "<input style='margin:0px;' name=submit type=submit class='sub next' value='".__('Execute')."'>";
|
|
||||||
echo '</td>';
|
|
||||||
echo '</tr></table>';
|
|
||||||
echo '</form>';
|
|
||||||
|
|
||||||
$operation = get_parameter('operation', 0);
|
|
||||||
$community = get_parameter('community', 'public');
|
|
||||||
$ip = get_parameter('select_ips');
|
|
||||||
|
|
||||||
if (!validate_address($ip)) {
|
if (!validate_address($ip)) {
|
||||||
ui_print_error_message(__('The ip or dns name entered cannot be resolved'));
|
ui_print_error_message(__('The ip or dns name entered cannot be resolved'));
|
||||||
} else {
|
} else {
|
||||||
switch ($operation) {
|
switch ($operation) {
|
||||||
case 1:
|
case 1:
|
||||||
@ -175,7 +147,7 @@ function main_net_tools()
|
|||||||
} else {
|
} else {
|
||||||
echo '<h3>'.__('Traceroute to ').$ip.'</h3>';
|
echo '<h3>'.__('Traceroute to ').$ip.'</h3>';
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
echo system("$traceroute $ip");
|
echo system($traceroute.' '.$ip);
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -187,7 +159,7 @@ function main_net_tools()
|
|||||||
} else {
|
} else {
|
||||||
echo '<h3>'.__('Ping to %s', $ip).'</h3>';
|
echo '<h3>'.__('Ping to %s', $ip).'</h3>';
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
echo system("$ping -c 5 $ip");
|
echo system($ping.' -c 5 '.$ip);
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -199,7 +171,7 @@ function main_net_tools()
|
|||||||
} else {
|
} else {
|
||||||
echo '<h3>'.__('Basic TCP Scan on ').$ip.'</h3>';
|
echo '<h3>'.__('Basic TCP Scan on ').$ip.'</h3>';
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
echo system("$nmap -F $ip");
|
echo system($nmap.' -F '.$ip);
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -212,7 +184,7 @@ function main_net_tools()
|
|||||||
ui_print_error_message(__('Dig executable does not exist.'));
|
ui_print_error_message(__('Dig executable does not exist.'));
|
||||||
} else {
|
} else {
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
echo system("dig $ip");
|
echo system('dig '.$ip);
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,51 +193,227 @@ function main_net_tools()
|
|||||||
ui_print_error_message(__('Whois executable does not exist.'));
|
ui_print_error_message(__('Whois executable does not exist.'));
|
||||||
} else {
|
} else {
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
echo system("whois $ip");
|
echo system('whois '.$ip);
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
|
$snmp_obj = [
|
||||||
|
'ip_target' => $ip,
|
||||||
|
'snmp_version' => $snmp_version,
|
||||||
|
'snmp_community' => $community,
|
||||||
|
'format' => '-Oqn',
|
||||||
|
];
|
||||||
|
|
||||||
|
$snmp_obj['base_oid'] = '.1.3.6.1.2.1.1.3.0';
|
||||||
|
$result = get_h_snmpwalk($snmp_obj);
|
||||||
echo '<h3>'.__('SNMP information for ').$ip.'</h3>';
|
echo '<h3>'.__('SNMP information for ').$ip.'</h3>';
|
||||||
|
echo '<h4>'.__('Uptime').'</h4>';
|
||||||
$snmpget = whereis_the_command('snmpget');
|
echo '<pre>';
|
||||||
if (empty($snmpget)) {
|
if (empty($result)) {
|
||||||
ui_print_error_message(__('SNMPget executable does not exist.'));
|
ui_print_error_message(__('Target unreachable.'));
|
||||||
|
break;
|
||||||
} else {
|
} else {
|
||||||
echo '<h4>'.__('Uptime').'</h4>';
|
echo array_pop($result);
|
||||||
echo '<pre>';
|
|
||||||
echo exec("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.3.0 ");
|
|
||||||
echo '</pre>';
|
|
||||||
echo '<h4>'.__('Device info').'</h4>';
|
|
||||||
echo '<pre>';
|
|
||||||
|
|
||||||
echo system("$snmpget -Ounv -v1 -c $community $ip .1.3.6.1.2.1.1.1.0 ");
|
|
||||||
echo '</pre>';
|
|
||||||
|
|
||||||
echo '<h4>Interface Information</h4>';
|
|
||||||
echo '<table class=databox>';
|
|
||||||
echo '<tr><th>'.__('Interface');
|
|
||||||
echo '<th>'.__('Status');
|
|
||||||
|
|
||||||
$int_max = exec("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.1.0 ");
|
|
||||||
|
|
||||||
for ($ax = 0; $ax < $int_max; $ax++) {
|
|
||||||
$interface = exec("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.2.$ax ");
|
|
||||||
$estado = exec("$snmpget -Oqunv -v1 -c $community $ip .1.3.6.1.2.1.2.2.1.8.$ax ");
|
|
||||||
echo "<tr><td>$interface<td>$estado";
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '</table>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo '</pre>';
|
||||||
|
echo '<h4>'.__('Device info').'</h4>';
|
||||||
|
echo '<pre>';
|
||||||
|
$snmp_obj['base_oid'] = '.1.3.6.1.2.1.1.1.0';
|
||||||
|
$result = get_h_snmpwalk($snmp_obj);
|
||||||
|
if (empty($result)) {
|
||||||
|
ui_print_error_message(__('Target unreachable.'));
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
echo array_pop($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
echo '<h4>Interface Information</h4>';
|
||||||
|
|
||||||
|
$table = new StdClass();
|
||||||
|
$table->class = 'databox';
|
||||||
|
$table->head = [];
|
||||||
|
$table->head[] = __('Interface');
|
||||||
|
$table->head[] = __('Status');
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
|
||||||
|
$base_oid = '.1.3.6.1.2.1.2.2.1';
|
||||||
|
$idx_oids = '.1';
|
||||||
|
$names_oids = '.2';
|
||||||
|
$status_oids = '.8';
|
||||||
|
|
||||||
|
$snmp_obj['base_oid'] = $base_oid.$idx_oids;
|
||||||
|
$idx = get_h_snmpwalk($snmp_obj);
|
||||||
|
|
||||||
|
$snmp_obj['base_oid'] = $base_oid.$names_oids;
|
||||||
|
$names = get_h_snmpwalk($snmp_obj);
|
||||||
|
|
||||||
|
$snmp_obj['base_oid'] = $base_oid.$status_oids;
|
||||||
|
$statuses = get_h_snmpwalk($snmp_obj);
|
||||||
|
|
||||||
|
foreach ($idx as $k => $v) {
|
||||||
|
$index = str_replace($base_oid.$idx_oids, '', $k);
|
||||||
|
$name = $names[$base_oid.$names_oids.$index];
|
||||||
|
|
||||||
|
$status = $statuses[$base_oid.$status_oids.$index];
|
||||||
|
|
||||||
|
$table->data[$i][0] = $name;
|
||||||
|
$table->data[$i++][1] = $status;
|
||||||
|
}
|
||||||
|
|
||||||
|
html_print_table($table);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Ignore.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main function.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function main_net_tools()
|
||||||
|
{
|
||||||
|
$operation = get_parameter('operation', 0);
|
||||||
|
$community = get_parameter('community', 'public');
|
||||||
|
$ip = get_parameter('select_ips');
|
||||||
|
$snmp_version = get_parameter('select_version');
|
||||||
|
|
||||||
|
// Show form.
|
||||||
|
$id_agente = get_parameter('id_agente', 0);
|
||||||
|
$principal_ip = db_get_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT direccion FROM tagente WHERE id_agente = %d',
|
||||||
|
$id_agente
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$list_address = db_get_all_rows_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT id_a FROM taddress_agent WHERE id_agent = %d',
|
||||||
|
$id_agente
|
||||||
|
)
|
||||||
|
);
|
||||||
|
foreach ($list_address as $address) {
|
||||||
|
$ids[] = join(',', $address);
|
||||||
|
}
|
||||||
|
|
||||||
|
$ips = db_get_all_rows_sql(
|
||||||
|
sprintf(
|
||||||
|
'SELECT ip FROM taddress WHERE id_a IN (%s)',
|
||||||
|
join($ids)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($ips == '') {
|
||||||
|
echo "<div class='error' style='margin-top:5px'>".__('The agent hasn\'t got IP').'</div>';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Javascript.
|
||||||
|
?>
|
||||||
|
<script type='text/javascript'>
|
||||||
|
$(document).ready(function(){
|
||||||
|
mostrarColumns($('#operation :selected').val());
|
||||||
|
});
|
||||||
|
|
||||||
|
function mostrarColumns(value) {
|
||||||
|
if (value == 3) {
|
||||||
|
$('.snmpcolumn').show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('.snmpcolumn').hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
echo '<div>';
|
||||||
|
echo "<form name='actionbox' method='post'>";
|
||||||
|
echo "<table class='databox filters' width=100% id=netToolTable>";
|
||||||
|
echo '<tr><td>';
|
||||||
|
echo __('Operation');
|
||||||
|
ui_print_help_tip(
|
||||||
|
__('You can set the command path in the menu Administration -> Extensions -> Config Network Tools')
|
||||||
|
);
|
||||||
|
echo '</td><td>';
|
||||||
|
|
||||||
|
html_print_select(
|
||||||
|
[
|
||||||
|
1 => __('Traceroute'),
|
||||||
|
2 => __('Ping host & Latency'),
|
||||||
|
3 => __('SNMP Interface status'),
|
||||||
|
4 => __('Basic TCP Port Scan'),
|
||||||
|
5 => __('DiG/Whois Lookup'),
|
||||||
|
],
|
||||||
|
'operation',
|
||||||
|
$operation,
|
||||||
|
'mostrarColumns(this.value)',
|
||||||
|
__('Please select')
|
||||||
|
);
|
||||||
|
|
||||||
|
echo '</td>';
|
||||||
|
echo '<td>';
|
||||||
|
echo __('IP address');
|
||||||
|
echo '</td><td>';
|
||||||
|
|
||||||
|
$ips_for_select = array_reduce(
|
||||||
|
$ips,
|
||||||
|
function ($carry, $item) {
|
||||||
|
$carry[$item['ip']] = $item['ip'];
|
||||||
|
return $carry;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
html_print_select(
|
||||||
|
$ips_for_select,
|
||||||
|
'select_ips',
|
||||||
|
$principal_ip
|
||||||
|
);
|
||||||
|
echo '</td>';
|
||||||
|
echo "<td class='snmpcolumn'>";
|
||||||
|
echo __('SNMP Version');
|
||||||
|
html_print_select(
|
||||||
|
[
|
||||||
|
'1' => 'v1',
|
||||||
|
'2c' => 'v2c',
|
||||||
|
],
|
||||||
|
'select_version',
|
||||||
|
$snmp_version
|
||||||
|
);
|
||||||
|
echo '</td><td class="snmpcolumn">';
|
||||||
|
echo __('SNMP Community').' ';
|
||||||
|
html_print_input_text('community', $community);
|
||||||
|
echo '</td><td>';
|
||||||
|
echo "<input style='margin:0px;' name=submit type=submit class='sub next' value='".__('Execute')."'>";
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr></table>';
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
if ($operation) {
|
||||||
|
// Execute form.
|
||||||
|
net_tools_execute($operation, $ip, $community, $snmp_version);
|
||||||
|
}
|
||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add option.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
function godmode_net_tools()
|
function godmode_net_tools()
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
529
pandora_console/extensions/quick_shell.php
Normal file
529
pandora_console/extensions/quick_shell.php
Normal file
@ -0,0 +1,529 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Quick Shell extension.
|
||||||
|
*
|
||||||
|
* @category Extension
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage QuickShell
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
require_once $config['homedir'].'/include/functions_agents.php';
|
||||||
|
require_once $config['homedir'].'/godmode/wizards/Wizard.main.php';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show Quick Shell interface.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function quickShell()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
check_login();
|
||||||
|
|
||||||
|
if (check_acl($config['id_user'], 0, 'PM') === false) {
|
||||||
|
db_pandora_audit(
|
||||||
|
'ACL Violation',
|
||||||
|
'Trying to access Profile Management'
|
||||||
|
);
|
||||||
|
include 'general/noaccess.php';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$agent_id = get_parameter('id_agente', 0);
|
||||||
|
$username = get_parameter('username', null);
|
||||||
|
$method = get_parameter('method', null);
|
||||||
|
$method_port = get_parameter('port', null);
|
||||||
|
|
||||||
|
// Retrieve main IP Address.
|
||||||
|
$address = agents_get_address($agent_id);
|
||||||
|
|
||||||
|
ui_require_css_file('wizard');
|
||||||
|
ui_require_css_file('discovery');
|
||||||
|
|
||||||
|
// Settings.
|
||||||
|
// WebSocket host, where to connect.
|
||||||
|
if (isset($config['ws_host']) === false) {
|
||||||
|
config_update_value('ws_host', $_SERVER['SERVER_ADDR']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['ws_port']) === false) {
|
||||||
|
config_update_value('ws_port', 8080);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($config['ws_proxy_url']) === true) {
|
||||||
|
$ws_url = 'http://'.$config['ws_host'].':'.$config['ws_port'];
|
||||||
|
} else {
|
||||||
|
preg_match('/\/\/(.*)/', $config['ws_proxy_url'], $matches);
|
||||||
|
if (isset($_SERVER['HTTPS']) === true) {
|
||||||
|
$ws_url = 'https://'.$matches[1];
|
||||||
|
} else {
|
||||||
|
$ws_url = 'http://'.$matches[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gotty settings. Internal communication (WS).
|
||||||
|
if (isset($config['gotty_host']) === false) {
|
||||||
|
config_update_value('gotty_host', '127.0.0.1');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_telnet_port']) === false) {
|
||||||
|
config_update_value('gotty_telnet_port', 8082);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_ssh_port']) === false) {
|
||||||
|
config_update_value('gotty_ssh_port', 8081);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Username. Retrieve from form.
|
||||||
|
if (empty($username) === true) {
|
||||||
|
// No username provided, ask for it.
|
||||||
|
$wiz = new Wizard();
|
||||||
|
|
||||||
|
$test = file_get_contents($ws_url);
|
||||||
|
if ($test === false) {
|
||||||
|
ui_print_error_message(__('WebService engine has not been started, please check documentation.'));
|
||||||
|
$wiz->printForm(
|
||||||
|
[
|
||||||
|
'form' => [
|
||||||
|
'method' => 'POST',
|
||||||
|
'action' => '#',
|
||||||
|
],
|
||||||
|
'inputs' => [
|
||||||
|
[
|
||||||
|
'class' => 'w100p',
|
||||||
|
'arguments' => [
|
||||||
|
'name' => 'submit',
|
||||||
|
'label' => __('Retry'),
|
||||||
|
'type' => 'submit',
|
||||||
|
'attributes' => 'class="sub next"',
|
||||||
|
'return' => true,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$wiz->printForm(
|
||||||
|
[
|
||||||
|
'form' => [
|
||||||
|
'action' => '#',
|
||||||
|
'class' => 'wizard',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
'inputs' => [
|
||||||
|
[
|
||||||
|
'label' => __('Username'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'username',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Port'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'id' => 'port',
|
||||||
|
'name' => 'port',
|
||||||
|
'value' => 22,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Method'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'select',
|
||||||
|
'name' => 'method',
|
||||||
|
'fields' => [
|
||||||
|
'ssh' => __('SSH'),
|
||||||
|
'telnet' => __('Telnet'),
|
||||||
|
],
|
||||||
|
'script' => "p=22; if(this.value == 'telnet') { p=23; } $('#text-port').val(p);",
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'submit',
|
||||||
|
'label' => __('Connect'),
|
||||||
|
'attributes' => 'class="sub next"',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize Gotty Client.
|
||||||
|
$host = $config['gotty_host'];
|
||||||
|
if ($method == 'ssh') {
|
||||||
|
// SSH.
|
||||||
|
$port = $config['gotty_ssh_port'];
|
||||||
|
$command_arguments = "var args = '?arg=".$username.'@'.$address;
|
||||||
|
$command_arguments .= '&arg=-p '.$method_port."';";
|
||||||
|
} else if ($method == 'telnet') {
|
||||||
|
// Telnet.
|
||||||
|
$port = $config['gotty_telnet_port'];
|
||||||
|
$command_arguments = "var args = '?arg=-l ".$username;
|
||||||
|
$command_arguments .= '&arg='.$address;
|
||||||
|
$command_arguments .= '&arg='.$method_port."';";
|
||||||
|
} else {
|
||||||
|
ui_print_error_message(__('Please use SSH or Telnet.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If rediretion is enabled, we will try to connect to http:// or https:// endpoint.
|
||||||
|
$test = get_headers($ws_url);
|
||||||
|
if ($test === false) {
|
||||||
|
if (empty($wiz) === true) {
|
||||||
|
$wiz = new Wizard();
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_error_message(__('WebService engine has not been started, please check documentation.'));
|
||||||
|
echo $wiz->printGoBackButton('#');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check credentials.
|
||||||
|
$auth_str = '';
|
||||||
|
$gotty_url = $host.':'.$port;
|
||||||
|
if (empty($config['gotty_user']) === false
|
||||||
|
&& empty($config['gotty_pass']) === false
|
||||||
|
) {
|
||||||
|
$auth_str = $config['gotty_user'].':'.$config['gotty_pass'];
|
||||||
|
$gotty_url = $auth_str.'@'.$host.':'.$port;
|
||||||
|
}
|
||||||
|
|
||||||
|
$r = file_get_contents('http://'.$gotty_url.'/js/hterm.js');
|
||||||
|
if (empty($r) === true) {
|
||||||
|
if (empty($wiz) === true) {
|
||||||
|
$wiz = new Wizard();
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_error_message(__('WebService engine is not working properly, please check documentation.'));
|
||||||
|
echo $wiz->printGoBackButton('#');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override gotty client settings.
|
||||||
|
if (empty($auth_str) === true) {
|
||||||
|
$r .= "var gotty_auth_token = '';";
|
||||||
|
} else {
|
||||||
|
$r .= "var gotty_auth_token = '";
|
||||||
|
$r .= $auth_str."';";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set websocket target and method.
|
||||||
|
$gotty = file_get_contents('http://'.$gotty_url.'/js/gotty.js');
|
||||||
|
$url = "var url = (httpsEnabled ? 'wss://' : 'ws://') + window.location.host + window.location.pathname + 'ws';";
|
||||||
|
if (empty($config['ws_proxy_url']) === true) {
|
||||||
|
$new = "var url = (httpsEnabled ? 'wss://' : 'ws://')";
|
||||||
|
$new .= " + window.location.host + ':";
|
||||||
|
$new .= $config['ws_port'].'/'.$method."';";
|
||||||
|
} else {
|
||||||
|
$new = "var url = '";
|
||||||
|
$new .= $config['ws_proxy_url'].'/'.$method."';";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update url.
|
||||||
|
$gotty = str_replace($url, $new, $gotty);
|
||||||
|
|
||||||
|
// Update websocket arguments.
|
||||||
|
$args = 'var args = window.location.search;';
|
||||||
|
$new = $command_arguments;
|
||||||
|
|
||||||
|
// Update arguments.
|
||||||
|
$gotty = str_replace($args, $new, $gotty);
|
||||||
|
|
||||||
|
?>
|
||||||
|
<style>#terminal {
|
||||||
|
height: 650px;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
#terminal > iframe {
|
||||||
|
position: relative!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="terminal"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<?php echo $r; ?>
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<?php echo $gotty; ?>
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provide an interface where configure all settings.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function quickShellSettings()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
ui_require_css_file('wizard');
|
||||||
|
ui_require_css_file('discovery');
|
||||||
|
|
||||||
|
// Gotty settings. Internal communication (WS).
|
||||||
|
if (isset($config['gotty_host']) === false) {
|
||||||
|
config_update_value('gotty_host', '127.0.0.1');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_telnet_port']) === false) {
|
||||||
|
config_update_value('gotty_telnet_port', 8082);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($config['gotty_ssh_port']) === false) {
|
||||||
|
config_update_value('gotty_ssh_port', 8081);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parser.
|
||||||
|
if (get_parameter('qs_update', false) !== false) {
|
||||||
|
// Gotty settings. Internal communication (WS).
|
||||||
|
$gotty = get_parameter(
|
||||||
|
'gotty',
|
||||||
|
''
|
||||||
|
);
|
||||||
|
$gotty_host = get_parameter(
|
||||||
|
'gotty_host',
|
||||||
|
$config['gotty_host']
|
||||||
|
);
|
||||||
|
$gotty_ssh_port = get_parameter(
|
||||||
|
'gotty_ssh_port',
|
||||||
|
$config['gotty_ssh_port']
|
||||||
|
);
|
||||||
|
$gotty_telnet_port = get_parameter(
|
||||||
|
'gotty_telnet_port',
|
||||||
|
$config['gotty_telnet_port']
|
||||||
|
);
|
||||||
|
|
||||||
|
$gotty_user = get_parameter(
|
||||||
|
'gotty_user',
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
$gotty_pass = get_parameter(
|
||||||
|
'gotty_pass',
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
$gotty_pass = io_input_password($gotty_pass);
|
||||||
|
|
||||||
|
$changes = 0;
|
||||||
|
$critical = 0;
|
||||||
|
if ($config['gotty'] != $gotty) {
|
||||||
|
config_update_value('gotty', $gotty);
|
||||||
|
$changes++;
|
||||||
|
$critical++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_host'] != $gotty_host) {
|
||||||
|
config_update_value('gotty_host', $gotty_host);
|
||||||
|
$changes++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_telnet_port'] != $gotty_telnet_port) {
|
||||||
|
config_update_value('gotty_telnet_port', $gotty_telnet_port);
|
||||||
|
$changes++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_ssh_port'] != $gotty_ssh_port) {
|
||||||
|
config_update_value('gotty_ssh_port', $gotty_ssh_port);
|
||||||
|
$changes++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_user'] != $gotty_user) {
|
||||||
|
config_update_value('gotty_user', $gotty_user);
|
||||||
|
$changes++;
|
||||||
|
$critical++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config['gotty_pass'] != $gotty_pass) {
|
||||||
|
$gotty_pass = io_input_password($gotty_pass);
|
||||||
|
config_update_value('gotty_pass', $gotty_pass);
|
||||||
|
$changes++;
|
||||||
|
$critical++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interface.
|
||||||
|
ui_print_page_header(__('QuickShell settings'));
|
||||||
|
|
||||||
|
if ($changes > 0) {
|
||||||
|
$msg = __('%d Updated', $changes);
|
||||||
|
if ($critical > 0) {
|
||||||
|
$msg = __(
|
||||||
|
'%d Updated, please restart WebSocket engine service',
|
||||||
|
$changes
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_success_message($msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Form.
|
||||||
|
$wiz = new Wizard();
|
||||||
|
|
||||||
|
$wiz->printForm(
|
||||||
|
[
|
||||||
|
'form' => [
|
||||||
|
'action' => '#',
|
||||||
|
'class' => 'wizard',
|
||||||
|
'method' => 'post',
|
||||||
|
],
|
||||||
|
'inputs' => [
|
||||||
|
[
|
||||||
|
'label' => __('Gotty path').ui_print_help_tip(
|
||||||
|
__('Leave blank if using an external Gotty service'),
|
||||||
|
true
|
||||||
|
),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'gotty',
|
||||||
|
'value' => $config['gotty'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Gotty host'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'gotty_host',
|
||||||
|
'value' => $config['gotty_host'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Gotty ssh port'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'gotty_ssh_port',
|
||||||
|
'value' => $config['gotty_ssh_port'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Gotty telnet port'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'gotty_telnet_port',
|
||||||
|
'value' => $config['gotty_telnet_port'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Gotty user').ui_print_help_tip(
|
||||||
|
__('Optional, set a user to access gotty service'),
|
||||||
|
true
|
||||||
|
),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'text',
|
||||||
|
'name' => 'gotty_user',
|
||||||
|
'value' => $config['gotty_user'],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'label' => __('Gotty password').ui_print_help_tip(
|
||||||
|
__('Optional, set a password to access gotty service'),
|
||||||
|
true
|
||||||
|
),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'password',
|
||||||
|
'name' => 'gotty_pass',
|
||||||
|
'value' => io_output_password($config['gotty_pass']),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'hidden',
|
||||||
|
'name' => 'qs_update',
|
||||||
|
'value' => 1,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'submit',
|
||||||
|
'label' => __('Update'),
|
||||||
|
'attributes' => 'class="sub next"',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
false,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// This extension is usefull only if the agent has associated IP.
|
||||||
|
$agent_id = get_parameter('id_agente');
|
||||||
|
if (empty($agent_id) === false
|
||||||
|
&& get_parameter('sec2', '') == 'operation/agentes/ver_agente'
|
||||||
|
) {
|
||||||
|
$address = agents_get_address($agent_id);
|
||||||
|
if (empty($address) === false) {
|
||||||
|
// Extension registration.
|
||||||
|
extensions_add_opemode_tab_agent(
|
||||||
|
// TabId.
|
||||||
|
'quick_shell',
|
||||||
|
// TabName.
|
||||||
|
__('QuickShell'),
|
||||||
|
// TabIcon.
|
||||||
|
'images/ehorus/terminal.png',
|
||||||
|
// TabFunction.
|
||||||
|
'quickShell',
|
||||||
|
// Version.
|
||||||
|
'N/A',
|
||||||
|
// Acl.
|
||||||
|
'PM'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extensions_add_godmode_menu_option(
|
||||||
|
// Name.
|
||||||
|
__('QuickShell settings'),
|
||||||
|
// Acl.
|
||||||
|
'PM',
|
||||||
|
// FatherId.
|
||||||
|
'gextensions',
|
||||||
|
// Icon.
|
||||||
|
'images/ehorus/terminal.png',
|
||||||
|
// Version.
|
||||||
|
'N/A',
|
||||||
|
// SubfatherId.
|
||||||
|
null
|
||||||
|
);
|
||||||
|
|
||||||
|
extensions_add_godmode_function('quickShellSettings');
|
@ -173,7 +173,7 @@ function pandora_realtime_graphs()
|
|||||||
$table->colspan[2]['snmp_oid'] = 2;
|
$table->colspan[2]['snmp_oid'] = 2;
|
||||||
|
|
||||||
$data['snmp_ver'] = __('Version').' '.html_print_select($snmp_versions, 'snmp_version', $snmp_ver, '', '', 0, true);
|
$data['snmp_ver'] = __('Version').' '.html_print_select($snmp_versions, 'snmp_version', $snmp_ver, '', '', 0, true);
|
||||||
$data['snmp_ver'] .= ' '.html_print_button(__('SNMP walk'), 'snmp_walk', false, 'javascript:realtimeGraphs.snmpBrowserWindow();', 'class="sub next"', true);
|
$data['snmp_ver'] .= ' '.html_print_button(__('SNMP walk'), 'snmp_walk', false, 'javascript:snmpBrowserWindow();', 'class="sub next"', true);
|
||||||
$table->colspan[2]['snmp_ver'] = 2;
|
$table->colspan[2]['snmp_ver'] = 2;
|
||||||
|
|
||||||
$table->data[] = $data;
|
$table->data[] = $data;
|
||||||
|
@ -10,7 +10,9 @@
|
|||||||
|
|
||||||
var plot;
|
var plot;
|
||||||
var plotOptions = {
|
var plotOptions = {
|
||||||
legend: { container: $("#chartLegend") },
|
legend: {
|
||||||
|
container: $("#chartLegend")
|
||||||
|
},
|
||||||
xaxis: {
|
xaxis: {
|
||||||
tickFormatter: function(timestamp, axis) {
|
tickFormatter: function(timestamp, axis) {
|
||||||
var date = new Date(timestamp * 1000);
|
var date = new Date(timestamp * 1000);
|
||||||
@ -131,47 +133,6 @@
|
|||||||
resetDataPooling();
|
resetDataPooling();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the form OID to the value selected in the SNMP browser
|
|
||||||
function setOID() {
|
|
||||||
if ($("#snmp_browser_version").val() == "3") {
|
|
||||||
$("#text-snmp_oid").val($("#table1-0-1").text());
|
|
||||||
} else {
|
|
||||||
$("#text-snmp_oid").val($("#snmp_selected_oid").text());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the SNMP browser
|
|
||||||
$(".ui-dialog-titlebar-close").trigger("click");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show the SNMP browser window
|
|
||||||
function snmpBrowserWindow() {
|
|
||||||
// Keep elements in the form and the SNMP browser synced
|
|
||||||
$("#text-target_ip").val($("#text-ip_target").val());
|
|
||||||
$("#text-community").val($("#text-snmp_community").val());
|
|
||||||
$("#snmp_browser_version").val($("#snmp_version").val());
|
|
||||||
$("#snmp3_browser_auth_user").val($("#snmp3_auth_user").val());
|
|
||||||
$("#snmp3_browser_security_level").val($("#snmp3_security_level").val());
|
|
||||||
$("#snmp3_browser_auth_method").val($("#snmp3_auth_method").val());
|
|
||||||
$("#snmp3_browser_auth_pass").val($("#snmp3_auth_pass").val());
|
|
||||||
$("#snmp3_browser_privacy_method").val($("#snmp3_privacy_method").val());
|
|
||||||
$("#snmp3_browser_privacy_pass").val($("#snmp3_privacy_pass").val());
|
|
||||||
|
|
||||||
$("#snmp_browser_container")
|
|
||||||
.show()
|
|
||||||
.dialog({
|
|
||||||
title: "",
|
|
||||||
resizable: true,
|
|
||||||
draggable: true,
|
|
||||||
modal: true,
|
|
||||||
overlay: {
|
|
||||||
opacity: 0.5,
|
|
||||||
background: "black"
|
|
||||||
},
|
|
||||||
width: 920,
|
|
||||||
height: 500
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function shortNumber(number) {
|
function shortNumber(number) {
|
||||||
if (Math.round(number) != number) return number;
|
if (Math.round(number) != number) return number;
|
||||||
number = Number.parseInt(number);
|
number = Number.parseInt(number);
|
||||||
@ -187,6 +148,7 @@
|
|||||||
|
|
||||||
return number + " " + shorts[pos];
|
return number + " " + shorts[pos];
|
||||||
}
|
}
|
||||||
|
|
||||||
function roundToTwo(num) {
|
function roundToTwo(num) {
|
||||||
return +(Math.round(num + "e+2") + "e-2");
|
return +(Math.round(num + "e+2") + "e-2");
|
||||||
}
|
}
|
||||||
|
@ -238,18 +238,6 @@ function output_xml_report($id)
|
|||||||
echo '<line_separator><![CDATA['.io_safe_output($item['line_separator']).']]></line_separator>';
|
echo '<line_separator><![CDATA['.io_safe_output($item['line_separator']).']]></line_separator>';
|
||||||
echo '<column_separator><![CDATA['.io_safe_output($item['header_definition']).']]></column_separator>';
|
echo '<column_separator><![CDATA['.io_safe_output($item['header_definition']).']]></column_separator>';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'TTRT':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'TTO':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTBF':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTTR':
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "</item>\n";
|
echo "</item>\n";
|
||||||
|
@ -375,18 +375,6 @@ function process_upload_xml_report($xml, $group_filter=0)
|
|||||||
$values['line_separator'] = io_safe_input($item['line_separator']);
|
$values['line_separator'] = io_safe_input($item['line_separator']);
|
||||||
$values['column_separator'] = io_safe_input($item['column_separator']);
|
$values['column_separator'] = io_safe_input($item['column_separator']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'TTRT':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'TTO':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTBF':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'MTTR':
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($agents_item)) {
|
if (empty($agents_item)) {
|
||||||
|
66
pandora_console/extensions/sample_agent.php
Normal file
66
pandora_console/extensions/sample_agent.php
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Pandora FMS - http://pandorafms.com
|
||||||
|
// ==================================================
|
||||||
|
// Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
// Please see http://pandorafms.org for full contribution list
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU General Public License
|
||||||
|
// as published by the Free Software Foundation; version 2
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
require_once __DIR__.'/../include/config.php';
|
||||||
|
require_once __DIR__.'/../include/auth/mysql.php';
|
||||||
|
require_once __DIR__.'/../include/functions.php';
|
||||||
|
require_once __DIR__.'/../include/functions_db.php';
|
||||||
|
/*
|
||||||
|
* Review if sample agent is active and deploys configuration for
|
||||||
|
* visual consoles if necessary
|
||||||
|
*/
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
// Deployment of sample agent for visual consoles.
|
||||||
|
if ($config['sample_agent'] == 1 && !isset($config['sample_agent_deployed'])) {
|
||||||
|
$id_agente = db_get_sql('SELECT id_agente FROM tagente WHERE nombre = "Sample_Agent";');
|
||||||
|
$modules = db_get_all_rows_filter('tagente_modulo', ['id_agente' => $id_agente], 'id_agente_modulo');
|
||||||
|
$count_modules = count($modules);
|
||||||
|
|
||||||
|
// Update of layout 1 (Rack sample).
|
||||||
|
$images_rack_server = [
|
||||||
|
'rack_server_rack',
|
||||||
|
'rack_server',
|
||||||
|
'rack_switch',
|
||||||
|
'rack_firewall',
|
||||||
|
'rack_double_server',
|
||||||
|
'rack_frame',
|
||||||
|
'rack_pdu',
|
||||||
|
];
|
||||||
|
$query = 'UPDATE `tlayout_data` SET `id_agent` = '.$id_agente.', `id_agente_modulo` = CASE ';
|
||||||
|
for ($i = 0; $i < $count_modules; $i++) {
|
||||||
|
$query .= 'WHEN `image` = "'.$images_rack_server[$i].'" THEN '.$modules[$i]['id_agente_modulo'].' ';
|
||||||
|
}
|
||||||
|
|
||||||
|
$query .= 'END WHERE `id_layout` = 1 AND `image` IN ("'.implode('","', $images_rack_server).'");';
|
||||||
|
|
||||||
|
db_process_sql($query);
|
||||||
|
// Update of layout 2 (Dashboard).
|
||||||
|
$query = 'UPDATE `tlayout_data` SET `id_agent`= '.$id_agente.', `id_agente_modulo` = CASE ';
|
||||||
|
$query .= 'WHEN `id` = 107 THEN '.$modules[0]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 108 THEN '.$modules[1]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 109 THEN '.$modules[2]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 110 THEN '.$modules[2]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 111 THEN '.$modules[3]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 112 THEN '.$modules[4]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 113 THEN '.$modules[5]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'WHEN `id` = 114 THEN '.$modules[6]['id_agente_modulo'].' ';
|
||||||
|
$query .= 'END WHERE `id_layout` = 2 AND `id` IN (107,108,109,110,111,112,113,114);';
|
||||||
|
|
||||||
|
db_process_sql($query);
|
||||||
|
|
||||||
|
// This setting will avoid regenerate all the times the visual consoles.
|
||||||
|
config_update_value('sample_agent_deployed', 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
extensions_add_main_function('sample_agent_deployment');
|
1
pandora_console/extras/delete_files/delete_files.txt
Normal file
1
pandora_console/extras/delete_files/delete_files.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
operation/servers/recon_view.php
|
@ -1,7 +1,29 @@
|
|||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `tmetaconsole_agent` ADD INDEX `id_tagente_idx` (`id_tagente`);
|
||||||
|
|
||||||
DELETE FROM `ttipo_modulo` WHERE `nombre` LIKE 'log4x';
|
DELETE FROM `ttipo_modulo` WHERE `nombre` LIKE 'log4x';
|
||||||
|
|
||||||
ALTER TABLE tevent_filter ADD column id_source_event int(10);
|
ALTER TABLE tevent_filter ADD column id_source_event int(10);
|
||||||
|
CREATE TABLE IF NOT EXISTS `tcredential_store` (
|
||||||
|
`identifier` varchar(100) NOT NULL,
|
||||||
|
`id_group` mediumint(4) unsigned NOT NULL DEFAULT 0,
|
||||||
|
`product` enum('CUSTOM', 'AWS', 'AZURE', 'GOOGLE') default 'CUSTOM',
|
||||||
|
`username` text,
|
||||||
|
`password` text,
|
||||||
|
`extra_1` text,
|
||||||
|
`extra_2` text,
|
||||||
|
PRIMARY KEY (`identifier`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `tcredential_store` (`identifier`, `id_group`, `product`, `username`, `password`) VALUES ("imported_aws_account", 0, "AWS", (SELECT `value` FROM `tconfig` WHERE `token` = "aws_access_key_id" LIMIT 1), (SELECT `value` FROM `tconfig` WHERE `token` = "aws_secret_access_key" LIMIT 1));
|
||||||
|
DELETE FROM `tcredential_store` WHERE `username` IS NULL AND `password` IS NULL;
|
||||||
|
|
||||||
|
UPDATE `tagente` ta INNER JOIN `tagente` taa on ta.`id_parent` = taa.`id_agente` AND taa.`nombre` IN ("us-east-1", "us-east-2", "us-west-1", "us-west-2", "ca-central-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "ap-northeast-1", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-south-1", "sa-east-1") SET ta.nombre = md5(concat((SELECT `username` FROM `tcredential_store` WHERE `identifier` = "imported_aws_account" LIMIT 1), ta.`nombre`));
|
||||||
|
|
||||||
|
UPDATE `tagente` SET `nombre` = md5(concat((SELECT `username` FROM `tcredential_store` WHERE `identifier` = "imported_aws_account" LIMIT 1), `nombre`)) WHERE `nombre` IN ("Aws", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "ca-central-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "ap-northeast-1", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-south-1", "sa-east-1");
|
||||||
|
|
||||||
|
UPDATE `trecon_task` SET `auth_strings` = "imported_aws_account" WHERE `type` IN (2,6,7);
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
51
pandora_console/extras/mr/30.sql
Normal file
51
pandora_console/extras/mr/30.sql
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `treport_content_sla_combined` ADD `id_agent_module_failover` int(10) unsigned NOT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `failover_type` tinyint(1) DEFAULT '0';
|
||||||
|
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '1';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `failover_type` tinyint(1) DEFAULT '1';
|
||||||
|
|
||||||
|
ALTER TABLE `tmodule_relationship` ADD COLUMN `type` ENUM('direct', 'failover') DEFAULT 'direct';
|
||||||
|
|
||||||
|
ALTER TABLE `treport_content` MODIFY COLUMN `name` varchar(300) NULL;
|
||||||
|
|
||||||
|
CREATE TABLE `tagent_repository` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`id_os` INT(10) UNSIGNED DEFAULT 0,
|
||||||
|
`arch` ENUM('x64', 'x86') DEFAULT 'x64',
|
||||||
|
`version` VARCHAR(10) DEFAULT '',
|
||||||
|
`path` text,
|
||||||
|
`uploaded_by` VARCHAR(100) DEFAULT '',
|
||||||
|
`uploaded` bigint(20) NOT NULL DEFAULT 0 COMMENT "When it was uploaded",
|
||||||
|
`last_err` text,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY (`id_os`) REFERENCES `tconfig_os`(`id_os`)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
CREATE TABLE `tdeployment_hosts` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`id_cs` VARCHAR(100),
|
||||||
|
`ip` VARCHAR(100) NOT NULL UNIQUE,
|
||||||
|
`id_os` INT(10) UNSIGNED DEFAULT 0,
|
||||||
|
`os_version` VARCHAR(100) DEFAULT '' COMMENT "OS version in STR format",
|
||||||
|
`arch` ENUM('x64', 'x86') DEFAULT 'x64',
|
||||||
|
`current_agent_version` VARCHAR(100) DEFAULT '' COMMENT "String latest installed agent",
|
||||||
|
`target_agent_version_id` BIGINT UNSIGNED,
|
||||||
|
`deployed` bigint(20) NOT NULL DEFAULT 0 COMMENT "When it was deployed",
|
||||||
|
`server_ip` varchar(100) default NULL COMMENT "Where to point target agent",
|
||||||
|
`last_err` text,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY (`id_cs`) REFERENCES `tcredential_store`(`identifier`)
|
||||||
|
ON UPDATE CASCADE ON DELETE SET NULL,
|
||||||
|
FOREIGN KEY (`id_os`) REFERENCES `tconfig_os`(`id_os`)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`)
|
||||||
|
ON UPDATE CASCADE ON DELETE SET NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
||||||
|
COMMIT;
|
12
pandora_console/extras/mr/31.sql
Normal file
12
pandora_console/extras/mr/31.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
UPDATE `tconfig` SET `value` = 'mini_severity,evento,id_agente,estado,timestamp' WHERE `token` LIKE 'event_fields';
|
||||||
|
|
||||||
|
DELETE FROM `talert_commands` WHERE `id` = 11;
|
||||||
|
|
||||||
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_enabled';
|
||||||
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_api_password';
|
||||||
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_inventory';
|
||||||
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_url';
|
||||||
|
|
||||||
|
COMMIT;
|
44
pandora_console/extras/mr/32.sql
Normal file
44
pandora_console/extras/mr/32.sql
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `last_error` text;
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `host` VARCHAR(255) DEFAULT '';
|
||||||
|
ALTER TABLE `tdatabase` ADD COLUMN `label` VARCHAR(255) DEFAULT '';
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `os_user` VARCHAR(255) DEFAULT '';
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `db_port` INT UNSIGNED NOT NULL DEFAULT 3306;
|
||||||
|
ALTER TABLE `tdatabase` MODIFY `os_port` INT UNSIGNED NOT NULL DEFAULT 22;
|
||||||
|
ALTER TABLE `tdatabase` ADD COLUMN `ssh_key` TEXT;
|
||||||
|
ALTER TABLE `tdatabase` ADD COLUMN `ssh_pubkey` TEXT;
|
||||||
|
|
||||||
|
UPDATE `tdatabase` set `label`=`host`;
|
||||||
|
|
||||||
|
UPDATE `tlayout_data` SET `height` = 70 , `width` = 70 WHERE `height` = 0 && `width` = 0 && image NOT LIKE '%dot%' && ((`type` IN (0,5)) ||
|
||||||
|
(`type` = 10 && `image` IS NOT NULL && `image` != '' && `image` != 'none') ||
|
||||||
|
(`type` = 11 && `image` IS NOT NULL && `image` != '' && `image` != 'none' && `show_statistics` = 0));
|
||||||
|
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_enabled', 0);
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_user', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_hostname', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_api_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_req_timeout', 5);
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_content', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_content', '');
|
||||||
|
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
|
||||||
|
COMMIT;
|
21
pandora_console/extras/mr/33.sql
Normal file
21
pandora_console/extras/mr/33.sql
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `tlayout_template_data` ADD COLUMN `cache_expiration` INTEGER UNSIGNED NOT NULL DEFAULT 0;
|
||||||
|
|
||||||
|
INSERT INTO `ttipo_modulo` VALUES
|
||||||
|
(34,'remote_cmd', 10, 'Remote execution, numeric data', 'mod_remote_cmd.png'),
|
||||||
|
(35,'remote_cmd_proc', 10, 'Remote execution, boolean data', 'mod_remote_cmd_proc.png'),
|
||||||
|
(36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'),
|
||||||
|
(37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png');
|
||||||
|
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('N. total processes','Number of running processes in a Windows system.',11,34,0,0,300,0,'tasklist /NH | find /c /v ""','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Free space in C:','Free space available in C:',11,34,0,0,300,0,'powershell $obj=(Get-WmiObject -class "Win32_LogicalDisk" -namespace "root\CIMV2") ; $obj.FreeSpace[0] * 100 /$obj.Size[0]','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux uptime','System uptime',43,36,0,0,300,0,'uptime |sed s/us\.*$//g | sed s/,\.*$//g','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux processes','Running processes',43,34,0,0,300,0,'ps elf | wc -l','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux system load','Current load (5 min)',43,34,0,0,300,0,'uptime | awk '{print $(NF-1)}' | tr -d ','','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available memory percent','Available memory %',43,34,0,0,300,0,'free | grep Mem | awk '{print $NF/$2 * 100}'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available disk /','Available free space in mountpoint /',43,34,0,0,300,0,'df / | tail -n +2 | awk '{print $(NF-1)}' | tr -d '%'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'0.00',0.00,0.00,'',0,'','inherited','',0,0,0.000000000000000,'','nowizard','','nowizard','0','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
|
||||||
|
INSERT INTO `tconfig`(`token`, `value`) VALUES ('welcome_state', -1);
|
||||||
|
|
||||||
|
COMMIT;
|
@ -1,796 +1,2 @@
|
|||||||
<script type="text/javascript">
|
|
||||||
|
|
||||||
function effectFadeOut() {
|
|
||||||
$('.content').fadeOut(800).fadeIn(800)
|
|
||||||
}
|
|
||||||
$(document).ready(function(){
|
|
||||||
setInterval(effectFadeOut, 1600);
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
// remove file.
|
||||||
// Pandora FMS - the Flexible Monitoring System
|
|
||||||
// ============================================
|
|
||||||
// Copyright (c) 2010 Artica Soluciones Tecnologicas, http://www.artica.es
|
|
||||||
// Please see http://pandora.sourceforge.net for full contribution list
|
|
||||||
// This program is free software; you can redistribute it and/or
|
|
||||||
// modify it under the terms of the GNU General Public License
|
|
||||||
// as published by the Free Software Foundation for version 2.
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
global $config;
|
|
||||||
check_login();
|
|
||||||
|
|
||||||
if (! check_acl($config['id_user'], 0, 'PM')) {
|
|
||||||
db_pandora_audit('ACL Violation', 'Trying to change License settings');
|
|
||||||
include 'general/noaccess.php';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$update_settings = (bool) get_parameter_post('update_settings');
|
|
||||||
|
|
||||||
if ($update_settings) {
|
|
||||||
foreach ($_POST['keys'] as $key => $value) {
|
|
||||||
db_process_sql_update(
|
|
||||||
'tupdate_settings',
|
|
||||||
[db_escape_key_identifier('value') => $value],
|
|
||||||
[db_escape_key_identifier('key') => $key]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_print_success_message(__('License updated'));
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_require_javascript_file_enterprise('load_enterprise');
|
|
||||||
enterprise_include_once('include/functions_license.php');
|
|
||||||
$license = enterprise_hook('license_get_info');
|
|
||||||
|
|
||||||
$rows = db_get_all_rows_in_table('tupdate_settings');
|
|
||||||
|
|
||||||
$settings = new StdClass;
|
|
||||||
foreach ($rows as $row) {
|
|
||||||
$settings->{$row['key']} = $row['value'];
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<script type="text/javascript">';
|
|
||||||
if (enterprise_installed()) {
|
|
||||||
print_js_var_enteprise();
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '</script>';
|
|
||||||
|
|
||||||
|
|
||||||
function render_info($table)
|
|
||||||
{
|
|
||||||
global $console_mode;
|
|
||||||
|
|
||||||
$info = db_get_sql("SELECT COUNT(*) FROM $table");
|
|
||||||
render_row($info, "DB Table $table");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function render_info_data($query, $label)
|
|
||||||
{
|
|
||||||
global $console_mode;
|
|
||||||
|
|
||||||
$info = db_get_sql($query);
|
|
||||||
render_row($info, $label);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function render_row($data, $label)
|
|
||||||
{
|
|
||||||
global $console_mode;
|
|
||||||
|
|
||||||
if ($console_mode == 1) {
|
|
||||||
echo $label;
|
|
||||||
echo '|';
|
|
||||||
echo $data;
|
|
||||||
echo "\n";
|
|
||||||
} else {
|
|
||||||
echo '<tr>';
|
|
||||||
echo "<td style='padding:2px;border:0px;' width='60%'><div style='padding:5px;background-color:#f2f2f2;border-radius:2px;text-align:left;border:0px;'>".$label;
|
|
||||||
echo '</div></td>';
|
|
||||||
echo "<td style='font-weight:bold;padding:2px;border:0px;' width='40%'><div style='padding:5px;background-color:#f2f2f2;border-radius:2px;text-align:left;border:0px;'>".$data;
|
|
||||||
echo '</div></td>';
|
|
||||||
echo '</tr>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function get_value_sum($arr)
|
|
||||||
{
|
|
||||||
foreach ($arr as $clave) {
|
|
||||||
foreach ($clave as $valor) {
|
|
||||||
if (is_numeric($valor) === true) {
|
|
||||||
$result += $valor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function execution_time()
|
|
||||||
{
|
|
||||||
$times = db_get_all_rows_sql('SELECT datos FROM tagente_datos WHERE id_agente_modulo = 29 ORDER BY utimestamp DESC LIMIT 2');
|
|
||||||
if ($times[0]['datos'] > ($times[1]['datos'] * 1.2)) {
|
|
||||||
return "<a class= 'content' style= 'color: red;'>Warning Status</a><a>   The execution time could be degrading. For a more extensive information of this data consult the Execution Time graph</a>";
|
|
||||||
} else {
|
|
||||||
return "<a style ='color: green;'>Normal Status</a><a>   The execution time is correct. For more information about this data, check the Execution Time graph</a>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function get_logs_size($file)
|
|
||||||
{
|
|
||||||
$file_name = '/var'.$file.'';
|
|
||||||
$size_server_log = filesize($file_name);
|
|
||||||
return $size_server_log;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function get_status_logs($path)
|
|
||||||
{
|
|
||||||
$status_server_log = '';
|
|
||||||
$size_server_log = number_format(get_logs_size($path));
|
|
||||||
$size_server_log = (0 + str_replace(',', '', $size_server_log));
|
|
||||||
if ($size_server_log <= 10485760) {
|
|
||||||
$status_server_log = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   You have less than 10 MB of logs</a>";
|
|
||||||
} else {
|
|
||||||
$status_server_log = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   You have more than 10 MB of logs</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_server_log;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function percentage_modules_per_agent()
|
|
||||||
{
|
|
||||||
$status_average_modules = '';
|
|
||||||
$total_agents = db_get_value_sql('SELECT count(*) FROM tagente');
|
|
||||||
$total_modules = db_get_value_sql('SELECT count(*) FROM tagente_modulo');
|
|
||||||
$average_modules_per_agent = ($total_modules / $total_agents);
|
|
||||||
if ($average_modules_per_agent <= 40) {
|
|
||||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The average of modules per agent is less than 40</a>";
|
|
||||||
} else {
|
|
||||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>  The average of modules per agent is more than 40. You can have performance problems</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_average_modules;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function license_capacity()
|
|
||||||
{
|
|
||||||
$license = enterprise_hook('license_get_info');
|
|
||||||
$license_limit = $license['limit'];
|
|
||||||
$status_license_capacity = '';
|
|
||||||
$current_count = db_get_value_sql('SELECT count(*) FROM tagente');
|
|
||||||
if ($current_count > ($license_limit * 90 / 100)) {
|
|
||||||
$status_license_capacity = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   License capacity exceeds 90 percent</a>";
|
|
||||||
} else {
|
|
||||||
$status_license_capacity = "<a style= 'color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   License capacity is less than 90 percent</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_license_capacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function status_license_params($license_param)
|
|
||||||
{
|
|
||||||
$status_license_par = '';
|
|
||||||
if ($license_param <= 0) {
|
|
||||||
$status_license_par = 'OFF';
|
|
||||||
} else {
|
|
||||||
$status_license_par = 'ON';
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_license_par;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function interval_average_of_network_modules()
|
|
||||||
{
|
|
||||||
$total_network_modules = db_get_value_sql('SELECT count(*) FROM tagente_modulo WHERE id_tipo_modulo BETWEEN 6 AND 18');
|
|
||||||
$total_module_interval_time = db_get_value_sql('SELECT SUM(module_interval) FROM tagente_modulo WHERE id_tipo_modulo BETWEEN 6 AND 18');
|
|
||||||
$average_time = ((int) $total_module_interval_time / $total_network_modules);
|
|
||||||
|
|
||||||
if ($average_time < 180) {
|
|
||||||
$status_average_modules = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The system is overloaded (average time $average_time) and a very fine configuration is required</a>";
|
|
||||||
} else {
|
|
||||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system is not overloaded (average time $average_time) </a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($average_time == 0) {
|
|
||||||
$status_average_modules = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The system has no load</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_average_modules;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$attachment_total_files = count(glob($config['homedir'].'/attachment/{*.*}', GLOB_BRACE));
|
|
||||||
|
|
||||||
|
|
||||||
function files_attachment_folder($total_files)
|
|
||||||
{
|
|
||||||
if ($total_files <= 700) {
|
|
||||||
$status_total_files = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The attached folder contains less than 700 files.</a>";
|
|
||||||
} else {
|
|
||||||
$status_total_files = "<a class= 'content' style= 'color: red;text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   The attached folder contains more than 700 files.</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_total_files;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$tagente_datos_size = db_get_value_sql('SELECT COUNT(*) FROM tagente_datos');
|
|
||||||
|
|
||||||
|
|
||||||
function status_tagente_datos($tagente_datos_size)
|
|
||||||
{
|
|
||||||
if ($tagente_datos_size <= 3000000) {
|
|
||||||
$tagente_datos_size = "<a style ='color: green;text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   The tagente_datos table contains an acceptable amount of data.</a>";
|
|
||||||
} else {
|
|
||||||
$tagente_datos_size = "<a class= 'content' style ='color: red;text-decoration: none;'>Warning Status</a><a>   The tagente_datos table contains too much data. A historical database is recommended.</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $tagente_datos_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function status_values($val_rec, $val)
|
|
||||||
{
|
|
||||||
if ($val_rec <= $val) {
|
|
||||||
return $val."<a style='text-decoration: none;'> (Min. Recommended Value </a>".$val_rec.'<a>)</a>';
|
|
||||||
} else {
|
|
||||||
return $val."<a style='text-decoration: none;'> (Min. Recommended Value </a>".$val_rec."<a>)</a><a class= 'content' style ='color: red;text-decoration: none;'> Warning Status</a>";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$tables_fragmentation = db_get_sql(
|
|
||||||
"SELECT (data_free/(index_length+data_length))
|
|
||||||
as frag_ratio from information_schema.tables where DATA_FREE > 0 and table_name='tagente_datos' and table_schema='pandora'"
|
|
||||||
);
|
|
||||||
$db_size = db_get_all_rows_sql(
|
|
||||||
'SELECT table_schema,
|
|
||||||
ROUND(SUM(data_length+index_length)/1024/1024,3)
|
|
||||||
FROM information_schema.TABLES
|
|
||||||
GROUP BY table_schema;'
|
|
||||||
);
|
|
||||||
|
|
||||||
if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
|
||||||
$total_server_threads = shell_exec('ps -T aux | grep pandora_server | grep -v grep | wc -l');
|
|
||||||
$percentage_threads_ram = shell_exec("ps axo pmem,cmd | grep pandora_server | awk '{sum+=$1} END {print sum}'");
|
|
||||||
$percentage_threads_cpu = shell_exec("ps axo pcpu,cmd | grep pandora_server | awk '{sum+=$1} END {print sum}'");
|
|
||||||
$innodb_buffer_pool_size_min_rec_value = shell_exec("cat /proc/meminfo | grep -i total | head -1 | awk '{print $(NF-1)*0.4/1024}'");
|
|
||||||
}
|
|
||||||
|
|
||||||
$path_server_logs = '/log/pandora/pandora_server.log';
|
|
||||||
$path_err_logs = '/log/pandora/pandora_server.error';
|
|
||||||
$path_console_logs = '/www/html/pandora_console/pandora_console.log';
|
|
||||||
$innodb_log_file_size_min_rec_value = '64M';
|
|
||||||
$innodb_log_buffer_size_min_rec_value = '16M';
|
|
||||||
$innodb_flush_log_at_trx_commit_min_rec_value = 0;
|
|
||||||
$query_cache_limit_min_rec_value = 2;
|
|
||||||
$max_allowed_packet_min_rec_value = 32;
|
|
||||||
$innodb_buffer_pool_size_min_rec_value = shell_exec("cat /proc/meminfo | grep -i total | head -1 | awk '{print $(NF-1)*0.4/1024}'");
|
|
||||||
$sort_buffer_size_min_rec_value = 32;
|
|
||||||
$join_buffer_size_min_rec_value = 265;
|
|
||||||
$query_cache_type_min_rec_value = 'ON';
|
|
||||||
$query_cache_size_min_rec_value = 24;
|
|
||||||
$innodb_lock_wait_timeout_max_rec_value = 120;
|
|
||||||
$tables_fragmentation_max_rec_value = 10;
|
|
||||||
$thread_cache_size_max_rec_value = 8;
|
|
||||||
$thread_stack_min_rec_value = 256;
|
|
||||||
$max_connections_max_rec_value = 150;
|
|
||||||
$key_buffer_size_min_rec_value = 256;
|
|
||||||
$read_buffer_size_min_rec_value = 32;
|
|
||||||
$read_rnd_buffer_size_min_rec_value = 32;
|
|
||||||
$query_cache_min_res_unit_min_rec_value = 2;
|
|
||||||
$innodb_file_per_table_min_rec_value = 1;
|
|
||||||
|
|
||||||
|
|
||||||
function status_fragmentation_tables($tables_fragmentation_max_rec_value, $tables_fragmentation)
|
|
||||||
{
|
|
||||||
$status_tables_frag = '';
|
|
||||||
if ($tables_fragmentation > $tables_fragmentation_max_rec_value) {
|
|
||||||
$status_tables_frag = "<a class= 'content' style ='color: red; text-decoration: none;'>Warning Status</a><a style ='text-decoration: none;'>   Table fragmentation is higher than recommended. They should be defragmented.</a>";
|
|
||||||
} else {
|
|
||||||
$status_tables_frag = "<a style ='color: green; text-decoration: none;'>Normal Status</a><a style ='text-decoration: none;'>   Table fragmentation is correct.</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $status_tables_frag;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$console_mode = 1;
|
|
||||||
if (!isset($argc)) {
|
|
||||||
$console_mode = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($console_mode == 1) {
|
|
||||||
echo "\nPandora FMS PHP diagnostic tool v3.2 (c) Artica ST 2009-2010 \n";
|
|
||||||
|
|
||||||
if ($argc == 1 || in_array($argv[1], ['--help', '-help', '-h', '-?'])) {
|
|
||||||
echo "\nThis command line script contains information about Pandora FMS database.
|
|
||||||
This program can only be executed from the console, and it needs a parameter, the
|
|
||||||
full path to Pandora FMS 'config.php' file.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
php pandora_diag.php path_to_pandora_console
|
|
||||||
|
|
||||||
Example:
|
|
||||||
php pandora_diag.php /var/www/pandora_console
|
|
||||||
|
|
||||||
";
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (preg_match('/[^a-zA-Z0-9_\/\.]|(\/\/)|(\.\.)/', $argv[1])) {
|
|
||||||
echo "Invalid path: $argv[1]. Always use absolute paths.";
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
include $argv[1].'/include/config.php';
|
|
||||||
} else {
|
|
||||||
if (file_exists('../include/config.php')) {
|
|
||||||
include '../include/config.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Not from console, this is a web session.
|
|
||||||
if ((!isset($config['id_user'])) || (!check_acl($config['id_user'], 0, 'PM'))) {
|
|
||||||
echo "<h2>You don't have privileges to use diagnostic tool</h2>";
|
|
||||||
echo '<p>Please login with an administrator account before try to use this tool</p>';
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Header.
|
|
||||||
ui_print_page_header(
|
|
||||||
__('Pandora FMS Diagnostic tool'),
|
|
||||||
'',
|
|
||||||
false,
|
|
||||||
'diagnostic_tool_tab',
|
|
||||||
true
|
|
||||||
);
|
|
||||||
|
|
||||||
echo "<table width='1000px' border='0' style='border:0px;' class='databox data' cellpadding='4' cellspacing='4'>";
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Pandora status info').'</th></tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
render_row($build_version, 'Pandora FMS Build');
|
|
||||||
render_row($pandora_version, 'Pandora FMS Version');
|
|
||||||
render_info_data("SELECT value FROM tconfig where token ='MR'", 'Minor Release');
|
|
||||||
render_row($config['homedir'], 'Homedir');
|
|
||||||
render_row($config['homeurl'], 'HomeUrl');
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'enterprise_installed'",
|
|
||||||
'Enterprise installed'
|
|
||||||
);
|
|
||||||
|
|
||||||
$full_key = db_get_sql(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE `key` = 'customer_key'"
|
|
||||||
);
|
|
||||||
|
|
||||||
$compressed_key = substr($full_key, 0, 5).'...'.substr($full_key, -5);
|
|
||||||
|
|
||||||
render_row($compressed_key, 'Update Key');
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE `key` = 'updating_code_path'",
|
|
||||||
'Updating code path'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE `key` = 'current_update'",
|
|
||||||
'Current Update #'
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('PHP setup').'</th></tr>';
|
|
||||||
|
|
||||||
|
|
||||||
render_row(phpversion(), 'PHP Version');
|
|
||||||
|
|
||||||
render_row(ini_get('max_execution_time').' seconds', 'PHP Max execution time');
|
|
||||||
|
|
||||||
render_row(ini_get('max_input_time').' seconds', 'PHP Max input time');
|
|
||||||
|
|
||||||
render_row(ini_get('memory_limit'), 'PHP Memory limit');
|
|
||||||
|
|
||||||
render_row(ini_get('session.cookie_lifetime'), 'Session cookie lifetime');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Database size stats').'</th></tr>';
|
|
||||||
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagente', 'Total agents');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagente_modulo', 'Total modules');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tgrupo', 'Total groups');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagente_datos', 'Total module data records');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tagent_access', 'Total agent access record');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tevento', 'Total events');
|
|
||||||
|
|
||||||
if ($config['enterprise_installed']) {
|
|
||||||
render_info_data('SELECT COUNT(*) FROM ttrap', 'Total traps');
|
|
||||||
}
|
|
||||||
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tusuario', 'Total users');
|
|
||||||
render_info_data('SELECT COUNT(*) FROM tsesion', 'Total sessions');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Database sanity').'</th></tr>';
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
'SELECT COUNT( DISTINCT tagente.id_agente)
|
|
||||||
FROM tagente_estado, tagente, tagente_modulo
|
|
||||||
WHERE tagente.disabled = 0
|
|
||||||
AND tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
|
|
||||||
AND tagente_modulo.disabled = 0
|
|
||||||
AND tagente_estado.id_agente = tagente.id_agente
|
|
||||||
AND tagente_estado.estado = 3',
|
|
||||||
'Total unknown agents'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
'SELECT COUNT(tagente_estado.estado)
|
|
||||||
FROM tagente_estado
|
|
||||||
WHERE tagente_estado.estado = 4',
|
|
||||||
'Total not-init modules'
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
$last_run_difference = '';
|
|
||||||
|
|
||||||
$diferencia = (time() - date(
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_maintance'"
|
|
||||||
)
|
|
||||||
));
|
|
||||||
|
|
||||||
$last_run_difference_months = 0;
|
|
||||||
$last_run_difference_weeks = 0;
|
|
||||||
$last_run_difference_days = 0;
|
|
||||||
$last_run_difference_minutos = 0;
|
|
||||||
$last_run_difference_seconds = 0;
|
|
||||||
|
|
||||||
while ($diferencia >= 2419200) {
|
|
||||||
$diferencia -= 2419200;
|
|
||||||
$last_run_difference_months++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 604800) {
|
|
||||||
$diferencia -= 604800;
|
|
||||||
$last_run_difference_weeks++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 86400) {
|
|
||||||
$diferencia -= 86400;
|
|
||||||
$last_run_difference_days++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 3600) {
|
|
||||||
$diferencia -= 3600;
|
|
||||||
$last_run_difference_hours++;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ($diferencia >= 60) {
|
|
||||||
$diferencia -= 60;
|
|
||||||
$last_run_difference_minutes++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$last_run_difference_seconds = $diferencia;
|
|
||||||
|
|
||||||
if ($last_run_difference_months > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_months.'month/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_weeks > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_weeks.' week/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_days > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_days.' day/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_hours > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_hours.' hour/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($last_run_difference_minutes > 0) {
|
|
||||||
$last_run_difference .= $last_run_difference_minutes.' minute/s ';
|
|
||||||
}
|
|
||||||
|
|
||||||
$last_run_difference .= $last_run_difference_seconds.' second/s ago';
|
|
||||||
|
|
||||||
render_row(
|
|
||||||
date(
|
|
||||||
'Y/m/d H:i:s',
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_maintance'"
|
|
||||||
)
|
|
||||||
).' ('.$last_run_difference.')'.' *',
|
|
||||||
'PandoraDB Last run'
|
|
||||||
);
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Database status info').'</th></tr>';
|
|
||||||
|
|
||||||
switch ($config['dbtype']) {
|
|
||||||
case 'mysql':
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_scheme_first_version'",
|
|
||||||
'DB Schema Version (first installed)'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_scheme_version'",
|
|
||||||
'DB Schema Version (actual)'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT `value`
|
|
||||||
FROM tconfig
|
|
||||||
WHERE `token` = 'db_scheme_build'",
|
|
||||||
'DB Schema Build'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_row(get_value_sum($db_size).'M', 'DB Size');
|
|
||||||
|
|
||||||
|
|
||||||
if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('System info').'</th></tr>';
|
|
||||||
|
|
||||||
$output = 'cat /proc/cpuinfo | grep "model name" | tail -1 | cut -f 2 -d ":"';
|
|
||||||
$output2 = 'cat /proc/cpuinfo | grep "processor" | wc -l';
|
|
||||||
|
|
||||||
render_row(exec($output).' x '.exec($output2), 'CPU');
|
|
||||||
|
|
||||||
$output = 'cat /proc/meminfo | grep "MemTotal"';
|
|
||||||
|
|
||||||
render_row(exec($output), 'RAM');
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'postgresql':
|
|
||||||
render_info_data(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig
|
|
||||||
WHERE \"token\" = 'db_scheme_version'",
|
|
||||||
'DB Schema Version'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig
|
|
||||||
WHERE \"token\" = 'db_scheme_build'",
|
|
||||||
'DB Schema Build'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig
|
|
||||||
WHERE \"token\" = 'enterprise_installed'",
|
|
||||||
'Enterprise installed'
|
|
||||||
);
|
|
||||||
render_row(
|
|
||||||
date(
|
|
||||||
'Y/m/d H:i:s',
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT \"value\"
|
|
||||||
FROM tconfig WHERE \"token\" = 'db_maintance'"
|
|
||||||
)
|
|
||||||
),
|
|
||||||
'PandoraDB Last run'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'customer_key';",
|
|
||||||
'Update Key'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'updating_code_path'",
|
|
||||||
'Updating code path'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'current_update'",
|
|
||||||
'Current Update #'
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'oracle':
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'db_scheme_version'",
|
|
||||||
'DB Schema Version'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'db_scheme_build'",
|
|
||||||
'DB Schema Build'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'enterprise_installed'",
|
|
||||||
'Enterprise installed'
|
|
||||||
);
|
|
||||||
render_row(
|
|
||||||
db_get_sql(
|
|
||||||
"SELECT value
|
|
||||||
FROM tconfig
|
|
||||||
WHERE token = 'db_maintance'"
|
|
||||||
),
|
|
||||||
'PandoraDB Last run'
|
|
||||||
);
|
|
||||||
|
|
||||||
render_info_data(
|
|
||||||
'SELECT '.db_escape_key_identifier('value')." FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'customer_key'",
|
|
||||||
'Update Key'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
'SELECT '.db_escape_key_identifier('value')." FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'updating_code_path'",
|
|
||||||
'Updating code path'
|
|
||||||
);
|
|
||||||
render_info_data(
|
|
||||||
'SELECT '.db_escape_key_identifier('value')." FROM tupdate_settings
|
|
||||||
WHERE \"key\" = 'current_update'",
|
|
||||||
'Current Update #'
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$innodb_log_file_size = (db_get_value_sql('SELECT @@innodb_log_file_size') / 1048576);
|
|
||||||
$innodb_log_buffer_size = (db_get_value_sql('SELECT @@innodb_log_buffer_size') / 1048576);
|
|
||||||
$innodb_flush_log_at_trx_commit = db_get_value_sql('SELECT @@innodb_flush_log_at_trx_commit');
|
|
||||||
$max_allowed_packet = (db_get_value_sql('SELECT @@max_allowed_packet') / 1048576);
|
|
||||||
$innodb_buffer_pool_size = (db_get_value_sql('SELECT @@innodb_buffer_pool_size') / 1024);
|
|
||||||
$sort_buffer_size = number_format((db_get_value_sql('SELECT @@sort_buffer_size') / 1024), 2);
|
|
||||||
$join_buffer_size = (db_get_value_sql('SELECT @@join_buffer_size') / 1024);
|
|
||||||
$query_cache_type = db_get_value_sql('SELECT @@query_cache_type');
|
|
||||||
$query_cache_size = (db_get_value_sql('SELECT @@query_cache_size') / 1048576);
|
|
||||||
$query_cache_limit = (db_get_value_sql('SELECT @@query_cache_limit') / 1048576);
|
|
||||||
$innodb_lock_wait_timeout = db_get_value_sql('SELECT @@innodb_lock_wait_timeout');
|
|
||||||
$thread_cache_size = db_get_value_sql('SELECT @@thread_cache_size');
|
|
||||||
$thread_stack = (db_get_value_sql('SELECT @@thread_stack') / 1024);
|
|
||||||
$max_connections = db_get_value_sql('SELECT @@max_connections');
|
|
||||||
$key_buffer_size = (db_get_value_sql('SELECT @@key_buffer_size') / 1024);
|
|
||||||
$read_buffer_size = (db_get_value_sql('SELECT @@read_buffer_size') / 1024);
|
|
||||||
$read_rnd_buffer_size = (db_get_value_sql('SELECT @@read_rnd_buffer_size') / 1024);
|
|
||||||
$query_cache_min_res_unit = (db_get_value_sql('SELECT @@query_cache_min_res_unit') / 1024);
|
|
||||||
$innodb_file_per_table = db_get_value_sql('SELECT @@innodb_file_per_table');
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('MySQL Performance metrics').' '.ui_print_help_icon('performance_metrics_tab', true).'</th></tr>';
|
|
||||||
|
|
||||||
render_row(status_values($innodb_log_file_size_min_rec_value, $innodb_log_file_size), 'InnoDB log file size ', 'InnoDB log file size ');
|
|
||||||
render_row(status_values($innodb_log_buffer_size_min_rec_value, $innodb_log_buffer_size), 'InnoDB log buffer size ', 'InnoDB log buffer size ');
|
|
||||||
render_row(status_values($innodb_flush_log_at_trx_commit_min_rec_value, $innodb_flush_log_at_trx_commit), 'InnoDB flush log at trx-commit ', 'InnoDB flush log at trx-commit ');
|
|
||||||
render_row(status_values($max_allowed_packet_min_rec_value, $max_allowed_packet), 'Maximun allowed packet ', 'Maximun allowed packet ');
|
|
||||||
render_row(status_values($innodb_buffer_pool_size_min_rec_value, $innodb_buffer_pool_size), 'InnoDB buffer pool size ', 'InnoDB buffer pool size ');
|
|
||||||
render_row(status_values($sort_buffer_size_min_rec_value, $sort_buffer_size), 'Sort buffer size ', 'Sort buffer size ');
|
|
||||||
render_row(status_values($join_buffer_size_min_rec_value, $join_buffer_size), 'Join buffer size ', 'Join buffer size ');
|
|
||||||
render_row(status_values($query_cache_type_min_rec_value, $query_cache_type), 'Query cache type ', 'Query cache type ');
|
|
||||||
render_row(status_values($query_cache_size_min_rec_value, $query_cache_size), 'Query cache size ', 'Query cache size ');
|
|
||||||
render_row(status_values($query_cache_limit_min_rec_value, $query_cache_limit), 'Query cache limit ', 'Query cache limit ');
|
|
||||||
render_row(status_values($innodb_lock_wait_timeout_max_rec_value, $innodb_lock_wait_timeout), 'InnoDB lock wait timeout ', 'InnoDB lock wait timeout ');
|
|
||||||
render_row(status_values($thread_cache_size_max_rec_value, $thread_cache_size), 'Thread cache size ', 'Thread cache size ');
|
|
||||||
render_row(status_values($thread_stack_min_rec_value, $thread_stack), 'Thread stack ', 'Thread stack ');
|
|
||||||
render_row(status_values($max_connections_max_rec_value, $max_connections), 'Maximum connections ', 'Maximun connections ');
|
|
||||||
render_row(status_values($key_buffer_size_min_rec_value, $key_buffer_size), 'Key buffer size ', 'Key buffer size ');
|
|
||||||
render_row(status_values($read_buffer_size_min_rec_value, $read_buffer_size), 'Read buffer size ', 'Read buffer size ');
|
|
||||||
render_row(status_values($read_rnd_buffer_size_min_rec_value, $read_rnd_buffer_size), 'Read rnd-buffer size ', 'Read rnd-buffer size ');
|
|
||||||
render_row(status_values($query_cache_min_res_unit_min_rec_value, $query_cache_min_res_unit), 'Query cache min-res-unit ', 'Query cache min-res-unit ');
|
|
||||||
render_row(status_values($innodb_file_per_table_min_rec_value, $innodb_file_per_table), 'InnoDB file per table ', 'InnoDB file per table ');
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__('Tables fragmentation in the Pandora FMS database').'</th></tr>';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
render_row($tables_fragmentation_max_rec_value.'%', 'Tables fragmentation (maximum recommended value)');
|
|
||||||
render_row(number_format($tables_fragmentation, 2).'%', 'Tables fragmentation (current value)');
|
|
||||||
render_row(status_fragmentation_tables($tables_fragmentation_max_rec_value, $tables_fragmentation), 'Table fragmentation status');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS logs dates').'</th></tr>';
|
|
||||||
|
|
||||||
render_row(number_format((get_logs_size($path_server_logs) / 1048576), 3).'M', 'Size server logs (current value)');
|
|
||||||
render_row(get_status_logs($path_server_logs), 'Status server logs');
|
|
||||||
render_row(number_format((get_logs_size($path_err_logs) / 1048576), 3).'M', 'Size error logs (current value)');
|
|
||||||
render_row(get_status_logs($path_err_logs), 'Status error logs');
|
|
||||||
render_row(number_format((get_logs_size($path_console_logs) / 1048576), 3).'M', 'Size console logs (current value)');
|
|
||||||
render_row(get_status_logs($path_console_logs), 'Status console logs');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS Licence Information').'</th></tr>';
|
|
||||||
|
|
||||||
render_row(html_print_textarea('keys[customer_key]', 10, 255, $settings->customer_key, 'style="height:40px; width:450px;"', true), 'Customer key');
|
|
||||||
render_row($license['expiry_date'], 'Expires');
|
|
||||||
render_row($license['limit'].' agents', 'Platform Limit');
|
|
||||||
render_row($license['count'].' agents', 'Current Platform Count');
|
|
||||||
render_row($license['count_enabled'].' agents', 'Current Platform Count (enabled: items)');
|
|
||||||
render_row($license['count_disabled'].' agents', 'Current Platform Count (disabled: items)');
|
|
||||||
render_row($license['license_mode'], 'License Mode');
|
|
||||||
render_row(status_license_params($license['nms']), 'Network Management System');
|
|
||||||
render_row(status_license_params($license['dhpm']), 'Satellite');
|
|
||||||
render_row($license['licensed_to'], 'Licensed to');
|
|
||||||
render_row(license_capacity(), 'Status of agents capacity');
|
|
||||||
render_row(percentage_modules_per_agent(), 'Status of average modules per agent');
|
|
||||||
render_row(interval_average_of_network_modules(), 'Interval average of the network modules');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Status of the attachment folder').'</th></tr>';
|
|
||||||
|
|
||||||
render_row($attachment_total_files, 'Total files in the attached folder');
|
|
||||||
render_row(files_attachment_folder($attachment_total_files), 'Status of the attachment folder');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Information from the tagente_datos table').'</th></tr>';
|
|
||||||
|
|
||||||
render_row($tagente_datos_size, 'Total data in tagente_datos table');
|
|
||||||
render_row(status_tagente_datos($tagente_datos_size), 'Tangente_datos table status');
|
|
||||||
render_row(execution_time(), 'Execution time degradation when executing a count');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Pandora FMS server threads').'</th></tr>';
|
|
||||||
|
|
||||||
render_row($total_server_threads, 'Total server threads');
|
|
||||||
render_row($percentage_threads_ram.'%', 'Percentage of threads used by the RAM');
|
|
||||||
render_row($percentage_threads_cpu.'%', 'Percentage of threads used by the CPU');
|
|
||||||
|
|
||||||
echo "<tr><th style='background-color:#b1b1b1;font-weight:bold;font-style:italic;border-radius:2px;' align=center colspan='2'>".__(' Graphs modules that represent the self-monitoring system').'</th></tr>';
|
|
||||||
|
|
||||||
$server_name = db_get_value_sql('SELECT name FROM tserver WHERE master = 1');
|
|
||||||
$agent_id = db_get_value_sql("SELECT id_agente FROM tagente WHERE nombre = '$server_name'");
|
|
||||||
|
|
||||||
$id_modules = agents_get_modules($agent_id);
|
|
||||||
|
|
||||||
$id_modules = [
|
|
||||||
modules_get_agentmodule_id('Agents_Unknown', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Database Maintenance', $agent_id),
|
|
||||||
modules_get_agentmodule_id('FreeDisk_SpoolDir', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Free_RAM', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Queued_Modules', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Status', $agent_id),
|
|
||||||
modules_get_agentmodule_id('System_Load_AVG', $agent_id),
|
|
||||||
modules_get_agentmodule_id('Execution_time', $agent_id),
|
|
||||||
];
|
|
||||||
|
|
||||||
foreach ($id_modules as $id_module) {
|
|
||||||
$params = [
|
|
||||||
'agent_module_id' => $id_module['id_agente_modulo'],
|
|
||||||
'period' => SECONDS_1MONTH,
|
|
||||||
'date' => time(),
|
|
||||||
'height' => '150',
|
|
||||||
];
|
|
||||||
render_row(grafico_modulo_sparse($params), 'Graph of the '.$id_module['nombre'].' module.');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($console_mode == 0) {
|
|
||||||
echo '</table>';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "<hr color='#b1b1b1' size=1 width=1000 align=left>";
|
|
||||||
|
|
||||||
echo '<span>'.__(
|
|
||||||
'(*) Please check your Pandora Server setup and make sure that the database maintenance daemon is running. It\' is very important to
|
|
||||||
keep the database up-to-date to get the best performance and results in Pandora'
|
|
||||||
).'</span><br><br><br>';
|
|
||||||
|
@ -60,6 +60,10 @@ ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_next` bigint(20) NOT NULL def
|
|||||||
ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
ALTER TABLE `tlocal_component` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tlocal_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tlocal_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
|
|
||||||
|
ALTER TABLE `tlocal_component` MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_next` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_two_tailed` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `tpolicy_modules`
|
-- Table `tpolicy_modules`
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
@ -138,6 +142,10 @@ CREATE TABLE IF NOT EXISTS `tpolicy_modules` (
|
|||||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
||||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
ALTER TABLE `tpolicy_modules` ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tpolicy_modules` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tpolicy_modules` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
|
ALTER TABLE `tpolicy_modules` MODIFY COLUMN `ip_target` varchar(100) NULL DEFAULT '',
|
||||||
|
MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_next` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_two_tailed` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tpolicies`
|
-- Table `tpolicies`
|
||||||
@ -187,6 +195,7 @@ CREATE TABLE IF NOT EXISTS `tpolicy_agents` (
|
|||||||
|
|
||||||
ALTER TABLE `tpolicy_agents` ADD COLUMN `id_node` int(10) NOT NULL DEFAULT '0';
|
ALTER TABLE `tpolicy_agents` ADD COLUMN `id_node` int(10) NOT NULL DEFAULT '0';
|
||||||
ALTER TABLE `tpolicy_agents` ADD UNIQUE(`id_policy`, `id_agent`, `id_node`);
|
ALTER TABLE `tpolicy_agents` ADD UNIQUE(`id_policy`, `id_agent`, `id_node`);
|
||||||
|
ALTER TABLE `tpolicy_agents` DROP INDEX `id_policy`, ADD UNIQUE INDEX `id_policy` (`id_policy`, `id_agent`, `id_node`), DROP INDEX `id_policy_2`;
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `tpolicy_groups`
|
-- Table `tpolicy_groups`
|
||||||
@ -219,14 +228,17 @@ CREATE TABLE IF NOT EXISTS `tdashboard` (
|
|||||||
-- Table `tdatabase`
|
-- Table `tdatabase`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
CREATE TABLE IF NOT EXISTS `tdatabase` (
|
CREATE TABLE IF NOT EXISTS `tdatabase` (
|
||||||
`id` int(10) unsigned NOT NULL auto_increment,
|
`id` INT(10) unsigned NOT NULL auto_increment,
|
||||||
`host` varchar(100) default '',
|
`host` VARCHAR(255) default '',
|
||||||
`os_port` int(4) unsigned default '22',
|
`label` VARCHAR(255) default '',
|
||||||
`os_user` varchar(100) default '',
|
`os_port` INT UNSIGNED NOT NULL DEFAULT 22,
|
||||||
`db_port` int(4) unsigned default '3306',
|
`os_user` VARCHAR(255) default '',
|
||||||
|
`db_port` INT UNSIGNED NOT NULL DEFAULT 3306,
|
||||||
`status` tinyint(1) unsigned default '0',
|
`status` tinyint(1) unsigned default '0',
|
||||||
`action` tinyint(1) unsigned default '0',
|
`action` tinyint(1) unsigned default '0',
|
||||||
`last_error` varchar(255) default '',
|
`ssh_key` TEXT,
|
||||||
|
`ssh_pubkey` TEXT,
|
||||||
|
`last_error` TEXT,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ;
|
||||||
|
|
||||||
@ -374,6 +386,12 @@ ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbhost` text;
|
|||||||
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbport` text;
|
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbport` text;
|
||||||
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbname` text;
|
ALTER TABLE tmetaconsole_setup ADD COLUMN `meta_dbname` text;
|
||||||
|
|
||||||
|
ALTER TABLE `tmetaconsole_setup` MODIFY COLUMN `meta_dbuser` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbpass` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbhost` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbport` text NULL,
|
||||||
|
MODIFY COLUMN `meta_dbname` text NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tprofile_view`
|
-- Table `tprofile_view`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -724,7 +742,7 @@ CREATE TABLE IF NOT EXISTS `treport_content_template` (
|
|||||||
`type` varchar(30) default 'simple_graph',
|
`type` varchar(30) default 'simple_graph',
|
||||||
`period` int(11) NOT NULL default 0,
|
`period` int(11) NOT NULL default 0,
|
||||||
`order` int (11) NOT NULL default 0,
|
`order` int (11) NOT NULL default 0,
|
||||||
`description` mediumtext,
|
`description` mediumtext,
|
||||||
`text_agent` text,
|
`text_agent` text,
|
||||||
`text` TEXT,
|
`text` TEXT,
|
||||||
`external_source` Text,
|
`external_source` Text,
|
||||||
@ -761,23 +779,6 @@ CREATE TABLE IF NOT EXISTS `treport_content_template` (
|
|||||||
PRIMARY KEY(`id_rc`)
|
PRIMARY KEY(`id_rc`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
|
||||||
-- Table `tnews`
|
|
||||||
-- ----------------------------------------------------------------------
|
|
||||||
CREATE TABLE IF NOT EXISTS `tnews` (
|
|
||||||
`id_news` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
||||||
`author` varchar(255) NOT NULL DEFAULT '',
|
|
||||||
`subject` varchar(255) NOT NULL DEFAULT '',
|
|
||||||
`text` TEXT NOT NULL,
|
|
||||||
`timestamp` DATETIME NOT NULL DEFAULT 0,
|
|
||||||
`id_group` int(10) NOT NULL default 0,
|
|
||||||
`modal` tinyint(1) DEFAULT 0,
|
|
||||||
`expire` tinyint(1) DEFAULT 0,
|
|
||||||
`expire_timestamp` DATETIME NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY(`id_news`)
|
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE treport_content_template ADD COLUMN `historical_db` tinyint(1) NOT NULL DEFAULT '0';
|
ALTER TABLE treport_content_template ADD COLUMN `historical_db` tinyint(1) NOT NULL DEFAULT '0';
|
||||||
ALTER TABLE treport_content_template ADD COLUMN `lapse_calc` tinyint(1) default '0';
|
ALTER TABLE treport_content_template ADD COLUMN `lapse_calc` tinyint(1) default '0';
|
||||||
ALTER TABLE treport_content_template ADD COLUMN `lapse` int(11) default '300';
|
ALTER TABLE treport_content_template ADD COLUMN `lapse` int(11) default '300';
|
||||||
@ -796,6 +797,29 @@ ALTER TABLE `treport_content_template` ADD COLUMN `unknown_checks` TINYINT(1) DE
|
|||||||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
ALTER TABLE `treport_content_template` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||||
ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
ALTER TABLE `treport_content_template` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||||
ALTER TABLE `treport_content_template` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
ALTER TABLE `treport_content_template` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '1';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `failover_type` tinyint(1) DEFAULT '1';
|
||||||
|
ALTER TABLE `treport_content_template` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content_template` MODIFY COLUMN `historical_db` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse_calc` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse` int(11) unsigned NOT NULL DEFAULT '300',
|
||||||
|
MODIFY COLUMN `visual_format` tinyint(1) unsigned NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
-- Table `tnews`
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `tnews` (
|
||||||
|
`id_news` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
`author` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`subject` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`text` TEXT NOT NULL,
|
||||||
|
`timestamp` DATETIME NOT NULL DEFAULT 0,
|
||||||
|
`id_group` int(10) NOT NULL default 0,
|
||||||
|
`modal` tinyint(1) DEFAULT 0,
|
||||||
|
`expire` tinyint(1) DEFAULT 0,
|
||||||
|
`expire_timestamp` DATETIME NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY(`id_news`)
|
||||||
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `treport_content_sla_com_temp` (treport_content_sla_combined_template)
|
-- Table `treport_content_sla_com_temp` (treport_content_sla_combined_template)
|
||||||
@ -1007,10 +1031,12 @@ CREATE TABLE IF NOT EXISTS `tmetaconsole_agent` (
|
|||||||
`agent_version` varchar(100) default '',
|
`agent_version` varchar(100) default '',
|
||||||
`ultimo_contacto_remoto` datetime default '1970-01-01 00:00:00',
|
`ultimo_contacto_remoto` datetime default '1970-01-01 00:00:00',
|
||||||
`disabled` tinyint(2) NOT NULL default '0',
|
`disabled` tinyint(2) NOT NULL default '0',
|
||||||
|
`remote` tinyint(1) NOT NULL default '0',
|
||||||
`id_parent` int(10) unsigned default '0',
|
`id_parent` int(10) unsigned default '0',
|
||||||
`custom_id` varchar(255) default '',
|
`custom_id` varchar(255) default '',
|
||||||
`server_name` varchar(100) default '',
|
`server_name` varchar(100) default '',
|
||||||
`cascade_protection` tinyint(2) NOT NULL default '0',
|
`cascade_protection` tinyint(2) NOT NULL default '0',
|
||||||
|
`cascade_protection_module` int(10) unsigned default '0',
|
||||||
`timezone_offset` TINYINT(2) NULL DEFAULT '0' COMMENT 'number of hours of diference with the server timezone' ,
|
`timezone_offset` TINYINT(2) NULL DEFAULT '0' COMMENT 'number of hours of diference with the server timezone' ,
|
||||||
`icon_path` VARCHAR(127) NULL DEFAULT NULL COMMENT 'path in the server to the image of the icon representing the agent' ,
|
`icon_path` VARCHAR(127) NULL DEFAULT NULL COMMENT 'path in the server to the image of the icon representing the agent' ,
|
||||||
`update_gis_data` TINYINT(1) NOT NULL DEFAULT '1' COMMENT 'set it to one to update the position data (altitude, longitude, latitude) when getting information from the agent or to 0 to keep the last value and do not update it' ,
|
`update_gis_data` TINYINT(1) NOT NULL DEFAULT '1' COMMENT 'set it to one to update the position data (altitude, longitude, latitude) when getting information from the agent or to 0 to keep the last value and do not update it' ,
|
||||||
@ -1025,18 +1051,28 @@ CREATE TABLE IF NOT EXISTS `tmetaconsole_agent` (
|
|||||||
`fired_count` bigint(20) NOT NULL default '0',
|
`fired_count` bigint(20) NOT NULL default '0',
|
||||||
`update_module_count` tinyint(1) NOT NULL default '0',
|
`update_module_count` tinyint(1) NOT NULL default '0',
|
||||||
`update_alert_count` tinyint(1) NOT NULL default '0',
|
`update_alert_count` tinyint(1) NOT NULL default '0',
|
||||||
|
`update_secondary_groups` tinyint(1) NOT NULL default '0',
|
||||||
|
`transactional_agent` tinyint(1) NOT NULL default '0',
|
||||||
|
`alias` varchar(600) BINARY NOT NULL default '',
|
||||||
|
`alias_as_name` tinyint(2) NOT NULL default '0',
|
||||||
|
`safe_mode_module` int(10) unsigned NOT NULL default '0',
|
||||||
|
`cps` int NOT NULL default 0,
|
||||||
PRIMARY KEY (`id_agente`),
|
PRIMARY KEY (`id_agente`),
|
||||||
KEY `nombre` (`nombre`(255)),
|
KEY `nombre` (`nombre`(255)),
|
||||||
KEY `direccion` (`direccion`),
|
KEY `direccion` (`direccion`),
|
||||||
|
KEY `id_tagente_idx` (`id_tagente`),
|
||||||
KEY `disabled` (`disabled`),
|
KEY `disabled` (`disabled`),
|
||||||
KEY `id_grupo` (`id_grupo`),
|
KEY `id_grupo` (`id_grupo`),
|
||||||
FOREIGN KEY (`id_tmetaconsole_setup`) REFERENCES tmetaconsole_setup(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (`id_tmetaconsole_setup`) REFERENCES tmetaconsole_setup(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
ALTER TABLE tmetaconsole_agent ADD COLUMN `remote` tinyint(1) NOT NULL default '0';
|
ALTER TABLE `tmetaconsole_agent` ADD COLUMN `remote` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
ALTER TABLE tmetaconsole_agent ADD COLUMN `cascade_protection_module` int(10) default '0';
|
ADD COLUMN `cascade_protection_module` int(10) unsigned NULL DEFAULT '0',
|
||||||
ALTER TABLE tmetaconsole_agent ADD COLUMN `transactional_agent` tinyint(1) NOT NULL default '0';
|
ADD COLUMN `transactional_agent` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
ALTER TABLE tmetaconsole_agent ADD COLUMN `alias` VARCHAR(600) not null DEFAULT '';
|
ADD COLUMN `alias` varchar(600) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
MODIFY COLUMN `update_secondary_groups` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0',
|
||||||
|
ADD INDEX `id_tagente_idx` (`id_tagente`);
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `ttransaction`
|
-- Table `ttransaction`
|
||||||
@ -1093,6 +1129,8 @@ CREATE TABLE IF NOT EXISTS `titem` (
|
|||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `titem` MODIFY COLUMN `source_data` varchar(250) NULL DEFAULT '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmap`
|
-- Table `tmap`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1119,7 +1157,6 @@ CREATE TABLE IF NOT EXISTS `tmap` (
|
|||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `trel_item`
|
-- Table `trel_item`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1137,6 +1174,10 @@ CREATE TABLE IF NOT EXISTS `trel_item` (
|
|||||||
PRIMARY KEY(`id`)
|
PRIMARY KEY(`id`)
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `trel_item` MODIFY COLUMN `id_map` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `id_parent_source_data` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `id_child_source_data` int(10) unsigned NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_templates`
|
-- Table `talert_templates`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1160,6 +1201,11 @@ ALTER TABLE talert_snmp ADD COLUMN `al_field12` TEXT NOT NULL DEFAULT "";
|
|||||||
ALTER TABLE talert_snmp ADD COLUMN `al_field13` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_snmp ADD COLUMN `al_field13` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_snmp ADD COLUMN `al_field14` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_snmp ADD COLUMN `al_field14` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_snmp ADD COLUMN `al_field15` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_snmp ADD COLUMN `al_field15` TEXT NOT NULL DEFAULT "";
|
||||||
|
ALTER TABLE `talert_snmp` MODIFY COLUMN `al_field11` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field12` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field13` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field14` text NOT NULL,
|
||||||
|
MODIFY COLUMN `al_field15` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_snmp_action`
|
-- Table `talert_snmp_action`
|
||||||
@ -1174,6 +1220,7 @@ ALTER TABLE talert_snmp_action ADD COLUMN `al_field15` TEXT NOT NULL DEFAULT "";
|
|||||||
-- Table `tserver`
|
-- Table `tserver`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
ALTER TABLE tserver ADD COLUMN `server_keepalive` int(11) DEFAULT 0;
|
ALTER TABLE tserver ADD COLUMN `server_keepalive` int(11) DEFAULT 0;
|
||||||
|
ALTER TABLE `tserver` MODIFY COLUMN `server_keepalive` int(11) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Table `tagente_estado`
|
-- Table `tagente_estado`
|
||||||
@ -1185,6 +1232,11 @@ ALTER TABLE tagente_estado ADD COLUMN last_unknown_update bigint(20) NOT NULL de
|
|||||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
ALTER TABLE `tagente_estado` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
||||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
ALTER TABLE `tagente_estado` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
||||||
ALTER TABLE `tagente_estado` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
ALTER TABLE `tagente_estado` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
||||||
|
ALTER TABLE `tagente_estado` MODIFY COLUMN `datos` mediumtext NOT NULL,
|
||||||
|
MODIFY COLUMN `known_status` tinyint(4) NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `last_known_status` tinyint(4) NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `last_dynamic_update` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `last_unknown_update` bigint(20) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_actions`
|
-- Table `talert_actions`
|
||||||
@ -1208,6 +1260,11 @@ ALTER TABLE talert_actions ADD COLUMN `field12_recovery` TEXT NOT NULL DEFAULT "
|
|||||||
ALTER TABLE talert_actions ADD COLUMN `field13_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field13_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN `field14_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field14_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
|
ALTER TABLE `talert_actions` MODIFY COLUMN `field11` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field12` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field13` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field14` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field15` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `talert_commands`
|
-- Table `talert_commands`
|
||||||
@ -1219,15 +1276,14 @@ ALTER TABLE `talert_commands` ADD COLUMN `fields_hidden` text;
|
|||||||
|
|
||||||
UPDATE `talert_actions` SET `field4` = 'text/html', `field4_recovery` = 'text/html' WHERE id = 1;
|
UPDATE `talert_actions` SET `field4` = 'text/html', `field4_recovery` = 'text/html' WHERE id = 1;
|
||||||
|
|
||||||
|
DELETE FROM `talert_commands` WHERE `id` = 11;
|
||||||
|
|
||||||
|
ALTER TABLE `talert_commands` MODIFY COLUMN `id_group` mediumint(8) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmap`
|
-- Table `tmap`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tmap MODIFY `id_user` varchar(128);
|
ALTER TABLE `tmap` MODIFY COLUMN `id_user` varchar(250) NOT NULL DEFAULT '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
|
||||||
-- Table `titem`
|
|
||||||
-- ---------------------------------------------------------------------
|
|
||||||
ALTER TABLE titem MODIFY `source_data` int(10) unsigned;
|
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tconfig`
|
-- Table `tconfig`
|
||||||
@ -1235,14 +1291,39 @@ ALTER TABLE titem MODIFY `source_data` int(10) unsigned;
|
|||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 28);
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 32);
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
||||||
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
||||||
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '735');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '739');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
||||||
|
UPDATE `tconfig` SET `value` = 'mini_severity,evento,id_agente,estado,timestamp' WHERE `token` LIKE 'event_fields';
|
||||||
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_api_password';
|
||||||
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_inventory';
|
||||||
|
DELETE FROM `tconfig` WHERE `token` LIKE 'integria_url';
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_user', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_hostname', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_api_pass', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('integria_req_timeout', 5);
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('incident_content', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_group', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_criticity', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_creator', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_default_owner', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_type', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_status', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_title', '');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_content', '');
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tconfig_os`
|
-- Table `tconfig_os`
|
||||||
@ -1278,6 +1359,8 @@ ALTER TABLE tevent_filter ADD COLUMN `user_comment` text NOT NULL;
|
|||||||
ALTER TABLE tevent_filter ADD COLUMN `source` tinytext NOT NULL;
|
ALTER TABLE tevent_filter ADD COLUMN `source` tinytext NOT NULL;
|
||||||
ALTER TABLE tevent_filter ADD COLUMN `id_extra` tinytext NOT NULL;
|
ALTER TABLE tevent_filter ADD COLUMN `id_extra` tinytext NOT NULL;
|
||||||
ALTER TABLE tevent_filter ADD COLUMN id_source_event int(10);
|
ALTER TABLE tevent_filter ADD COLUMN id_source_event int(10);
|
||||||
|
ALTER TABLE `tevent_filter` MODIFY COLUMN `user_comment` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tusuario`
|
-- Table `tusuario`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1292,7 +1375,11 @@ ALTER TABLE `tusuario` ADD COLUMN `default_custom_view` int(10) unsigned NULL de
|
|||||||
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_user` VARCHAR(60);
|
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_user` VARCHAR(60);
|
||||||
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_pass` VARCHAR(45);
|
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_pass` VARCHAR(45);
|
||||||
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_enabled` TINYINT(1);
|
ALTER TABLE `tusuario` ADD COLUMN `ehorus_user_level_enabled` TINYINT(1);
|
||||||
|
ALTER TABLE `tusuario` MODIFY COLUMN `default_event_filter` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
ADD INDEX `fk_filter_id` (`id_filter`),
|
||||||
|
ADD CONSTRAINT `fk_filter_id` FOREIGN KEY `fk_filter_id` (`id_filter`) REFERENCES `tevent_filter` (`id_filter`) ON DELETE SET NULL ON UPDATE RESTRICT,
|
||||||
|
DROP FOREIGN KEY `fk_id_filter`,
|
||||||
|
DROP INDEX `fk_id_filter`;
|
||||||
|
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1303,14 +1390,23 @@ ALTER TABLE tagente_modulo ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned d
|
|||||||
ALTER TABLE tagente_modulo ADD COLUMN `parent_module_id` int(10) unsigned NOT NULL default 0;
|
ALTER TABLE tagente_modulo ADD COLUMN `parent_module_id` int(10) unsigned NOT NULL default 0;
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `cps` int NOT NULL default 0;
|
ALTER TABLE `tagente_modulo` ADD COLUMN `cps` int NOT NULL default 0;
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_normal` int(4) unsigned default '0';
|
ALTER TABLE `tagente_modulo` DROP COLUMN `ff_normal`,
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_warning` int(4) unsigned default '0';
|
DROP COLUMN `ff_warning`,
|
||||||
ALTER TABLE `tagente_modulo` ADD COLUMN `ff_critical` int(4) unsigned default '0';
|
DROP COLUMN `ff_critical`,
|
||||||
|
MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_next` bigint(20) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `dynamic_two_tailed` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagente_datos`
|
-- Table `tagente_datos`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tagente_datos MODIFY `datos` double(22,5);
|
ALTER TABLE tagente_datos MODIFY `datos` double(22,5);
|
||||||
|
ALTER TABLE `tagente_datos` DROP INDEX `data_index1`, ADD INDEX `data_index1` (`id_agente_modulo`, `utimestamp`);
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tagente_datos_string`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `tagente_datos_string` MODIFY COLUMN `datos` mediumtext NOT NULL, DROP INDEX `data_string_index_1`, ADD INDEX `data_string_index_1` (`id_agente_modulo`, `utimestamp`);
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagente_datos_inc`
|
-- Table `tagente_datos_inc`
|
||||||
@ -1326,6 +1422,7 @@ ALTER TABLE tnetwork_component ADD COLUMN `dynamic_min` int(4) default '0';
|
|||||||
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_next` bigint(20) NOT NULL default '0';
|
||||||
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
ALTER TABLE tnetwork_component ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE `tnetwork_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
ALTER TABLE `tnetwork_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0';
|
||||||
|
ALTER TABLE `tnetwork_component` MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagente`
|
-- Table `tagente`
|
||||||
@ -1340,6 +1437,12 @@ ALTER TABLE `tagente` ADD COLUMN `cps` int NOT NULL default 0;
|
|||||||
|
|
||||||
UPDATE tagente SET tagente.alias = tagente.nombre;
|
UPDATE tagente SET tagente.alias = tagente.nombre;
|
||||||
|
|
||||||
|
ALTER TABLE `tagente` MODIFY COLUMN `remote` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `cascade_protection_module` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `update_secondary_groups` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `alias` varchar(600) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||||
|
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tservice`
|
-- Table `tservice`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1359,6 +1462,8 @@ ALTER TABLE tlayout MODIFY `name` varchar(600) NOT NULL;
|
|||||||
|
|
||||||
UPDATE tlayout SET is_favourite = 1 WHERE name REGEXP '^(' OR name REGEXP '^\\[';
|
UPDATE tlayout SET is_favourite = 1 WHERE name REGEXP '^(' OR name REGEXP '^\\[';
|
||||||
|
|
||||||
|
ALTER TABLE `tlayout` MODIFY COLUMN `is_favourite` int(10) unsigned NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tlayout_data`
|
-- Table `tlayout_data`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1377,6 +1482,13 @@ ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_status_as_service_warning`
|
|||||||
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0;
|
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0;
|
||||||
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_node_id` INT(10) NOT NULL default 0;
|
ALTER TABLE `tlayout_data` ADD COLUMN `linked_layout_node_id` INT(10) NOT NULL default 0;
|
||||||
ALTER TABLE `tlayout_data` ADD COLUMN `cache_expiration` INTEGER UNSIGNED NOT NULL DEFAULT 0;
|
ALTER TABLE `tlayout_data` ADD COLUMN `cache_expiration` INTEGER UNSIGNED NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE `tlayout_data` MODIFY COLUMN `type_graph` varchar(50) NOT NULL DEFAULT 'area',
|
||||||
|
MODIFY COLUMN `label_position` varchar(50) NOT NULL DEFAULT 'down',
|
||||||
|
MODIFY COLUMN `linked_layout_node_id` int(10) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `linked_layout_status_type` enum('default','weight','service') NULL DEFAULT 'default',
|
||||||
|
MODIFY COLUMN `element_group` int(10) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_warning` float(20,3) NOT NULL DEFAULT '0.000',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_critical` float(20,3) NOT NULL DEFAULT '0.000';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tagent_custom_fields`
|
-- Table `tagent_custom_fields`
|
||||||
@ -1398,6 +1510,7 @@ ALTER TABLE tgraph ADD COLUMN `summatory_series` tinyint(1) UNSIGNED NOT NULL de
|
|||||||
ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
||||||
ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0';
|
||||||
ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '0';
|
ALTER TABLE tgraph ADD COLUMN `fullscale` tinyint(1) UNSIGNED NOT NULL default '0';
|
||||||
|
ALTER TABLE `tgraph` MODIFY COLUMN `percentil` tinyint(1) unsigned NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tnetflow_filter`
|
-- Table `tnetflow_filter`
|
||||||
@ -1439,11 +1552,23 @@ ALTER TABLE `treport_content` ADD COLUMN `unknown_checks` TINYINT(1) DEFAULT '1'
|
|||||||
ALTER TABLE `treport_content` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
ALTER TABLE `treport_content` ADD COLUMN `agent_max_value` TINYINT(1) DEFAULT '1';
|
||||||
ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
ALTER TABLE `treport_content` ADD COLUMN `agent_min_value` TINYINT(1) DEFAULT '1';
|
||||||
ALTER TABLE `treport_content` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
ALTER TABLE `treport_content` ADD COLUMN `current_month` TINYINT(1) DEFAULT '1';
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `failover_mode` tinyint(1) DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `failover_type` tinyint(1) DEFAULT '0';
|
||||||
|
ALTER table `treport_content` MODIFY COLUMN `name` varchar(300) NULL;
|
||||||
|
ALTER TABLE `treport_content` ADD COLUMN `uncompressed_module` TINYINT DEFAULT '0';
|
||||||
|
ALTER TABLE `treport_content` MODIFY COLUMN `historical_db` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse_calc` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `lapse` int(11) unsigned NOT NULL DEFAULT '300',
|
||||||
|
MODIFY COLUMN `visual_format` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `failover_mode` tinyint(1) NULL DEFAULT '1',
|
||||||
|
MODIFY COLUMN `failover_type` tinyint(1) NULL DEFAULT '1';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tmodule_relationship`
|
-- Table `tmodule_relationship`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tmodule_relationship ADD COLUMN `id_server` varchar(100) NOT NULL DEFAULT '';
|
ALTER TABLE tmodule_relationship ADD COLUMN `id_server` varchar(100) NOT NULL DEFAULT '';
|
||||||
|
ALTER TABLE `tmodule_relationship` ADD COLUMN `type` ENUM('direct', 'failover') DEFAULT 'direct';
|
||||||
|
ALTER TABLE `tmodule_relationship` MODIFY COLUMN `id_server` varchar(100) NOT NULL DEFAULT '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tpolicy_module`
|
-- Table `tpolicy_module`
|
||||||
@ -1474,6 +1599,14 @@ ALTER TABLE trecon_task ADD `wmi_enabled` tinyint(1) unsigned DEFAULT '0';
|
|||||||
ALTER TABLE trecon_task ADD `auth_strings` text;
|
ALTER TABLE trecon_task ADD `auth_strings` text;
|
||||||
ALTER TABLE trecon_task ADD `autoconfiguration_enabled` tinyint(1) unsigned default '0';
|
ALTER TABLE trecon_task ADD `autoconfiguration_enabled` tinyint(1) unsigned default '0';
|
||||||
ALTER TABLE trecon_task ADD `summary` text;
|
ALTER TABLE trecon_task ADD `summary` text;
|
||||||
|
ALTER TABLE `trecon_task` ADD COLUMN `type` int(11) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `snmp_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `vlan_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `wmi_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `auth_strings` text NULL,
|
||||||
|
MODIFY COLUMN `autoconfiguration_enabled` tinyint(1) unsigned NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `summary` text NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `twidget` AND Table `twidget_dashboard`
|
-- Table `twidget` AND Table `twidget_dashboard`
|
||||||
@ -1586,12 +1719,14 @@ ALTER TABLE tserver_export MODIFY `name` varchar(600) BINARY NOT NULL default ''
|
|||||||
|
|
||||||
ALTER TABLE tgraph_source ADD COLUMN id_server int(11) UNSIGNED NOT NULL default 0;
|
ALTER TABLE tgraph_source ADD COLUMN id_server int(11) UNSIGNED NOT NULL default 0;
|
||||||
ALTER TABLE tgraph_source ADD COLUMN `field_order` int(10) NOT NULL default 0;
|
ALTER TABLE tgraph_source ADD COLUMN `field_order` int(10) NOT NULL default 0;
|
||||||
|
ALTER TABLE `tgraph_source` MODIFY COLUMN `id_server` int(11) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `field_order` int(10) NULL DEFAULT '0';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tserver_export_data`
|
-- Table `tserver_export_data`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
|
|
||||||
ALTER TABLE tserver_export_data MODIFY `module_name` varchar(600) BINARY NOT NULL default '';
|
ALTER TABLE tserver_export_data MODIFY `module_name` varchar(600) NOT NULL default '';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tserver`
|
-- Table `tserver`
|
||||||
@ -1613,7 +1748,12 @@ INSERT INTO tmodule VALUES (8, 'Wux module');
|
|||||||
-- Table `ttipo_modulo`
|
-- Table `ttipo_modulo`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
|
|
||||||
INSERT INTO ttipo_modulo VALUES (25,'web_analysis', 8, 'Web analysis data', 'module-wux.png');
|
INSERT INTO `ttipo_modulo` VALUES
|
||||||
|
(25,'web_analysis', 8, 'Web analysis data', 'module-wux.png'),
|
||||||
|
(34,'remote_cmd', 10, 'Remote execution, numeric data', 'mod_remote_cmd.png'),
|
||||||
|
(35,'remote_cmd_proc', 10, 'Remote execution, boolean data', 'mod_remote_cmd_proc.png'),
|
||||||
|
(36,'remote_cmd_string', 10, 'Remote execution, alphanumeric data', 'mod_remote_cmd_string.png'),
|
||||||
|
(37,'remote_cmd_inc', 10, 'Remote execution, incremental data', 'mod_remote_cmd_inc.png');
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tdashboard`
|
-- Table `tdashboard`
|
||||||
@ -1866,10 +2006,16 @@ CREATE TABLE IF NOT EXISTS `tlayout_template_data` (
|
|||||||
`linked_layout_status_as_service_warning` FLOAT(20, 3) NOT NULL default 0,
|
`linked_layout_status_as_service_warning` FLOAT(20, 3) NOT NULL default 0,
|
||||||
`linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0,
|
`linked_layout_status_as_service_critical` FLOAT(20, 3) NOT NULL default 0,
|
||||||
`linked_layout_node_id` INT(10) NOT NULL default 0,
|
`linked_layout_node_id` INT(10) NOT NULL default 0,
|
||||||
|
`cache_expiration` INTEGER UNSIGNED NOT NULL default 0,
|
||||||
PRIMARY KEY(`id`),
|
PRIMARY KEY(`id`),
|
||||||
FOREIGN KEY (`id_layout_template`) REFERENCES tlayout_template(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
FOREIGN KEY (`id_layout_template`) REFERENCES tlayout_template(`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
ALTER TABLE `tlayout_template_data` MODIFY COLUMN `linked_layout_node_id` int(10) NOT NULL DEFAULT '0',
|
||||||
|
MODIFY COLUMN `linked_layout_status_type` enum('default','weight','service') NULL DEFAULT 'default',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_warning` float(20,3) NOT NULL DEFAULT '0.000',
|
||||||
|
MODIFY COLUMN `linked_layout_status_as_service_critical` float(20,3) NOT NULL DEFAULT '0.000';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tlog_graph_models`
|
-- Table `tlog_graph_models`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1915,6 +2061,7 @@ INSERT INTO tlog_graph_models VALUES (7, 'Users login',
|
|||||||
|
|
||||||
ALTER TABLE `treport` ADD COLUMN `hidden` tinyint(1) NOT NULL DEFAULT 0;
|
ALTER TABLE `treport` ADD COLUMN `hidden` tinyint(1) NOT NULL DEFAULT 0;
|
||||||
ALTER TABLE `treport` ADD COLUMN `orientation` varchar(25) NOT NULL default 'vertical';
|
ALTER TABLE `treport` ADD COLUMN `orientation` varchar(25) NOT NULL default 'vertical';
|
||||||
|
ALTER TABLE `treport` MODIFY COLUMN `hidden` tinyint(1) NULL DEFAULT '0' AFTER `non_interactive`;
|
||||||
|
|
||||||
ALTER TABLE `trecon_task` ADD COLUMN `snmp_version` varchar(5) NOT NULL default '1';
|
ALTER TABLE `trecon_task` ADD COLUMN `snmp_version` varchar(5) NOT NULL default '1';
|
||||||
ALTER TABLE `trecon_task` ADD COLUMN `snmp_auth_user` varchar(255) NOT NULL default '';
|
ALTER TABLE `trecon_task` ADD COLUMN `snmp_auth_user` varchar(255) NOT NULL default '';
|
||||||
@ -2051,7 +2198,8 @@ ALTER TABLE `tmensajes` ADD COLUMN `citicity` INT(10) UNSIGNED DEFAULT '0';
|
|||||||
ALTER TABLE `tmensajes` ADD COLUMN `id_source` BIGINT(20) UNSIGNED NOT NULL;
|
ALTER TABLE `tmensajes` ADD COLUMN `id_source` BIGINT(20) UNSIGNED NOT NULL;
|
||||||
ALTER TABLE `tmensajes` ADD COLUMN `subtype` VARCHAR(255) DEFAULT '';
|
ALTER TABLE `tmensajes` ADD COLUMN `subtype` VARCHAR(255) DEFAULT '';
|
||||||
ALTER TABLE `tmensajes` ADD CONSTRAINT `tsource_fk` FOREIGN KEY (`id_source`) REFERENCES `tnotification_source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
ALTER TABLE `tmensajes` ADD CONSTRAINT `tsource_fk` FOREIGN KEY (`id_source`) REFERENCES `tnotification_source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
ALTER TABLE `tmensajes` DROP COLUMN `id_usuario_destino`,
|
||||||
|
ADD UNIQUE INDEX `id_mensaje` (`id_mensaje`);
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Table `tnotification_user`
|
-- Table `tnotification_user`
|
||||||
@ -2153,7 +2301,7 @@ ALTER TABLE tagent_custom_fields ADD COLUMN `combo_values` VARCHAR(255) DEFAULT
|
|||||||
-- Add column in table `tnetflow_filter`
|
-- Add column in table `tnetflow_filter`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
ALTER TABLE `tnetflow_filter` DROP COLUMN `output`;
|
ALTER TABLE `tnetflow_filter` DROP COLUMN `output`;
|
||||||
|
ALTER TABLE `tnetflow_filter` MODIFY COLUMN `router_ip` text NOT NULL;
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Update table `tuser_task`
|
-- Update table `tuser_task`
|
||||||
@ -2172,6 +2320,17 @@ INSERT INTO `tnews` (`id_news`, `author`, `subject`, `text`, `timestamp`) VALUES
|
|||||||
|
|
||||||
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
||||||
|
|
||||||
|
ALTER TABLE `talert_templates` MODIFY COLUMN `field11` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field12` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field13` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field14` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field15` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field11_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field12_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field13_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field14_recovery` text NOT NULL,
|
||||||
|
MODIFY COLUMN `field15_recovery` text NOT NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tvisual_console_items_cache`
|
-- Table `tvisual_console_items_cache`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -2193,3 +2352,82 @@ CREATE TABLE `tvisual_console_elements_cache` (
|
|||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
) engine=InnoDB DEFAULT CHARSET=utf8;
|
) engine=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tcredential_store`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `tcredential_store` (
|
||||||
|
`identifier` varchar(100) NOT NULL,
|
||||||
|
`id_group` mediumint(4) unsigned NOT NULL DEFAULT 0,
|
||||||
|
`product` enum('CUSTOM', 'AWS', 'AZURE', 'GOOGLE') default 'CUSTOM',
|
||||||
|
`username` text,
|
||||||
|
`password` text,
|
||||||
|
`extra_1` text,
|
||||||
|
`extra_2` text,
|
||||||
|
PRIMARY KEY (`identifier`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `treport_content_sla_combined`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `treport_content_sla_combined` ADD `id_agent_module_failover` int(10) unsigned NOT NULL;
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tagent_repository`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
CREATE TABLE `tagent_repository` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`id_os` INT(10) UNSIGNED DEFAULT 0,
|
||||||
|
`arch` ENUM('x64', 'x86') DEFAULT 'x64',
|
||||||
|
`version` VARCHAR(10) DEFAULT '',
|
||||||
|
`path` text,
|
||||||
|
`uploaded_by` VARCHAR(100) DEFAULT '',
|
||||||
|
`uploaded` bigint(20) NOT NULL DEFAULT 0 COMMENT "When it was uploaded",
|
||||||
|
`last_err` text,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY (`id_os`) REFERENCES `tconfig_os`(`id_os`)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
-- Table `tdeployment_hosts`
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
CREATE TABLE `tdeployment_hosts` (
|
||||||
|
`id` SERIAL,
|
||||||
|
`id_cs` VARCHAR(100),
|
||||||
|
`ip` VARCHAR(100) NOT NULL UNIQUE,
|
||||||
|
`id_os` INT(10) UNSIGNED DEFAULT 0,
|
||||||
|
`os_version` VARCHAR(100) DEFAULT '' COMMENT "OS version in STR format",
|
||||||
|
`arch` ENUM('x64', 'x86') DEFAULT 'x64',
|
||||||
|
`current_agent_version` VARCHAR(100) DEFAULT '' COMMENT "String latest installed agent",
|
||||||
|
`target_agent_version_id` BIGINT UNSIGNED,
|
||||||
|
`deployed` bigint(20) NOT NULL DEFAULT 0 COMMENT "When it was deployed",
|
||||||
|
`server_ip` varchar(100) default NULL COMMENT "Where to point target agent",
|
||||||
|
`last_err` text,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY (`id_cs`) REFERENCES `tcredential_store`(`identifier`)
|
||||||
|
ON UPDATE CASCADE ON DELETE SET NULL,
|
||||||
|
FOREIGN KEY (`id_os`) REFERENCES `tconfig_os`(`id_os`)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`target_agent_version_id`) REFERENCES `tagent_repository`(`id`)
|
||||||
|
ON UPDATE CASCADE ON DELETE SET NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `trecon_script`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `trecon_script` ADD COLUMN `type` int(11) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tusuario_perfil`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `tusuario_perfil` MODIFY COLUMN `no_hierarchy` tinyint(1) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
|
|
||||||
|
-- Extra tnetwork_component
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('N. total processes','Number of running processes in a Windows system.',11,34,0,0,300,0,'tasklist /NH | find /c /v ""','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Free space in C:','Free space available in C:',11,34,0,0,300,0,'powershell $obj=(Get-WmiObject -class "Win32_LogicalDisk" -namespace "root\CIMV2") ; $obj.FreeSpace[0] * 100 /$obj.Size[0]','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','windows','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux uptime','System uptime',43,36,0,0,300,0,'uptime |sed s/us\.*$//g | sed s/,\.*$//g','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux processes','Running processes',43,34,0,0,300,0,'ps elf | wc -l','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux system load','Current load (5 min)',43,34,0,0,300,0,'uptime | awk '{print $(NF-1)}' | tr -d ','','','','',6,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available memory percent','Available memory %',43,34,0,0,300,0,'free | grep Mem | awk '{print $NF/$2 * 100}'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'',0.00,0.00,'',0,'','linux','',0,0,0.000000000000000,'%','nowizard','','','','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
INSERT INTO `tnetwork_component` (`name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `max_critical`, `str_warning`, `min_ff_event`, `min_critical`, `custom_string_2`, `str_critical`, `custom_integer_1`, `custom_string_1`, `post_process`, `custom_string_3`, `wizard_level`, `custom_integer_2`, `critical_instructions`, `unit`, `unknown_instructions`, `macros`, `warning_inverse`, `warning_instructions`, `tags`, `critical_inverse`, `module_macros`, `id_category`, `min_ff_event_warning`, `disabled_types_event`, `ff_type`, `min_ff_event_normal`, `dynamic_interval`, `min_ff_event_critical`, `dynamic_min`, `each_ff`, `dynamic_two_tailed`, `dynamic_max`, `dynamic_next`) VALUES ('Linux available disk /','Available free space in mountpoint /',43,34,0,0,300,0,'df / | tail -n +2 | awk '{print $(NF-1)}' | tr -d '%'','','','',4,2,0,'','','',0,0,1,0.00,0.00,'0.00',0.00,0.00,'',0,'','inherited','',0,0,0.000000000000000,'','nowizard','','nowizard','0','',0,0,0,'','{\"going_unknown\":1}','',0,0,0,0,0,0,0,0,0,0);
|
||||||
|
@ -105,7 +105,7 @@ if (check_login()) {
|
|||||||
|
|
||||||
echo __(
|
echo __(
|
||||||
"This is the online help for %s console. This help is -in best cases- just a brief contextual help, not intented to teach you how to use %s. Official documentation of %s is about 900 pages, and you probably don't need to read it entirely, but sure, you should download it and take a look.<br><br>
|
"This is the online help for %s console. This help is -in best cases- just a brief contextual help, not intented to teach you how to use %s. Official documentation of %s is about 900 pages, and you probably don't need to read it entirely, but sure, you should download it and take a look.<br><br>
|
||||||
<a href='%s' target='_blanck' style='color: #82b92e; font-size: 10pt; text-decoration: underline;'>Download the official documentation</a>",
|
<a href='%s' target='_blanck' class='pandora_green_text' style='font-size: 10pt; text-decoration: underline;'>Download the official documentation</a>",
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
get_product_name(),
|
get_product_name(),
|
||||||
|
@ -1,15 +1,25 @@
|
|||||||
<?php
|
<?php
|
||||||
// Pandora FMS - http://pandorafms.com
|
/**
|
||||||
// ==================================================
|
* Manage database HA cluster.
|
||||||
// Copyright (c) 2005-2018 Artica Soluciones Tecnologicas
|
*
|
||||||
// Please see http://pandorafms.org for full contribution list
|
* @category Manager
|
||||||
// This program is free software; you can redistribute it and/or
|
* @package Pandora FMS
|
||||||
// modify it under the terms of the GNU General Public License
|
* @subpackage Database HA cluster
|
||||||
// as published by the Free Software Foundation; version 2
|
* @version 1.0.0
|
||||||
// This program is distributed in the hope that it will be useful,
|
* @license See below
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
*
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* ______ ___ _______ _______ ________
|
||||||
// GNU General Public License for more details.
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2007-2012 Artica Soluciones Tecnologicas, http://www.artica.es
|
||||||
|
* This code is NOT free software. This code is NOT licenced under GPL2 licence
|
||||||
|
* You cannnot redistribute it without written permission of copyright holder.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
@ -24,8 +34,6 @@ if (! check_acl($config['id_user'], 0, 'PM')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ui_require_css_file('firts_task');
|
ui_require_css_file('firts_task');
|
||||||
?>
|
|
||||||
<?php
|
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clusters defined yet.') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clusters defined yet.') ]);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@ -44,8 +52,9 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clus
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if (check_acl($config['id_user'], 0, 'AW')) {
|
if (check_acl($config['id_user'], 0, 'PM')) {
|
||||||
echo "<div id='create_master_window'></div>";
|
echo "<div id='create_master_window'></div>";
|
||||||
|
echo "<div id='msg'></div>";
|
||||||
?>
|
?>
|
||||||
<input style="margin-bottom:20px;" onclick="show_create_ha_cluster();" type="submit" class="button_task" value="<?php echo __('Add new node'); ?>" />
|
<input style="margin-bottom:20px;" onclick="show_create_ha_cluster();" type="submit" class="button_task" value="<?php echo __('Add new node'); ?>" />
|
||||||
<?php
|
<?php
|
||||||
@ -53,35 +62,3 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clus
|
|||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
|
||||||
function show_create_ha_cluster() {
|
|
||||||
var params = {};
|
|
||||||
params["dialog_master"] = 1;
|
|
||||||
params["page"] = "enterprise/include/ajax/HA_cluster.ajax";
|
|
||||||
jQuery.ajax ({
|
|
||||||
data: params,
|
|
||||||
dataType: "html",
|
|
||||||
type: "POST",
|
|
||||||
url: "ajax.php",
|
|
||||||
success: function (data) {
|
|
||||||
$("#create_master_window").dialog ({
|
|
||||||
title: '<?php echo __('Add master node'); ?>',
|
|
||||||
resizable: true,
|
|
||||||
draggable: true,
|
|
||||||
modal: true,
|
|
||||||
close: function() {
|
|
||||||
|
|
||||||
},
|
|
||||||
overlay: {
|
|
||||||
opacity: 0.5,
|
|
||||||
background: "black"
|
|
||||||
},
|
|
||||||
width: 800,
|
|
||||||
height: 600
|
|
||||||
}).empty()
|
|
||||||
.html(data)
|
|
||||||
.show ();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
@ -33,7 +33,7 @@ ui_require_css_file('firts_task');
|
|||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<form action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" method="post">
|
<form action="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor" method="post">
|
||||||
<input type="submit" class="button_task" value="<?php echo __('Create Planned Downtime'); ?>" />
|
<input type="submit" class="button_task" value="<?php echo __('Create Planned Downtime'); ?>" />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -35,6 +35,7 @@ ui_require_css_file('firts_task');
|
|||||||
</p>
|
</p>
|
||||||
<form action="index.php?sec=gservers&sec2=godmode/servers/discovery" method="post">
|
<form action="index.php?sec=gservers&sec2=godmode/servers/discovery" method="post">
|
||||||
<input type="submit" class="button_task" value="<?php echo __('Discover'); ?>" />
|
<input type="submit" class="button_task" value="<?php echo __('Discover'); ?>" />
|
||||||
|
<input type="hidden" name="discovery_hint" value="1"/>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -328,22 +328,40 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
$header_autorefresh_counter .= $autorefresh_additional;
|
$header_autorefresh_counter .= $autorefresh_additional;
|
||||||
$header_autorefresh_counter .= '</div>';
|
$header_autorefresh_counter .= '</div>';
|
||||||
|
|
||||||
|
// Button for feedback pandora.
|
||||||
|
if (enterprise_installed()) {
|
||||||
|
$header_feedback = '<div id="feedback-icon-header">';
|
||||||
|
$header_feedback .= '<div id="modal-feedback-form" style="display:none;"></div>';
|
||||||
|
$header_feedback .= '<div id="msg-header" style="display: none"></div>';
|
||||||
|
$header_feedback .= html_print_image(
|
||||||
|
'/images/feedback-header.png',
|
||||||
|
true,
|
||||||
|
[
|
||||||
|
'title' => __('Feedback'),
|
||||||
|
'id' => 'feedback-header',
|
||||||
|
'alt' => __('Feedback'),
|
||||||
|
'style' => 'cursor: pointer;',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$header_feedback .= '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Support.
|
// Support.
|
||||||
if (defined('PANDORA_ENTERPRISE')) {
|
if (enterprise_installed()) {
|
||||||
$header_support_link = 'https://support.artica.es/';
|
$header_support_link = $config['custom_support_url'];
|
||||||
} else {
|
} else {
|
||||||
$header_support_link = 'https://pandorafms.com/forums/';
|
$header_support_link = 'https://pandorafms.com/forums/';
|
||||||
}
|
}
|
||||||
|
|
||||||
$header_support = '<div id="header_support">';
|
$header_support = '<div id="header_support">';
|
||||||
$header_support .= '<a href="'.$header_support_link.'" target="_blank">';
|
$header_support .= '<a href="'.ui_get_full_external_url($header_support_link).'" target="_blank">';
|
||||||
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
|
$header_support .= html_print_image('/images/header_support.png', true, ['title' => __('Go to support'), 'class' => 'bot', 'alt' => 'user']);
|
||||||
$header_support .= '</a></div>';
|
$header_support .= '</a></div>';
|
||||||
|
|
||||||
// Documentation.
|
// Documentation.
|
||||||
$header_docu = '<div id="header_docu">';
|
$header_docu = '<div id="header_docu">';
|
||||||
$header_docu .= '<a href="https://wiki.pandorafms.com/index.php?title=Main_Page" target="_blank">';
|
$header_docu .= '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">';
|
||||||
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
|
$header_docu .= html_print_image('/images/header_docu.png', true, ['title' => __('Go to documentation'), 'class' => 'bot', 'alt' => 'user']);
|
||||||
$header_docu .= '</a></div>';
|
$header_docu .= '</a></div>';
|
||||||
|
|
||||||
@ -388,9 +406,9 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
|
|
||||||
echo '<div class="header_left"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$config['custom_subtitle_header'].'</span></div>
|
echo '<div class="header_left"><span class="header_title">'.$config['custom_title_header'].'</span><span class="header_subtitle">'.$config['custom_subtitle_header'].'</span></div>
|
||||||
<div class="header_center">'.$header_searchbar.'</div>
|
<div class="header_center">'.$header_searchbar.'</div>
|
||||||
<div class="header_right">'.$header_chat, $header_autorefresh, $header_autorefresh_counter, $header_discovery, $servers_list, $header_support, $header_docu, $header_user, $header_logout.'</div>';
|
<div class="header_right">'.$header_chat, $header_autorefresh, $header_autorefresh_counter, $header_discovery, $servers_list, $header_feedback, $header_support, $header_docu, $header_user, $header_logout.'</div>';
|
||||||
?>
|
?>
|
||||||
</div> <!-- Closes #table_header_inner -->
|
</div> <!-- Closes #table_header_inner -->
|
||||||
</div> <!-- Closes #table_header -->
|
</div> <!-- Closes #table_header -->
|
||||||
|
|
||||||
|
|
||||||
@ -610,8 +628,41 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var fixed_header = <?php echo json_encode((bool) $config_fixed_header); ?>;
|
var fixed_header = <?php echo json_encode((bool) $config_fixed_header); ?>;
|
||||||
|
|
||||||
var new_chat = <?php echo (int) $_SESSION['new_chat']; ?>;
|
var new_chat = <?php echo (int) $_SESSION['new_chat']; ?>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads modal from AJAX to add feedback.
|
||||||
|
*/
|
||||||
|
function show_feedback() {
|
||||||
|
var btn_ok_text = '<?php echo __('Send'); ?>';
|
||||||
|
var btn_cancel_text = '<?php echo __('Cancel'); ?>';
|
||||||
|
var title = '<?php echo __('Report an issue'); ?>';
|
||||||
|
var url = '<?php echo 'tools/diagnostics'; ?>';
|
||||||
|
|
||||||
|
load_modal({
|
||||||
|
target: $('#modal-feedback-form'),
|
||||||
|
form: 'modal_form_feedback',
|
||||||
|
url: '<?php echo ui_get_full_url('ajax.php', false, false, false); ?>',
|
||||||
|
modal: {
|
||||||
|
title: title,
|
||||||
|
ok: btn_ok_text,
|
||||||
|
cancel: btn_cancel_text,
|
||||||
|
},
|
||||||
|
onshow: {
|
||||||
|
page: url,
|
||||||
|
method: 'formFeedback',
|
||||||
|
},
|
||||||
|
onsubmit: {
|
||||||
|
page: url,
|
||||||
|
method: 'createdScheduleFeedbackTask',
|
||||||
|
dataType: 'json',
|
||||||
|
},
|
||||||
|
ajax_callback: generalShowMsg,
|
||||||
|
idMsgCallback: 'msg-header',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready (function () {
|
$(document).ready (function () {
|
||||||
|
|
||||||
// Check new notifications on a periodic way
|
// Check new notifications on a periodic way
|
||||||
@ -661,7 +712,17 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
$("#ui_close_dialog_titlebar").click(function () {
|
$("#ui_close_dialog_titlebar").click(function () {
|
||||||
$("#agent_access").css("display","");
|
$("#agent_access").css("display","");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
<?php if (enterprise_installed()) { ?>
|
||||||
|
// Feedback.
|
||||||
|
$("#feedback-header").click(function () {
|
||||||
|
// Clean DOM.
|
||||||
|
$("#feedback-header").empty();
|
||||||
|
// Function charge Modal.
|
||||||
|
show_feedback();
|
||||||
|
});
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
function blinkpubli(){
|
function blinkpubli(){
|
||||||
$(".publienterprise").delay(100).fadeTo(300,0.2).delay(100).fadeTo(300,1, blinkpubli);
|
$(".publienterprise").delay(100).fadeTo(300,0.2).delay(100).fadeTo(300,1, blinkpubli);
|
||||||
}
|
}
|
||||||
@ -670,21 +731,49 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ($_GET['refr'] || $do_refresh === true) {
|
if ($_GET['refr'] || $do_refresh === true) {
|
||||||
|
if ($_GET['sec2'] == 'operation/events/events') {
|
||||||
|
$autorefresh_draw = true;
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
var autorefresh_draw = '<?php echo $autorefresh_draw; ?>';
|
||||||
$("#header_autorefresh").css('padding-right', '5px');
|
$("#header_autorefresh").css('padding-right', '5px');
|
||||||
var refr_time = <?php echo (int) get_parameter('refr', $config['refr']); ?>;
|
if(autorefresh_draw == true) {
|
||||||
var t = new Date();
|
var refresh_interval = parseInt('<?php echo ($config['refr'] * 1000); ?>');
|
||||||
t.setTime (t.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
var until_time='';
|
||||||
$("#refrcounter").countdown ({
|
|
||||||
until: t,
|
function events_refresh() {
|
||||||
layout: '%M%nn%M:%S%nn%S',
|
until_time = new Date();
|
||||||
labels: ['', '', '', '', '', '', ''],
|
until_time.setTime (until_time.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||||
onExpiry: function () {
|
|
||||||
|
$("#refrcounter").countdown ({
|
||||||
|
until: until_time,
|
||||||
|
layout: '%M%nn%M:%S%nn%S',
|
||||||
|
labels: ['', '', '', '', '', '', ''],
|
||||||
|
onExpiry: function () {
|
||||||
|
dt_events.draw(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// Start the countdown when page is loaded (first time).
|
||||||
|
events_refresh();
|
||||||
|
// Repeat countdown according to refresh_interval.
|
||||||
|
setInterval(events_refresh, refresh_interval);
|
||||||
|
} else {
|
||||||
|
var refr_time = <?php echo (int) get_parameter('refr', $config['refr']); ?>;
|
||||||
|
var t = new Date();
|
||||||
|
t.setTime (t.getTime () + parseInt(<?php echo ($config['refr'] * 1000); ?>));
|
||||||
|
$("#refrcounter").countdown ({
|
||||||
|
until: t,
|
||||||
|
layout: '%M%nn%M:%S%nn%S',
|
||||||
|
labels: ['', '', '', '', '', '', ''],
|
||||||
|
onExpiry: function () {
|
||||||
href = $("a.autorefresh").attr ("href");
|
href = $("a.autorefresh").attr ("href");
|
||||||
href = href + refr_time;
|
href = href + refr_time;
|
||||||
$(document).attr ("location", href);
|
$(document).attr ("location", href);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@ -694,8 +783,38 @@ if ($config['menu_type'] == 'classic') {
|
|||||||
$("#combo_refr").toggle ();
|
$("#combo_refr").toggle ();
|
||||||
$("select#ref").change (function () {
|
$("select#ref").change (function () {
|
||||||
href = $("a.autorefresh").attr ("href");
|
href = $("a.autorefresh").attr ("href");
|
||||||
$(document).attr ("location", href + this.value);
|
|
||||||
});
|
if(autorefresh_draw == true){
|
||||||
|
inputs = $("#events_form :input");
|
||||||
|
values = {};
|
||||||
|
inputs.each(function() {
|
||||||
|
values[this.name] = $(this).val();
|
||||||
|
})
|
||||||
|
|
||||||
|
var newValue = btoa(JSON.stringify(values));
|
||||||
|
<?php
|
||||||
|
// Check if the url has the parameter fb64.
|
||||||
|
if ($_GET['fb64']) {
|
||||||
|
$fb64 = $_GET['fb64'];
|
||||||
|
?>
|
||||||
|
var fb64 = '<?php echo $fb64; ?>';
|
||||||
|
// Check if the filters have changed.
|
||||||
|
if(fb64 !== newValue){
|
||||||
|
href = href.replace(fb64, newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).attr("location", href+ '&refr=' + this.value);
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
$(document).attr("location", href+'&fb64=' + newValue + '&refr=' + this.value);
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
} else {
|
||||||
|
$(document).attr ("location", href + this.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
77
pandora_console/general/help_feedback.php
Normal file
77
pandora_console/general/help_feedback.php
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Credential store
|
||||||
|
*
|
||||||
|
* @category HelperFeedBack
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Help Feedback
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Begin.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class HelpFeedBack.
|
||||||
|
*/
|
||||||
|
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
require_once $config['homedir'].'/include/class/HelpFeedBack.class.php';
|
||||||
|
|
||||||
|
$ajaxPage = 'general/help_feedback';
|
||||||
|
|
||||||
|
// Control call flow.
|
||||||
|
try {
|
||||||
|
// User access and validation is being processed on class constructor.
|
||||||
|
$helpfeedback = new HelpFeedBack($ajaxPage);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
if (is_ajax()) {
|
||||||
|
echo json_encode(['error' => '[HelpFeedBack]'.$e->getMessage() ]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
echo '[HelpFeedBack]'.$e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stop this execution, but continue 'globally'.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ajax controller.
|
||||||
|
if (is_ajax()) {
|
||||||
|
$method = get_parameter('method', '');
|
||||||
|
|
||||||
|
if (method_exists($helpfeedback, $method) === true) {
|
||||||
|
if ($helpfeedback->ajaxMethod($method) === true) {
|
||||||
|
$helpfeedback->{$method}();
|
||||||
|
} else {
|
||||||
|
$helpfeedback->error('Unavailable method.');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$helpfeedback->error('Method not found. ['.$method.']');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Stop any execution.
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
// Run.
|
||||||
|
$helpfeedback->run();
|
||||||
|
}
|
@ -87,7 +87,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
|
|||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
|
||||||
echo '<td style="border:1px solid #FFF; text-align:center;">';
|
echo '<td style="border:1px solid #FFF; text-align:center;">';
|
||||||
echo '<a href="'.$config['custom_docs_url'].'" target="_blank" style="text-decoration:none;">'.html_print_image(
|
echo '<a href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank" style="text-decoration:none;">'.html_print_image(
|
||||||
'images/documentation.png',
|
'images/documentation.png',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
@ -96,7 +96,7 @@ echo '<div id="login_help_dialog" title="'.__('Welcome to %s', get_product_name(
|
|||||||
]
|
]
|
||||||
).'</a>';
|
).'</a>';
|
||||||
echo '<br style="margin-bottom: 40px;" />';
|
echo '<br style="margin-bottom: 40px;" />';
|
||||||
echo '<a style="font-size: 9pt;" href="'.$config['custom_docs_url'].'" target="_blank">'.__('Documentation').'</span></a>';
|
echo '<a style="font-size: 9pt;"href="'.ui_get_full_external_url($config['custom_docs_url']).'" target="_blank">'.__('Documentation').'</span></a>';
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
|
@ -88,6 +88,24 @@ if (!empty($config['login_background'])) {
|
|||||||
$login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\"";
|
$login_body_style = "style=\"background:linear-gradient(74deg, #02020255 36%, transparent 36%), url('".$background_url."');\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get alternative custom in case of db fail.
|
||||||
|
$custom_fields = [
|
||||||
|
'custom_logo_login',
|
||||||
|
'custom_splash_login',
|
||||||
|
'custom_title1_login',
|
||||||
|
'custom_title2_login',
|
||||||
|
'rb_product_name',
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($custom_fields as $field) {
|
||||||
|
if (!isset($config[$field])) {
|
||||||
|
if (isset($config[$field.'_alt'])) {
|
||||||
|
$config[$field] = $config[$field.'_alt'];
|
||||||
|
$custom_conf_enabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get the custom icons.
|
// Get the custom icons.
|
||||||
$docs_logo = ui_get_docs_logo();
|
$docs_logo = ui_get_docs_logo();
|
||||||
$support_logo = ui_get_support_logo();
|
$support_logo = ui_get_support_logo();
|
||||||
@ -102,7 +120,7 @@ if ($docs_logo !== false) {
|
|||||||
echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank">'.__('Docs').'</li>';
|
echo '<li><a href="'.$config['custom_docs_url'].'" target="_blank">'.__('Docs').'</li>';
|
||||||
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
if (file_exists(ENTERPRISE_DIR.'/load_enterprise.php')) {
|
||||||
if ($support_logo !== false) {
|
if ($support_logo !== false) {
|
||||||
echo '<li id="li_margin_left"><a href="'.$config['custom_support_url'].'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
echo '<li id="li_margin_left"><a href="'.$config['custom_docs_url'].'" target="_blank"><img src="'.$support_logo.'" alt="support"></a></li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<li><a href="'.$config['custom_support_url'].'" target="_blank">'.__('Support').'</li>';
|
echo '<li><a href="'.$config['custom_support_url'].'" target="_blank">'.__('Support').'</li>';
|
||||||
@ -133,7 +151,7 @@ if (defined('METACONSOLE')) {
|
|||||||
html_print_image('enterprise/images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
html_print_image('enterprise/images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!isset($config['custom_logo_login']) || $config['custom_logo_login'] == 0) {
|
if (!isset($config['custom_logo_login']) || $config['custom_logo_login'] === 0) {
|
||||||
html_print_image('images/custom_logo_login/pandora_logo.png', false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
html_print_image('images/custom_logo_login/pandora_logo.png', false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
||||||
} else {
|
} else {
|
||||||
html_print_image('images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
html_print_image('images/custom_logo_login/'.$config['custom_logo_login'], false, ['class' => 'login_logo', 'alt' => 'logo', 'border' => 0, 'title' => $logo_title], false, true);
|
||||||
@ -376,6 +394,9 @@ if (isset($correct_reset_pass_process)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isset($login_failed)) {
|
if (isset($login_failed)) {
|
||||||
|
$nick = get_parameter_post('nick');
|
||||||
|
$fails = db_get_value('failed_attempt', 'tusuario', 'id_user', $nick);
|
||||||
|
$attemps = ($config['number_attempts'] - $fails);
|
||||||
echo '<div id="login_failed" title="'.__('Login failed').'">';
|
echo '<div id="login_failed" title="'.__('Login failed').'">';
|
||||||
echo '<div class="content_alert">';
|
echo '<div class="content_alert">';
|
||||||
echo '<div class="icon_message_alert">';
|
echo '<div class="icon_message_alert">';
|
||||||
@ -386,6 +407,12 @@ if (isset($login_failed)) {
|
|||||||
echo '<h1>'.__('ERROR').'</h1>';
|
echo '<h1>'.__('ERROR').'</h1>';
|
||||||
echo '<p>'.$config['auth_error'].'</p>';
|
echo '<p>'.$config['auth_error'].'</p>';
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
if ($config['enable_pass_policy']) {
|
||||||
|
echo '<div class="text_message_alert">';
|
||||||
|
echo '<p><strong>Remaining attempts: '.$attemps.'</strong></p>';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
echo '<div class="button_message_alert">';
|
echo '<div class="button_message_alert">';
|
||||||
html_print_submit_button('Ok', 'hide-login-error', false);
|
html_print_submit_button('Ok', 'hide-login-error', false);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
@ -414,9 +441,14 @@ if ($login_screen == 'logout') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch ($login_screen) {
|
switch ($login_screen) {
|
||||||
case 'error_authconfig':
|
|
||||||
case 'error_dbconfig':
|
case 'error_dbconfig':
|
||||||
$title = __('Problem with %s database', get_product_name());
|
case 'error_authconfig':
|
||||||
|
if (!isset($config['rb_product_name_alt'])) {
|
||||||
|
$title = __('Problem with %s database', get_product_name());
|
||||||
|
} else {
|
||||||
|
$title = __('Problem with %s database', $config['rb_product_name_alt']);
|
||||||
|
}
|
||||||
|
|
||||||
$message = __(
|
$message = __(
|
||||||
'Cannot connect to the database, please check your database setup in the <b>include/config.php</b> file.<i><br/><br/>
|
'Cannot connect to the database, please check your database setup in the <b>include/config.php</b> file.<i><br/><br/>
|
||||||
Probably your database, hostname, user or password values are incorrect or
|
Probably your database, hostname, user or password values are incorrect or
|
||||||
@ -680,5 +712,6 @@ html_print_div(['id' => 'forced_title_layer', 'class' => 'forced_title_layer', '
|
|||||||
$("#final_process_correct").dialog('close');
|
$("#final_process_correct").dialog('close');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
/* ]]> */
|
/* ]]> */
|
||||||
</script>
|
</script>
|
||||||
|
@ -172,6 +172,7 @@ unset($table);
|
|||||||
echo '<div id="right">';
|
echo '<div id="right">';
|
||||||
|
|
||||||
// News.
|
// News.
|
||||||
|
require_once 'general/news_dialog.php';
|
||||||
$options = [];
|
$options = [];
|
||||||
$options['id_user'] = $config['id_user'];
|
$options['id_user'] = $config['id_user'];
|
||||||
$options['modal'] = false;
|
$options['modal'] = false;
|
||||||
@ -188,6 +189,7 @@ if (!empty($news)) {
|
|||||||
$comparation_suffix = __('ago');
|
$comparation_suffix = __('ago');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$output_news = '<div id="news_board" class="new">';
|
$output_news = '<div id="news_board" class="new">';
|
||||||
foreach ($news as $article) {
|
foreach ($news as $article) {
|
||||||
$image = false;
|
$image = false;
|
||||||
|
@ -83,7 +83,6 @@ background:black;opacity:0.1;left:0px;top:0px;width:100%;height:100%;
|
|||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div id="alert_messages_na">
|
<div id="alert_messages_na">
|
||||||
|
|
||||||
<div class='modalheade'>
|
<div class='modalheade'>
|
||||||
@ -100,10 +99,29 @@ background:black;opacity:0.1;left:0px;top:0px;width:100%;height:100%;
|
|||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a href='https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Configuration' target='_blank'>
|
<?php
|
||||||
<div class='modalwikibutto cerrar'>
|
$custom_conf_enabled = false;
|
||||||
<span class='modalwikibuttontex'> <?php echo __('Documentation'); ?></span>
|
foreach ($config as $key => $value) {
|
||||||
</div>
|
if (preg_match('/._alt/i', $key)) {
|
||||||
|
$custom_conf_enabled = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$custom_conf_enabled) {
|
||||||
|
echo '
|
||||||
|
<a href="https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_en:Configuration" target="_blank">
|
||||||
|
<div class="modalwikibutto cerrar">
|
||||||
|
<span class="modalwikibuttontex">'.__('Documentation').'
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
';
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
164
pandora_console/general/noaccesssaml.php
Normal file
164
pandora_console/general/noaccesssaml.php
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
#alert_messages_na{
|
||||||
|
z-index:2;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
width:650px;
|
||||||
|
height: 400px;
|
||||||
|
background:white;
|
||||||
|
background-image:url('images/imagen-no-acceso.jpg');
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
justify-content: center;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
box-shadow:4px 5px 10px 3px rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modalheade{
|
||||||
|
text-align:center;
|
||||||
|
width:100%;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
}
|
||||||
|
.modalheadertex{
|
||||||
|
color:#000;
|
||||||
|
font-family:Nunito;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 23pt;
|
||||||
|
margin-bottom:30px;
|
||||||
|
}
|
||||||
|
.modalclose{
|
||||||
|
cursor:pointer;
|
||||||
|
display:inline;
|
||||||
|
float:right;
|
||||||
|
margin-right:10px;
|
||||||
|
margin-top:10px;
|
||||||
|
}
|
||||||
|
.modalconten{
|
||||||
|
color:black;
|
||||||
|
width:300px;
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
.modalcontenttex{
|
||||||
|
text-align:left;
|
||||||
|
color:black;
|
||||||
|
font-size: 11pt;
|
||||||
|
line-height:13pt;
|
||||||
|
margin-bottom:30px;
|
||||||
|
}
|
||||||
|
.modalokbutto{
|
||||||
|
cursor:pointer;
|
||||||
|
text-align:center;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 6px 45px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color:white;
|
||||||
|
border: 1px solid #82b92e;
|
||||||
|
}
|
||||||
|
.modalokbuttontex{
|
||||||
|
color:#82b92e;
|
||||||
|
font-family:Nunito;
|
||||||
|
font-size:13pt;
|
||||||
|
}
|
||||||
|
.modalgobutto{
|
||||||
|
cursor:pointer;
|
||||||
|
text-align:center;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color:white;
|
||||||
|
border: 1px solid #82b92e;
|
||||||
|
}
|
||||||
|
.modalgobuttontex{
|
||||||
|
color:#82b92e;
|
||||||
|
font-family:Nunito;
|
||||||
|
font-size:10pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#opacidad{
|
||||||
|
position:fixed;
|
||||||
|
background:black;
|
||||||
|
opacity:0.6;
|
||||||
|
z-index:-1;
|
||||||
|
left:0px;
|
||||||
|
top:0px;
|
||||||
|
width:100%;
|
||||||
|
height:100%;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
.textodialog{
|
||||||
|
margin-left: 0px;
|
||||||
|
color:#333;
|
||||||
|
padding:20px;
|
||||||
|
font-size:9pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cargatextodialog{
|
||||||
|
max-width:58.5%;
|
||||||
|
width:58.5%;
|
||||||
|
min-width:58.5%;
|
||||||
|
float:left;
|
||||||
|
margin-left: 0px;
|
||||||
|
font-size:18pt;
|
||||||
|
padding:20px;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cargatextodialog p, .cargatextodialog b, .cargatextodialog a{
|
||||||
|
font-size:18pt;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="alert_messages_na">
|
||||||
|
|
||||||
|
<div class='modalheade'>
|
||||||
|
<img class='modalclose cerrar' src='<?php echo $config['homeurl']; ?>images/input_cross.png'>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='modalconten'>
|
||||||
|
<div class='modalheadertex'>
|
||||||
|
<?php echo __("You don't have access to this page"); ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='modalcontenttex'>
|
||||||
|
<?php
|
||||||
|
echo __('Access to this page is restricted to authorized users SAML only, please contact system administrator if you need assistance.');
|
||||||
|
echo '<br/> <br/>';
|
||||||
|
echo __('Please make sure you have SAML authentication properly configured. For more information the error to access this page are recorded in security logs of %s System Database', get_product_name());
|
||||||
|
?>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='modalokbutto cerrar'>
|
||||||
|
<span class='modalokbuttontex'>OK</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="opacidad"></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
$(".cerrar").click(function(){
|
||||||
|
window.location=".";
|
||||||
|
});
|
||||||
|
|
||||||
|
$('div#page').css('background-color','#d3d3d3');
|
||||||
|
|
||||||
|
</script>
|
@ -30,6 +30,7 @@
|
|||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_update_manager.php';
|
require_once $config['homedir'].'/include/functions_update_manager.php';
|
||||||
|
require_once $config['homedir'].'/include/class/WelcomeWindow.class.php';
|
||||||
|
|
||||||
|
|
||||||
if (is_ajax()) {
|
if (is_ajax()) {
|
||||||
@ -123,6 +124,7 @@ if (is_ajax()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ui_require_css_file('register');
|
ui_require_css_file('register');
|
||||||
|
|
||||||
$initial = isset($config['initial_wizard']) !== true
|
$initial = isset($config['initial_wizard']) !== true
|
||||||
@ -150,25 +152,36 @@ if ($initial && users_is_admin()) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($registration && users_is_admin()) {
|
if (!$config['disabled_newsletter']) {
|
||||||
// Prepare registration wizard, not launch. leave control to flow.
|
if ($registration && users_is_admin()) {
|
||||||
registration_wiz_modal(
|
// Prepare registration wizard, not launch. leave control to flow.
|
||||||
false,
|
registration_wiz_modal(
|
||||||
// Launch only if not being launch from 'initial'.
|
|
||||||
!$initial,
|
|
||||||
(($show_newsletter === true) ? 'force_run_newsletter()' : null)
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
if ($show_newsletter) {
|
|
||||||
// Show newsletter wizard for current user.
|
|
||||||
newsletter_wiz_modal(
|
|
||||||
false,
|
false,
|
||||||
// Launch only if not being call from 'registration'.
|
// Launch only if not being launch from 'initial'.
|
||||||
!$registration && !$initial
|
!$initial,
|
||||||
|
(($show_newsletter === true) ? 'force_run_newsletter()' : null)
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
if ($show_newsletter) {
|
||||||
|
// Show newsletter wizard for current user.
|
||||||
|
newsletter_wiz_modal(
|
||||||
|
false,
|
||||||
|
// Launch only if not being call from 'registration'.
|
||||||
|
!$registration && !$initial
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$welcome = !$registration && !$show_newsletter && !$initial;
|
||||||
|
try {
|
||||||
|
$welcome_window = new WelcomeWindow($welcome);
|
||||||
|
if ($welcome_window !== null) {
|
||||||
|
$welcome_window->run();
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$welcome = false;
|
||||||
|
}
|
||||||
|
|
||||||
$newsletter = null;
|
$newsletter = null;
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@ switch ($_GET['module']) {
|
|||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT id_tipo, descripcion
|
'SELECT id_tipo, descripcion
|
||||||
FROM ttipo_modulo
|
FROM ttipo_modulo
|
||||||
WHERE categoria between 3 and 5 '
|
WHERE categoria between 3 and 5
|
||||||
|
OR categoria = 10 '
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -77,6 +77,7 @@ if (is_ajax()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$get_modules_json_for_multiple_snmp = (bool) get_parameter('get_modules_json_for_multiple_snmp', 0);
|
$get_modules_json_for_multiple_snmp = (bool) get_parameter('get_modules_json_for_multiple_snmp', 0);
|
||||||
|
$get_common_modules = (bool) get_parameter('get_common_modules', 1);
|
||||||
if ($get_modules_json_for_multiple_snmp) {
|
if ($get_modules_json_for_multiple_snmp) {
|
||||||
include_once 'include/graphs/functions_utils.php';
|
include_once 'include/graphs/functions_utils.php';
|
||||||
|
|
||||||
@ -100,7 +101,16 @@ if (is_ajax()) {
|
|||||||
if ($out === false) {
|
if ($out === false) {
|
||||||
$out = $oid_snmp;
|
$out = $oid_snmp;
|
||||||
} else {
|
} else {
|
||||||
$out = array_intersect($out, $oid_snmp);
|
$commons = array_intersect($out, $oid_snmp);
|
||||||
|
if ($get_common_modules) {
|
||||||
|
// Common modules is selected (default)
|
||||||
|
$out = $commons;
|
||||||
|
} else {
|
||||||
|
// All modules is selected
|
||||||
|
$array1 = array_diff($out, $oid_snmp);
|
||||||
|
$array2 = array_diff($oid_snmp, $out);
|
||||||
|
$out = array_merge($commons, $array1, $array2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$oid_snmp = [];
|
$oid_snmp = [];
|
||||||
@ -201,7 +211,7 @@ if (!$new_agent && $alias != '') {
|
|||||||
$table_agent_name .= '<div class="label_select_child_right agent_options_agent_name" style="width: 40%;">';
|
$table_agent_name .= '<div class="label_select_child_right agent_options_agent_name" style="width: 40%;">';
|
||||||
|
|
||||||
if ($id_agente) {
|
if ($id_agente) {
|
||||||
$table_agent_name .= '<label>'.__('ID').'</label><input style="width: 50%;" type="text" disabled="true" value="'.$id_agente.'" />';
|
$table_agent_name .= '<label>'.__('ID').'</label><input style="width: 50%;" type="text" readonly value="'.$id_agente.'" />';
|
||||||
$table_agent_name .= '<a href="index.php?sec=gagente&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'">';
|
$table_agent_name .= '<a href="index.php?sec=gagente&sec2=operation/agentes/ver_agente&id_agente='.$id_agente.'">';
|
||||||
$table_agent_name .= html_print_image(
|
$table_agent_name .= html_print_image(
|
||||||
'images/zoom.png',
|
'images/zoom.png',
|
||||||
@ -265,7 +275,7 @@ if ($new_agent) {
|
|||||||
|
|
||||||
$table_alias = '<div class="label_select"><p class="input_label">'.__('Alias').': '.ui_print_help_tip(__('Characters /,\,|,%,#,&,$ will be ignored'), true).'</p>';
|
$table_alias = '<div class="label_select"><p class="input_label">'.__('Alias').': '.ui_print_help_tip(__('Characters /,\,|,%,#,&,$ will be ignored'), true).'</p>';
|
||||||
$table_alias .= '<div class='.$label_select_parent.'>';
|
$table_alias .= '<div class='.$label_select_parent.'>';
|
||||||
$table_alias .= '<div class='.$label_select_child_left.'>'.html_print_input_text('alias', $alias, '', 50, 100, true).'</div>';
|
$table_alias .= '<div class='.$label_select_child_left.'>'.html_print_input_text('alias', $alias, '', 50, 100, true, false, true).'</div>';
|
||||||
if ($new_agent) {
|
if ($new_agent) {
|
||||||
$table_alias .= '<div class="label_select_child_right">'.html_print_checkbox_switch('alias_as_name', 1, $config['alias_as_name'], true).__('Use alias as name').'</div>';
|
$table_alias .= '<div class="label_select_child_right">'.html_print_checkbox_switch('alias_as_name', 1, $config['alias_as_name'], true).__('Use alias as name').'</div>';
|
||||||
}
|
}
|
||||||
@ -372,13 +382,13 @@ $table_server = '<div class="label_select"><p class="input_label">'.__('Server')
|
|||||||
$table_server .= '<div class="label_select_parent">';
|
$table_server .= '<div class="label_select_parent">';
|
||||||
if ($new_agent) {
|
if ($new_agent) {
|
||||||
// Set first server by default.
|
// Set first server by default.
|
||||||
$servers_get_names = servers_get_names();
|
$servers_get_names = $servers;
|
||||||
$array_keys_servers_get_names = array_keys($servers_get_names);
|
$array_keys_servers_get_names = array_keys($servers_get_names);
|
||||||
$server_name = reset($array_keys_servers_get_names);
|
$server_name = reset($array_keys_servers_get_names);
|
||||||
}
|
}
|
||||||
|
|
||||||
$table_server .= html_print_select(
|
$table_server .= html_print_select(
|
||||||
servers_get_names(),
|
$servers,
|
||||||
'server_name',
|
'server_name',
|
||||||
$server_name,
|
$server_name,
|
||||||
'',
|
'',
|
||||||
@ -514,8 +524,10 @@ if (enterprise_installed()) {
|
|||||||
);
|
);
|
||||||
$safe_mode_modules = [];
|
$safe_mode_modules = [];
|
||||||
$safe_mode_modules[0] = __('Any');
|
$safe_mode_modules[0] = __('Any');
|
||||||
foreach ($sql_modules as $m) {
|
if (is_array($sql_modules)) {
|
||||||
$safe_mode_modules[$m['id_module']] = $m['name'];
|
foreach ($sql_modules as $m) {
|
||||||
|
$safe_mode_modules[$m['id_module']] = $m['name'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$table_adv_safe = '<div class="label_select_simple label_simple_items"><p class="input_label input_label_simple">'.__('Safe operation mode').': '.ui_print_help_tip(
|
$table_adv_safe = '<div class="label_select_simple label_simple_items"><p class="input_label input_label_simple">'.__('Safe operation mode').': '.ui_print_help_tip(
|
||||||
@ -753,7 +765,7 @@ $table_adv_agent_icon .= html_print_select(
|
|||||||
).'</div>';
|
).'</div>';
|
||||||
|
|
||||||
if ($config['activate_gis']) {
|
if ($config['activate_gis']) {
|
||||||
$table_adv_gis = '<div class="label_select_simple label_simple_one_item"><p class="input_label input_label_simple">'.__('Ignore new GIS data:').'</p>';
|
$table_adv_gis = '<div class="label_select_simple label_simple_one_item"><p class="input_label input_label_simple">'.__('Update new GIS data:').'</p>';
|
||||||
if ($new_agent) {
|
if ($new_agent) {
|
||||||
$update_gis_data = true;
|
$update_gis_data = true;
|
||||||
}
|
}
|
||||||
@ -777,7 +789,7 @@ $table_adv_options = '
|
|||||||
'.$adv_secondary_groups_right.'
|
'.$adv_secondary_groups_right.'
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="adv_right" >
|
<div class="agent_av_opt_right" >
|
||||||
'.$table_adv_parent.$table_adv_module_mode.$table_adv_cascade;
|
'.$table_adv_parent.$table_adv_module_mode.$table_adv_cascade;
|
||||||
|
|
||||||
if ($new_agent) {
|
if ($new_agent) {
|
||||||
@ -788,24 +800,24 @@ if ($new_agent) {
|
|||||||
$table_adv_options .= '</div>';
|
$table_adv_options .= '</div>';
|
||||||
|
|
||||||
$table_adv_options .= '
|
$table_adv_options .= '
|
||||||
<div class="adv_left" >
|
<div class="agent_av_opt_left" >
|
||||||
'.$table_adv_gis.$table_adv_agent_icon.$table_adv_url.$table_adv_quiet.$table_adv_status.$table_adv_remote.$table_adv_safe.'
|
'.$table_adv_gis.$table_adv_agent_icon.$table_adv_url.$table_adv_quiet.$table_adv_status.$table_adv_remote.$table_adv_safe.'
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
|
if (enterprise_installed()) {
|
||||||
echo '<div class="ui_toggle">';
|
echo '<div class="ui_toggle">';
|
||||||
ui_toggle(
|
ui_toggle(
|
||||||
$table_adv_options,
|
$table_adv_options,
|
||||||
__('Advanced options'),
|
__('Advanced options'),
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
'white_box white_box_opened',
|
'white_box white_box_opened',
|
||||||
'no-border flex'
|
'no-border flex'
|
||||||
);
|
);
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
$table = new stdClass();
|
$table = new stdClass();
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
@ -813,7 +825,7 @@ $table->class = 'custom_fields_table';
|
|||||||
|
|
||||||
$table->head = [
|
$table->head = [
|
||||||
0 => __('Click to display').ui_print_help_tip(
|
0 => __('Click to display').ui_print_help_tip(
|
||||||
__('This field allows url insertion using the BBCode\'s url tag').'.<br />'.__('The format is: [url=\'url to navigate\']\'text to show\'[/url]').'.<br /><br />'.__('e.g.: [url=google.com]Google web search[/url]'),
|
__('This field allows url insertion using the BBCode\'s url tag').'.<br />'.__('The format is: [url=\'url to navigate\']\'text to show\'[/url] or [url]\'url to navigate\'[/url] ').'.<br /><br />'.__('e.g.: [url=google.com]Google web search[/url] or [url]www.goole.com[/url]'),
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
@ -919,18 +931,48 @@ foreach ($fields as $field) {
|
|||||||
$i += 2;
|
$i += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($fields)) {
|
if (enterprise_installed()) {
|
||||||
|
if (!empty($fields)) {
|
||||||
|
echo '<div class="ui_toggle">';
|
||||||
|
ui_toggle(
|
||||||
|
html_print_table($table, true),
|
||||||
|
__('Custom fields'),
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
'white_box white_box_opened',
|
||||||
|
'no-border'
|
||||||
|
);
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
echo '<div class="ui_toggle">';
|
echo '<div class="ui_toggle">';
|
||||||
ui_toggle(
|
ui_toggle(
|
||||||
html_print_table($table, true),
|
$table_adv_options,
|
||||||
__('Custom fields'),
|
__('Advanced options'),
|
||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
'white_box white_box_opened',
|
'white_box white_box_opened',
|
||||||
'no-border'
|
'no-border flex'
|
||||||
);
|
);
|
||||||
|
if (!empty($fields)) {
|
||||||
|
ui_toggle(
|
||||||
|
html_print_table($table, true),
|
||||||
|
__('Custom fields'),
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
'white_box white_box_opened',
|
||||||
|
'no-border'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<div class="action-buttons" style="display: flex; justify-content: flex-end; align-items: center; width: '.$table->width.'">';
|
||||||
|
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1162,6 +1204,19 @@ ui_require_jquery_file('bgiframe');
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready (function() {
|
$(document).ready (function() {
|
||||||
|
|
||||||
|
var previous_primary_group_select;
|
||||||
|
$("#grupo").on('focus', function () {
|
||||||
|
previous_primary_group_select = this.value;
|
||||||
|
}).change(function() {
|
||||||
|
if ($("#secondary_groups_selected option[value="+$("#grupo").val()+"]").length) {
|
||||||
|
alert("<?php echo __('Secondary group cannot be primary too.'); ?>");
|
||||||
|
$("#grupo").val(previous_primary_group_select);
|
||||||
|
} else {
|
||||||
|
previous_primary_group_select = this.value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$("select#id_os").pandoraSelectOS ();
|
$("select#id_os").pandoraSelectOS ();
|
||||||
|
|
||||||
var checked = $("#checkbox-cascade_protection").is(":checked");
|
var checked = $("#checkbox-cascade_protection").is(":checked");
|
||||||
@ -1210,7 +1265,7 @@ ui_require_jquery_file('bgiframe');
|
|||||||
128,
|
128,
|
||||||
128
|
128
|
||||||
);
|
);
|
||||||
$("#text-agente").prop('disabled', true);
|
$("#text-agente").prop('readonly', true);
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,16 +1,32 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Extension to manage a list of gateways and the node address where they should
|
||||||
|
* point to.
|
||||||
|
*
|
||||||
|
* @category SNMP interfaces.
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Community
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
|
||||||
// ==================================================
|
|
||||||
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
|
|
||||||
// Please see http://pandorafms.org for full contribution list
|
|
||||||
// This program is free software; you can redistribute it and/or
|
|
||||||
// modify it under the terms of the GNU General Public License
|
|
||||||
// as published by the Free Software Foundation; version 2
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
global $config;
|
global $config;
|
||||||
require_once $config['homedir'].'/include/functions_agents.php';
|
require_once $config['homedir'].'/include/functions_agents.php';
|
||||||
require_once 'include/functions_modules.php';
|
require_once 'include/functions_modules.php';
|
||||||
@ -23,7 +39,6 @@ $idAgent = (int) get_parameter('id_agente', 0);
|
|||||||
$ipAgent = db_get_value('direccion', 'tagente', 'id_agente', $idAgent);
|
$ipAgent = db_get_value('direccion', 'tagente', 'id_agente', $idAgent);
|
||||||
|
|
||||||
check_login();
|
check_login();
|
||||||
|
|
||||||
$ip_target = (string) get_parameter('ip_target', $ipAgent);
|
$ip_target = (string) get_parameter('ip_target', $ipAgent);
|
||||||
$use_agent = get_parameter('use_agent');
|
$use_agent = get_parameter('use_agent');
|
||||||
$snmp_community = (string) get_parameter('snmp_community', 'public');
|
$snmp_community = (string) get_parameter('snmp_community', 'public');
|
||||||
@ -37,10 +52,10 @@ $snmp3_privacy_method = get_parameter('snmp3_privacy_method');
|
|||||||
$snmp3_privacy_pass = io_safe_output(get_parameter('snmp3_privacy_pass'));
|
$snmp3_privacy_pass = io_safe_output(get_parameter('snmp3_privacy_pass'));
|
||||||
$tcp_port = (string) get_parameter('tcp_port');
|
$tcp_port = (string) get_parameter('tcp_port');
|
||||||
|
|
||||||
// See if id_agente is set (either POST or GET, otherwise -1
|
// See if id_agente is set (either POST or GET, otherwise -1.
|
||||||
$id_agent = $idAgent;
|
$id_agent = $idAgent;
|
||||||
|
|
||||||
// Get passed variables
|
// Get passed variables.
|
||||||
$snmpwalk = (int) get_parameter('snmpwalk', 0);
|
$snmpwalk = (int) get_parameter('snmpwalk', 0);
|
||||||
$create_modules = (int) get_parameter('create_modules', 0);
|
$create_modules = (int) get_parameter('create_modules', 0);
|
||||||
|
|
||||||
@ -48,7 +63,7 @@ $interfaces = [];
|
|||||||
$interfaces_ip = [];
|
$interfaces_ip = [];
|
||||||
|
|
||||||
if ($snmpwalk) {
|
if ($snmpwalk) {
|
||||||
// OID Used is for SNMP MIB-2 Interfaces
|
// OID Used is for SNMP MIB-2 Interfaces.
|
||||||
$snmpis = get_snmpwalk(
|
$snmpis = get_snmpwalk(
|
||||||
$ip_target,
|
$ip_target,
|
||||||
$snmp_version,
|
$snmp_version,
|
||||||
@ -64,7 +79,7 @@ if ($snmpwalk) {
|
|||||||
$tcp_port,
|
$tcp_port,
|
||||||
$server_to_exec
|
$server_to_exec
|
||||||
);
|
);
|
||||||
// ifXTable is also used
|
// IfXTable is also used.
|
||||||
$ifxitems = get_snmpwalk(
|
$ifxitems = get_snmpwalk(
|
||||||
$ip_target,
|
$ip_target,
|
||||||
$snmp_version,
|
$snmp_version,
|
||||||
@ -81,7 +96,7 @@ if ($snmpwalk) {
|
|||||||
$server_to_exec
|
$server_to_exec
|
||||||
);
|
);
|
||||||
|
|
||||||
// Get the interfaces IPV4/IPV6
|
// Get the interfaces IPV4/IPV6.
|
||||||
$snmp_int_ip = get_snmpwalk(
|
$snmp_int_ip = get_snmpwalk(
|
||||||
$ip_target,
|
$ip_target,
|
||||||
$snmp_version,
|
$snmp_version,
|
||||||
@ -98,12 +113,12 @@ if ($snmpwalk) {
|
|||||||
$server_to_exec
|
$server_to_exec
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build a [<interface id>] => [<interface ip>] array
|
// Build a [<interface id>] => [<interface ip>] array.
|
||||||
if (!empty($snmp_int_ip)) {
|
if (!empty($snmp_int_ip)) {
|
||||||
foreach ($snmp_int_ip as $key => $value) {
|
foreach ($snmp_int_ip as $key => $value) {
|
||||||
// The key is something like IP-MIB::ipAddressIfIndex.ipv4."<ip>"
|
// The key is something like IP-MIB::ipAddressIfIndex.ipv4."<ip>".
|
||||||
// or IP-MIB::ipAddressIfIndex.ipv6."<ip>"
|
// or IP-MIB::ipAddressIfIndex.ipv6."<ip>".
|
||||||
// The value is something like INTEGER: <interface id>
|
// The value is something like INTEGER: <interface id>.
|
||||||
$data = explode(': ', $value);
|
$data = explode(': ', $value);
|
||||||
$interface_id = !empty($data) && isset($data[1]) ? $data[1] : false;
|
$interface_id = !empty($data) && isset($data[1]) ? $data[1] : false;
|
||||||
|
|
||||||
@ -111,7 +126,7 @@ if ($snmpwalk) {
|
|||||||
$interface_ip = $matches[1];
|
$interface_ip = $matches[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the first ip
|
// Get the first ip.
|
||||||
if ($interface_id !== false && !empty($interface_ip) && !isset($interfaces_ip[$interface_id])) {
|
if ($interface_id !== false && !empty($interface_ip) && !isset($interfaces_ip[$interface_id])) {
|
||||||
$interfaces_ip[$interface_id] = $interface_ip;
|
$interfaces_ip[$interface_id] = $interface_ip;
|
||||||
}
|
}
|
||||||
@ -120,17 +135,17 @@ if ($snmpwalk) {
|
|||||||
unset($snmp_int_ip);
|
unset($snmp_int_ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
$snmpis = array_merge(($snmpis === false ? [] : $snmpis), ($ifxitems === false ? [] : $ifxitems));
|
$snmpis = array_merge((($snmpis === false) ? [] : $snmpis), (($ifxitems === false) ? [] : $ifxitems));
|
||||||
|
|
||||||
$interfaces = [];
|
$interfaces = [];
|
||||||
|
|
||||||
// We get here only the interface part of the MIB, not full mib
|
// We get here only the interface part of the MIB, not full mib.
|
||||||
foreach ($snmpis as $key => $snmp) {
|
foreach ($snmpis as $key => $snmp) {
|
||||||
$data = explode(': ', $snmp, 2);
|
$data = explode(': ', $snmp, 2);
|
||||||
$keydata = explode('::', $key);
|
$keydata = explode('::', $key);
|
||||||
$keydata2 = explode('.', $keydata[1]);
|
$keydata2 = explode('.', $keydata[1]);
|
||||||
|
|
||||||
// Avoid results without index and interfaces without name
|
// Avoid results without index and interfaces without name.
|
||||||
if (!isset($keydata2[1]) || !isset($data[1])) {
|
if (!isset($keydata2[1]) || !isset($data[1])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -240,24 +255,22 @@ if ($create_modules) {
|
|||||||
$oid_array[(count($oid_array) - 1)] = $id;
|
$oid_array[(count($oid_array) - 1)] = $id;
|
||||||
$oid = implode('.', $oid_array);
|
$oid = implode('.', $oid_array);
|
||||||
|
|
||||||
// Get the name
|
// Get the name.
|
||||||
$name_array = explode('::', $oid_array[0]);
|
$name_array = explode('::', $oid_array[0]);
|
||||||
$name = $ifname.'_'.$name_array[1];
|
$name = $ifname.'_'.$name_array[1];
|
||||||
|
|
||||||
// Clean the name
|
// Clean the name.
|
||||||
$name = str_replace('"', '', $name);
|
$name = str_replace('"', '', $name);
|
||||||
|
|
||||||
// Proc moduletypes
|
// Proc moduletypes.
|
||||||
if (preg_match('/Status/', $name_array[1])) {
|
if (preg_match('/Status/', $name_array[1])) {
|
||||||
$module_type = 18;
|
$module_type = 18;
|
||||||
} else if (preg_match('/Present/', $name_array[1])) {
|
} else if (preg_match('/Present/', $name_array[1])) {
|
||||||
$module_type = 18;
|
$module_type = 18;
|
||||||
} else if (preg_match('/PromiscuousMode/', $name_array[1])) {
|
} else if (preg_match('/PromiscuousMode/', $name_array[1])) {
|
||||||
$module_type = 18;
|
$module_type = 18;
|
||||||
}
|
} else if (preg_match('/Alias/', $name_array[1])) {
|
||||||
|
// String moduletypes.
|
||||||
// String moduletypes
|
|
||||||
else if (preg_match('/Alias/', $name_array[1])) {
|
|
||||||
$module_type = 17;
|
$module_type = 17;
|
||||||
} else if (preg_match('/Address/', $name_array[1])) {
|
} else if (preg_match('/Address/', $name_array[1])) {
|
||||||
$module_type = 17;
|
$module_type = 17;
|
||||||
@ -267,15 +280,11 @@ if ($create_modules) {
|
|||||||
$module_type = 17;
|
$module_type = 17;
|
||||||
} else if (preg_match('/Descr/', $name_array[1])) {
|
} else if (preg_match('/Descr/', $name_array[1])) {
|
||||||
$module_type = 17;
|
$module_type = 17;
|
||||||
}
|
} else if (preg_match('/s$/', $name_array[1])) {
|
||||||
|
// Specific counters (ends in s).
|
||||||
// Specific counters (ends in s)
|
|
||||||
else if (preg_match('/s$/', $name_array[1])) {
|
|
||||||
$module_type = 16;
|
$module_type = 16;
|
||||||
}
|
} else {
|
||||||
|
// Otherwise, numeric.
|
||||||
// Otherwise, numeric
|
|
||||||
else {
|
|
||||||
$module_type = 15;
|
$module_type = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,7 +340,7 @@ if ($create_modules) {
|
|||||||
|
|
||||||
$output_oid = '';
|
$output_oid = '';
|
||||||
|
|
||||||
exec('ssh pandora_exec_proxy@'.$row['ip_address'].' snmptranslate -On '.$oid, $output_oid, $rc);
|
exec('snmptranslate -On '.$oid, $output_oid, $rc);
|
||||||
|
|
||||||
$conf_oid = $output_oid[0];
|
$conf_oid = $output_oid[0];
|
||||||
$oid = $conf_oid;
|
$oid = $conf_oid;
|
||||||
@ -398,7 +407,9 @@ if ($create_modules) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($done > 0) {
|
if ($done > 0) {
|
||||||
ui_print_success_message(__('Successfully modules created')." ($done)");
|
ui_print_success_message(
|
||||||
|
__('Successfully modules created').' ('.$done.')'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($errors)) {
|
if (!empty($errors)) {
|
||||||
@ -408,17 +419,17 @@ if ($create_modules) {
|
|||||||
foreach ($errors as $code => $number) {
|
foreach ($errors as $code => $number) {
|
||||||
switch ($code) {
|
switch ($code) {
|
||||||
case ERR_EXIST:
|
case ERR_EXIST:
|
||||||
$msg .= '<br>'.__('Another module already exists with the same name')." ($number)";
|
$msg .= '<br>'.__('Another module already exists with the same name').' ('.$number.')';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ERR_INCOMPLETE:
|
case ERR_INCOMPLETE:
|
||||||
$msg .= '<br>'.__('Some required fields are missed').': ('.__('name').') '." ($number)";
|
$msg .= '<br>'.__('Some required fields are missed').': ('.__('name').') ('.$number.')';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ERR_DB:
|
case ERR_DB:
|
||||||
case ERR_GENERIC:
|
case ERR_GENERIC:
|
||||||
default:
|
default:
|
||||||
$msg .= '<br>'.__('Processing error')." ($number)";
|
$msg .= '<br>'.__('Processing error').' ('.$number.')';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -427,10 +438,10 @@ if ($create_modules) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the interface list for the interface
|
// Create the interface list for the interface.
|
||||||
$interfaces_list = [];
|
$interfaces_list = [];
|
||||||
foreach ($interfaces as $interface) {
|
foreach ($interfaces as $interface) {
|
||||||
// Get the interface name, removing " " characters and avoid "blank" interfaces
|
// Get the interface name, removing " " characters and avoid "blank" interfaces.
|
||||||
if (isset($interface['ifDescr']) && $interface['ifDescr']['value'] != '') {
|
if (isset($interface['ifDescr']) && $interface['ifDescr']['value'] != '') {
|
||||||
$ifname = $interface['ifDescr']['value'];
|
$ifname = $interface['ifDescr']['value'];
|
||||||
} else if (isset($interface['ifName']) && $interface['ifName']['value'] != '') {
|
} else if (isset($interface['ifName']) && $interface['ifName']['value'] != '') {
|
||||||
@ -443,7 +454,7 @@ foreach ($interfaces as $interface) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '<span id ="none_text" style="display: none;">'.__('None').'</span>';
|
echo '<span id ="none_text" style="display: none;">'.__('None').'</span>';
|
||||||
echo "<form method='post' id='walk_form' action='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=snmp_interfaces_explorer&id_agente=$id_agent'>";
|
echo "<form method='post' id='walk_form' action='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=snmp_interfaces_explorer&id_agente=".$id_agent."'>";
|
||||||
|
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
$table->cellpadding = 0;
|
$table->cellpadding = 0;
|
||||||
@ -465,10 +476,15 @@ if (enterprise_installed()) {
|
|||||||
enterprise_include_once('include/functions_satellite.php');
|
enterprise_include_once('include/functions_satellite.php');
|
||||||
|
|
||||||
$rows = get_proxy_servers();
|
$rows = get_proxy_servers();
|
||||||
|
|
||||||
|
// Check if satellite server has remote configuration enabled.
|
||||||
|
$satellite_remote = config_agents_has_remote_configuration($id_agent);
|
||||||
|
|
||||||
foreach ($rows as $row) {
|
foreach ($rows as $row) {
|
||||||
if ($row['server_type'] != 13) {
|
if ($row['server_type'] != 13) {
|
||||||
$s_type = ' (Standard)';
|
$s_type = ' (Standard)';
|
||||||
} else {
|
} else {
|
||||||
|
$id_satellite = $row['id_server'];
|
||||||
$s_type = ' (Satellite)';
|
$s_type = ' (Satellite)';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -477,7 +493,16 @@ if (enterprise_installed()) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$table->data[1][2] = '<b>'.__('Server to execute command').'</b>';
|
$table->data[1][2] = '<b>'.__('Server to execute command').'</b>';
|
||||||
$table->data[1][3] = html_print_select($servers_to_exec, 'server_to_exec', $server_to_exec, '', '', '', true);
|
$table->data[1][2] .= '<span id=satellite_remote_tip>'.ui_print_help_tip(__('In order to use remote executions you need to enable remote execution in satellite server'), true, 'images/tip_help.png', false, 'display:').'</span>';
|
||||||
|
$table->data[1][4] = html_print_select(
|
||||||
|
$servers_to_exec,
|
||||||
|
'server_to_exec',
|
||||||
|
$server_to_exec,
|
||||||
|
'satellite_remote_warn('.$id_satellite.','.$satellite_remote.')',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$snmp_versions['1'] = 'v. 1';
|
$snmp_versions['1'] = 'v. 1';
|
||||||
$snmp_versions['2'] = 'v. 2';
|
$snmp_versions['2'] = 'v. 2';
|
||||||
@ -497,7 +522,7 @@ html_print_table($table);
|
|||||||
|
|
||||||
unset($table);
|
unset($table);
|
||||||
|
|
||||||
// SNMP3 OPTIONS
|
// SNMP3 OPTIONS.
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
|
|
||||||
$table->data[2][1] = '<b>'.__('Auth user').'</b>';
|
$table->data[2][1] = '<b>'.__('Auth user').'</b>';
|
||||||
@ -552,7 +577,7 @@ echo '</form>';
|
|||||||
|
|
||||||
if (!empty($interfaces_list)) {
|
if (!empty($interfaces_list)) {
|
||||||
echo '<span id ="none_text" style="display: none;">'.__('None').'</span>';
|
echo '<span id ="none_text" style="display: none;">'.__('None').'</span>';
|
||||||
echo "<form method='post' action='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=snmp_interfaces_explorer&id_agente=$id_agent'>";
|
echo "<form method='post' action='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=snmp_interfaces_explorer&id_agente=".$id_agent."'>";
|
||||||
echo '<span id="form_interfaces">';
|
echo '<span id="form_interfaces">';
|
||||||
|
|
||||||
$id_snmp_serialize = serialize_in_temp($interfaces, $config['id_user'].'_snmp');
|
$id_snmp_serialize = serialize_in_temp($interfaces, $config['id_user'].'_snmp');
|
||||||
@ -577,13 +602,30 @@ if (!empty($interfaces_list)) {
|
|||||||
|
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
|
|
||||||
// Agent selector
|
// Agent selector.
|
||||||
$table->data[0][0] = '<b>'.__('Interfaces').'</b>';
|
$table->data[0][0] = '<b>'.__('Interfaces').'</b>';
|
||||||
$table->data[0][1] = '';
|
$table->data[0][1] = '';
|
||||||
$table->data[0][2] = '<b>'.__('Modules').'</b>';
|
$table->data[0][2] = '<b>'.__('Modules').'</b>';
|
||||||
|
|
||||||
$table->data[1][0] = html_print_select($interfaces_list, 'id_snmp[]', 0, false, '', '', true, true, true, '', false, 'width:500px; overflow: auto;');
|
$table->data[1][0] = html_print_select($interfaces_list, 'id_snmp[]', 0, false, '', '', true, true, true, '', false, 'width:500px; overflow: auto;');
|
||||||
$table->data[1][1] = html_print_image('images/darrowright.png', true);
|
|
||||||
|
$table->data[1][1] = __('When selecting interfaces');
|
||||||
|
$table->data[1][1] .= '<br>';
|
||||||
|
$table->data[1][1] .= html_print_select(
|
||||||
|
[
|
||||||
|
1 => __('Show common modules'),
|
||||||
|
0 => __('Show all modules'),
|
||||||
|
],
|
||||||
|
'modules_selection_mode',
|
||||||
|
1,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
$table->data[1][2] = html_print_select([], 'module[]', 0, false, '', 0, true, true, true, '', false, 'width:200px;');
|
$table->data[1][2] = html_print_select([], 'module[]', 0, false, '', 0, true, true, true, '', false, 'width:200px;');
|
||||||
$table->data[1][2] .= html_print_input_hidden('agent', $id_agent, true);
|
$table->data[1][2] .= html_print_input_hidden('agent', $id_agent, true);
|
||||||
|
|
||||||
@ -609,6 +651,8 @@ ui_require_jquery_file('bgiframe');
|
|||||||
$(document).ready (function () {
|
$(document).ready (function () {
|
||||||
var inputActive = true;
|
var inputActive = true;
|
||||||
|
|
||||||
|
$('#server_to_exec option').trigger('change');
|
||||||
|
|
||||||
$(document).data('text_for_module', $("#none_text").html());
|
$(document).data('text_for_module', $("#none_text").html());
|
||||||
|
|
||||||
$("#id_snmp").change(snmp_changed_by_multiple_snmp);
|
$("#id_snmp").change(snmp_changed_by_multiple_snmp);
|
||||||
@ -628,10 +672,17 @@ $(document).ready (function () {
|
|||||||
$("#no_snmp").hide ();
|
$("#no_snmp").hide ();
|
||||||
$("#form_interfaces").hide ();
|
$("#form_interfaces").hide ();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// When select interfaces changes
|
||||||
|
$("#modules_selection_mode").change (function() {
|
||||||
|
$("#id_snmp").trigger('change');
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function snmp_changed_by_multiple_snmp (event, id_snmp, selected) {
|
function snmp_changed_by_multiple_snmp (event, id_snmp, selected) {
|
||||||
var idSNMP = Array();
|
var idSNMP = Array();
|
||||||
|
var get_common_modules = $("#modules_selection_mode option:selected").val();
|
||||||
|
|
||||||
jQuery.each ($("#id_snmp option:selected"), function (i, val) {
|
jQuery.each ($("#id_snmp option:selected"), function (i, val) {
|
||||||
idSNMP.push($(val).val());
|
idSNMP.push($(val).val());
|
||||||
@ -643,6 +694,7 @@ function snmp_changed_by_multiple_snmp (event, id_snmp, selected) {
|
|||||||
jQuery.post ('ajax.php',
|
jQuery.post ('ajax.php',
|
||||||
{"page" : "godmode/agentes/agent_manager",
|
{"page" : "godmode/agentes/agent_manager",
|
||||||
"get_modules_json_for_multiple_snmp": 1,
|
"get_modules_json_for_multiple_snmp": 1,
|
||||||
|
"get_common_modules" : get_common_modules,
|
||||||
"id_snmp[]": idSNMP,
|
"id_snmp[]": idSNMP,
|
||||||
"id_snmp_serialize": $("#hidden-id_snmp_serialize").val()
|
"id_snmp_serialize": $("#hidden-id_snmp_serialize").val()
|
||||||
},
|
},
|
||||||
@ -682,5 +734,20 @@ function snmp_changed_by_multiple_snmp (event, id_snmp, selected) {
|
|||||||
"json");
|
"json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function satellite_remote_warn(id_satellite, remote)
|
||||||
|
{
|
||||||
|
if(!remote)
|
||||||
|
{
|
||||||
|
$('#server_to_exec option[value='+id_satellite+']').prop('disabled', true);
|
||||||
|
$('#satellite_remote_tip').removeAttr("style").show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$('#satellite_remote_tip').removeAttr("style").hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* ]]> */
|
/* ]]> */
|
||||||
</script>
|
</script>
|
||||||
|
@ -353,7 +353,7 @@ html_print_table($table);
|
|||||||
echo "<div style='text-align:right; width:".$table->width."'>";
|
echo "<div style='text-align:right; width:".$table->width."'>";
|
||||||
echo '<span id="oid_loading" class="invisible">'.html_print_image('images/spinner.gif', true).'</span>';
|
echo '<span id="oid_loading" class="invisible">'.html_print_image('images/spinner.gif', true).'</span>';
|
||||||
html_print_submit_button(__('WMI Explore'), 'wmi_explore', false, ['class' => 'sub next']);
|
html_print_submit_button(__('WMI Explore'), 'wmi_explore', false, ['class' => 'sub next']);
|
||||||
echo '</div>';
|
echo '</div><br>';
|
||||||
|
|
||||||
if ($wmiexplore && $fail) {
|
if ($wmiexplore && $fail) {
|
||||||
ui_print_error_message(__('Unable to do WMI explorer'));
|
ui_print_error_message(__('Unable to do WMI explorer'));
|
||||||
@ -364,7 +364,7 @@ unset($table);
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
|
|
||||||
if ($wmiexplore && !$fail) {
|
if ($wmiexplore && !$fail) {
|
||||||
echo '<span id ="none_text" style="display: none;">'.__('None').'</span>';
|
echo '<br><span id ="none_text" style="display: none;">'.__('None').'</span>';
|
||||||
echo "<form method='post' action='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=wmi_explorer&id_agente=$id_agent'>";
|
echo "<form method='post' action='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&wizard_section=wmi_explorer&id_agente=$id_agent'>";
|
||||||
echo '<span id="form_interfaces">';
|
echo '<span id="form_interfaces">';
|
||||||
|
|
||||||
@ -379,7 +379,7 @@ if ($wmiexplore && !$fail) {
|
|||||||
// Namespace
|
// Namespace
|
||||||
html_print_input_hidden('server_to_exec', $server_to_exec);
|
html_print_input_hidden('server_to_exec', $server_to_exec);
|
||||||
|
|
||||||
$table->width = '98%';
|
$table->width = '100%';
|
||||||
|
|
||||||
// Mode selector
|
// Mode selector
|
||||||
$modes = [];
|
$modes = [];
|
||||||
@ -404,7 +404,7 @@ if ($wmiexplore && !$fail) {
|
|||||||
|
|
||||||
$table->colspan[1][0] = 2;
|
$table->colspan[1][0] = 2;
|
||||||
$table->data[1][2] = '<b>'.__('Modules').'</b>';
|
$table->data[1][2] = '<b>'.__('Modules').'</b>';
|
||||||
$table->cellstyle[1][2] = 'vertical-align: middle;';
|
$table->cellstyle[1][2] = 'text-align: center;';
|
||||||
|
|
||||||
// Components list
|
// Components list
|
||||||
$table->data[2][0] = '<div class="wizard_mode_form wizard_mode_components">';
|
$table->data[2][0] = '<div class="wizard_mode_form wizard_mode_components">';
|
||||||
@ -495,7 +495,7 @@ if ($wmiexplore && !$fail) {
|
|||||||
'width: 300px;'
|
'width: 300px;'
|
||||||
);
|
);
|
||||||
$table->data[2][0] .= '</div>';
|
$table->data[2][0] .= '</div>';
|
||||||
$table->cellstyle[2][0] = 'vertical-align: top; text-align: center;';
|
$table->cellstyle[2][0] = 'vertical-align: bottom; text-align: center;';
|
||||||
|
|
||||||
|
|
||||||
// Components arrow
|
// Components arrow
|
||||||
|
@ -1213,7 +1213,7 @@ if ($update_module || $create_module) {
|
|||||||
|
|
||||||
$max_timeout = (int) get_parameter('max_timeout');
|
$max_timeout = (int) get_parameter('max_timeout');
|
||||||
$max_retries = (int) get_parameter('max_retries');
|
$max_retries = (int) get_parameter('max_retries');
|
||||||
$min = (int) get_parameter_post('min');
|
$min = (int) get_parameter('min');
|
||||||
$max = (int) get_parameter('max');
|
$max = (int) get_parameter('max');
|
||||||
$interval = (int) get_parameter('module_interval', $intervalo);
|
$interval = (int) get_parameter('module_interval', $intervalo);
|
||||||
$ff_interval = (int) get_parameter('module_ff_interval');
|
$ff_interval = (int) get_parameter('module_ff_interval');
|
||||||
@ -1276,18 +1276,10 @@ if ($update_module || $create_module) {
|
|||||||
$m_hide = $m['hide'];
|
$m_hide = $m['hide'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($update_module) {
|
if ($m_hide == '1') {
|
||||||
if ($m_hide == '1') {
|
$macros[$k]['value'] = io_input_password(get_parameter($m['macro'], ''));
|
||||||
$macros[$k]['value'] = io_input_password(get_parameter($m['macro'], ''));
|
|
||||||
} else {
|
|
||||||
$macros[$k]['value'] = get_parameter($m['macro'], '');
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if ($m_hide == '1') {
|
$macros[$k]['value'] = get_parameter($m['macro'], '');
|
||||||
$macros[$k]['value'] = io_input_password($macros_names[$k]);
|
|
||||||
} else {
|
|
||||||
$macros[$k]['value'] = $macros_names[$k];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1338,7 +1330,7 @@ if ($update_module || $create_module) {
|
|||||||
// Change double quotes by single.
|
// Change double quotes by single.
|
||||||
$snmp_oid = preg_replace('/"/', ''', $snmp_oid);
|
$snmp_oid = preg_replace('/"/', ''', $snmp_oid);
|
||||||
|
|
||||||
if (empty($snmp_oid)) {
|
if (empty($snmp_oid) === true) {
|
||||||
// The user did not set any OID manually but did a SNMP walk.
|
// The user did not set any OID manually but did a SNMP walk.
|
||||||
$snmp_oid = (string) get_parameter('select_snmp_oid');
|
$snmp_oid = (string) get_parameter('select_snmp_oid');
|
||||||
}
|
}
|
||||||
@ -1347,18 +1339,30 @@ if ($update_module || $create_module) {
|
|||||||
// New support for snmp v3.
|
// New support for snmp v3.
|
||||||
$tcp_send = (string) get_parameter('snmp_version');
|
$tcp_send = (string) get_parameter('snmp_version');
|
||||||
$plugin_user = (string) get_parameter('snmp3_auth_user');
|
$plugin_user = (string) get_parameter('snmp3_auth_user');
|
||||||
$plugin_pass = io_input_password((string) get_parameter('snmp3_auth_pass'));
|
$plugin_pass = io_input_password(
|
||||||
|
(string) get_parameter('snmp3_auth_pass')
|
||||||
|
);
|
||||||
$plugin_parameter = (string) get_parameter('snmp3_auth_method');
|
$plugin_parameter = (string) get_parameter('snmp3_auth_method');
|
||||||
|
|
||||||
$custom_string_1 = (string) get_parameter('snmp3_privacy_method');
|
$custom_string_1 = (string) get_parameter('snmp3_privacy_method');
|
||||||
$custom_string_2 = io_input_password((string) get_parameter('snmp3_privacy_pass'));
|
$custom_string_2 = io_input_password(
|
||||||
|
(string) get_parameter('snmp3_privacy_pass')
|
||||||
|
);
|
||||||
$custom_string_3 = (string) get_parameter('snmp3_security_level');
|
$custom_string_3 = (string) get_parameter('snmp3_security_level');
|
||||||
|
} else if ($id_module_type >= 34 && $id_module_type <= 37) {
|
||||||
|
$tcp_send = (string) get_parameter('command_text');
|
||||||
|
$custom_string_1 = (string) get_parameter(
|
||||||
|
'command_credential_identifier'
|
||||||
|
);
|
||||||
|
$custom_string_2 = (string) get_parameter('command_os');
|
||||||
} else {
|
} else {
|
||||||
$plugin_user = (string) get_parameter('plugin_user');
|
$plugin_user = (string) get_parameter('plugin_user');
|
||||||
if (get_parameter('id_module_component_type') == 7) {
|
if (get_parameter('id_module_component_type') == 7) {
|
||||||
$plugin_pass = (int) get_parameter('plugin_pass');
|
$plugin_pass = (int) get_parameter('plugin_pass');
|
||||||
} else {
|
} else {
|
||||||
$plugin_pass = io_input_password((string) get_parameter('plugin_pass'));
|
$plugin_pass = io_input_password(
|
||||||
|
(string) get_parameter('plugin_pass')
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$plugin_parameter = (string) get_parameter('plugin_parameter');
|
$plugin_parameter = (string) get_parameter('plugin_parameter');
|
||||||
@ -1366,7 +1370,11 @@ if ($update_module || $create_module) {
|
|||||||
|
|
||||||
$parent_module_id = (int) get_parameter('parent_module_id');
|
$parent_module_id = (int) get_parameter('parent_module_id');
|
||||||
$ip_target = (string) get_parameter('ip_target');
|
$ip_target = (string) get_parameter('ip_target');
|
||||||
if ($ip_target == '') {
|
// No autofill if the module is a webserver module.
|
||||||
|
if ($ip_target == ''
|
||||||
|
&& $id_module_type < MODULE_WEBSERVER_CHECK_LATENCY
|
||||||
|
&& $id_module_type > MODULE_WEBSERVER_RETRIEVE_STRING_DATA
|
||||||
|
) {
|
||||||
$ip_target = 'auto';
|
$ip_target = 'auto';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1386,14 +1394,10 @@ if ($update_module || $create_module) {
|
|||||||
$ff_event_normal = (int) get_parameter('ff_event_normal');
|
$ff_event_normal = (int) get_parameter('ff_event_normal');
|
||||||
$ff_event_warning = (int) get_parameter('ff_event_warning');
|
$ff_event_warning = (int) get_parameter('ff_event_warning');
|
||||||
$ff_event_critical = (int) get_parameter('ff_event_critical');
|
$ff_event_critical = (int) get_parameter('ff_event_critical');
|
||||||
$ff_type = (int) get_parameter('ff_type');
|
$ff_type = (int) get_parameter('ff_type', $module['ff_type']);
|
||||||
$each_ff = (int) get_parameter('each_ff');
|
$each_ff = (int) get_parameter('each_ff', $module['each_ff']);
|
||||||
$ff_timeout = (int) get_parameter('ff_timeout');
|
$ff_timeout = (int) get_parameter('ff_timeout');
|
||||||
$unit = (string) get_parameter('unit_select');
|
$unit = (string) get_parameter('unit');
|
||||||
if ($unit == 'none') {
|
|
||||||
$unit = (string) get_parameter('unit_text');
|
|
||||||
}
|
|
||||||
|
|
||||||
$id_tag = (array) get_parameter('id_tag_selected');
|
$id_tag = (array) get_parameter('id_tag_selected');
|
||||||
$serialize_ops = (string) get_parameter('serialize_ops');
|
$serialize_ops = (string) get_parameter('serialize_ops');
|
||||||
$critical_instructions = (string) get_parameter('critical_instructions');
|
$critical_instructions = (string) get_parameter('critical_instructions');
|
||||||
@ -1567,8 +1571,14 @@ if ($update_module) {
|
|||||||
|
|
||||||
foreach ($plugin_parameter_split as $key => $value) {
|
foreach ($plugin_parameter_split as $key => $value) {
|
||||||
if ($key == 1) {
|
if ($key == 1) {
|
||||||
$values['plugin_parameter'] .= 'http_auth_user '.$http_user.'
';
|
if ($http_user) {
|
||||||
$values['plugin_parameter'] .= 'http_auth_pass '.$http_pass.'
';
|
$values['plugin_parameter'] .= 'http_auth_user '.$http_user.'
';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($http_pass) {
|
||||||
|
$values['plugin_parameter'] .= 'http_auth_pass '.$http_pass.'
';
|
||||||
|
}
|
||||||
|
|
||||||
$values['plugin_parameter'] .= $value.'
';
|
$values['plugin_parameter'] .= $value.'
';
|
||||||
} else {
|
} else {
|
||||||
$values['plugin_parameter'] .= $value.'
';
|
$values['plugin_parameter'] .= $value.'
';
|
||||||
@ -1765,8 +1775,14 @@ if ($create_module) {
|
|||||||
|
|
||||||
foreach ($plugin_parameter_split as $key => $value) {
|
foreach ($plugin_parameter_split as $key => $value) {
|
||||||
if ($key == 1) {
|
if ($key == 1) {
|
||||||
$values['plugin_parameter'] .= 'http_auth_user '.$http_user.'
';
|
if ($http_user) {
|
||||||
$values['plugin_parameter'] .= 'http_auth_pass '.$http_pass.'
';
|
$values['plugin_parameter'] .= 'http_auth_user '.$http_user.'
';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($http_pass) {
|
||||||
|
$values['plugin_parameter'] .= 'http_auth_pass '.$http_pass.'
';
|
||||||
|
}
|
||||||
|
|
||||||
$values['plugin_parameter'] .= $value.'
';
|
$values['plugin_parameter'] .= $value.'
';
|
||||||
} else {
|
} else {
|
||||||
$values['plugin_parameter'] .= $value.'
';
|
$values['plugin_parameter'] .= $value.'
';
|
||||||
@ -2103,8 +2119,7 @@ if ($delete_module) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MODULE DUPLICATION
|
// MODULE DUPLICATION.
|
||||||
// ==================.
|
|
||||||
if (!empty($duplicate_module)) {
|
if (!empty($duplicate_module)) {
|
||||||
// DUPLICATE agent module !
|
// DUPLICATE agent module !
|
||||||
$id_duplicate_module = $duplicate_module;
|
$id_duplicate_module = $duplicate_module;
|
||||||
@ -2150,8 +2165,46 @@ if (!empty($duplicate_module)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// UPDATE GIS
|
// MODULE ENABLE/DISABLE.
|
||||||
// ==========.
|
if ($enable_module) {
|
||||||
|
$result = modules_change_disabled($enable_module, 0);
|
||||||
|
$modulo_nombre = db_get_row_sql('SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = '.$enable_module.'');
|
||||||
|
$modulo_nombre = $modulo_nombre['nombre'];
|
||||||
|
|
||||||
|
if ($result === NOERR) {
|
||||||
|
enterprise_hook('config_agents_enable_module_conf', [$id_agente, $enable_module]);
|
||||||
|
db_pandora_audit('Module management', 'Enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||||
|
} else {
|
||||||
|
db_pandora_audit('Module management', 'Fail to enable #'.$enable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_result_message(
|
||||||
|
$result,
|
||||||
|
__('Successfully enabled'),
|
||||||
|
__('Could not be enabled')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($disable_module) {
|
||||||
|
$result = modules_change_disabled($disable_module, 1);
|
||||||
|
$modulo_nombre = db_get_row_sql('SELECT nombre FROM tagente_modulo WHERE id_agente_modulo = '.$disable_module.'');
|
||||||
|
$modulo_nombre = $modulo_nombre['nombre'];
|
||||||
|
|
||||||
|
if ($result === NOERR) {
|
||||||
|
enterprise_hook('config_agents_disable_module_conf', [$id_agente, $disable_module]);
|
||||||
|
db_pandora_audit('Module management', 'Disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||||
|
} else {
|
||||||
|
db_pandora_audit('Module management', 'Fail to disable #'.$disable_module.' | '.$modulo_nombre.' | '.$agent['alias']);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_print_result_message(
|
||||||
|
$result,
|
||||||
|
__('Successfully disabled'),
|
||||||
|
__('Could not be disabled')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// UPDATE GIS.
|
||||||
$updateGIS = get_parameter('update_gis', 0);
|
$updateGIS = get_parameter('update_gis', 0);
|
||||||
if ($updateGIS) {
|
if ($updateGIS) {
|
||||||
$updateGisData = get_parameter('update_gis_data');
|
$updateGisData = get_parameter('update_gis_data');
|
||||||
@ -2225,6 +2278,10 @@ if ($updateGIS) {
|
|||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
// Load page depending on tab selected
|
// Load page depending on tab selected
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
|
if ($_SESSION['create_module'] && $config['welcome_state'] == 1) {
|
||||||
|
$edit_module = true;
|
||||||
|
}
|
||||||
|
|
||||||
switch ($tab) {
|
switch ($tab) {
|
||||||
case 'main':
|
case 'main':
|
||||||
include 'agent_manager.php';
|
include 'agent_manager.php';
|
||||||
@ -2239,8 +2296,11 @@ switch ($tab) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'alert':
|
case 'alert':
|
||||||
// Because $id_agente is set, it will show only agent alerts.
|
/*
|
||||||
// This var is for not display create button on alert list.
|
* Because $id_agente is set, it will show only agent alerts
|
||||||
|
* This var is for not display create button on alert list
|
||||||
|
*/
|
||||||
|
|
||||||
$dont_display_alert_create_bttn = true;
|
$dont_display_alert_create_bttn = true;
|
||||||
include 'godmode/alerts/alert_list.php';
|
include 'godmode/alerts/alert_list.php';
|
||||||
break;
|
break;
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
// Load global vars
|
// Load global vars
|
||||||
check_login();
|
check_login();
|
||||||
|
|
||||||
// Take some parameters (GET)
|
// Take some parameters (GET).
|
||||||
$offset = (int) get_parameter('offset');
|
$offset = (int) get_parameter('offset');
|
||||||
$group_id = (int) get_parameter('group_id');
|
$group_id = (int) get_parameter('group_id');
|
||||||
$ag_group = get_parameter('ag_group_refresh', -1);
|
$ag_group = get_parameter('ag_group_refresh', -1);
|
||||||
@ -47,10 +47,10 @@ require_once 'include/functions_users.php';
|
|||||||
|
|
||||||
$search = get_parameter('search', '');
|
$search = get_parameter('search', '');
|
||||||
|
|
||||||
// Prepare the tab system to the future
|
// Prepare the tab system to the future.
|
||||||
$tab = 'view';
|
$tab = 'view';
|
||||||
|
|
||||||
// Setup tab
|
// Setup tab.
|
||||||
$viewtab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente">'.html_print_image('images/operation.png', true, ['title' => __('View')]).'</a>';
|
$viewtab['text'] = '<a href="index.php?sec=estado&sec2=operation/agentes/estado_agente">'.html_print_image('images/operation.png', true, ['title' => __('View')]).'</a>';
|
||||||
|
|
||||||
$viewtab['operation'] = true;
|
$viewtab['operation'] = true;
|
||||||
@ -59,10 +59,10 @@ $viewtab['active'] = false;
|
|||||||
|
|
||||||
$onheader = ['view' => $viewtab];
|
$onheader = ['view' => $viewtab];
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
ui_print_page_header(__('Agents defined in %s', get_product_name()), 'images/agent_mc.png', false, '', true, $onheader);
|
ui_print_page_header(__('Agents defined in %s', get_product_name()), 'images/agent_mc.png', false, '', true, $onheader);
|
||||||
|
|
||||||
// Perform actions
|
// Perform actions.
|
||||||
$agent_to_delete = (int) get_parameter('borrar_agente');
|
$agent_to_delete = (int) get_parameter('borrar_agente');
|
||||||
$enable_agent = (int) get_parameter('enable_agent');
|
$enable_agent = (int) get_parameter('enable_agent');
|
||||||
$disable_agent = (int) get_parameter('disable_agent');
|
$disable_agent = (int) get_parameter('disable_agent');
|
||||||
@ -99,7 +99,7 @@ if ($agent_to_delete) {
|
|||||||
ui_print_result_message($result, __('Success deleted agent.'), __('Could not be deleted.'));
|
ui_print_result_message($result, __('Success deleted agent.'), __('Could not be deleted.'));
|
||||||
|
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
// Check if the remote config file still exist
|
// Check if the remote config file still exist.
|
||||||
if (isset($config['remote_config'])) {
|
if (isset($config['remote_config'])) {
|
||||||
enterprise_include_once('include/functions_config_agents.php');
|
enterprise_include_once('include/functions_config_agents.php');
|
||||||
if (enterprise_hook('config_agents_has_remote_configuration', [$id_agente])) {
|
if (enterprise_hook('config_agents_has_remote_configuration', [$id_agente])) {
|
||||||
@ -114,7 +114,7 @@ if ($enable_agent) {
|
|||||||
$alias = agents_get_alias($enable_agent);
|
$alias = agents_get_alias($enable_agent);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
// Update the agent from the metaconsole cache
|
// Update the agent from the metaconsole cache.
|
||||||
enterprise_include_once('include/functions_agents.php');
|
enterprise_include_once('include/functions_agents.php');
|
||||||
$values = ['disabled' => 0];
|
$values = ['disabled' => 0];
|
||||||
enterprise_hook('agent_update_from_cache', [$enable_agent, $values, $server_name]);
|
enterprise_hook('agent_update_from_cache', [$enable_agent, $values, $server_name]);
|
||||||
@ -136,7 +136,7 @@ if ($disable_agent) {
|
|||||||
$alias = agents_get_alias($disable_agent);
|
$alias = agents_get_alias($disable_agent);
|
||||||
|
|
||||||
if ($result) {
|
if ($result) {
|
||||||
// Update the agent from the metaconsole cache
|
// Update the agent from the metaconsole cache.
|
||||||
enterprise_include_once('include/functions_agents.php');
|
enterprise_include_once('include/functions_agents.php');
|
||||||
$values = ['disabled' => 1];
|
$values = ['disabled' => 1];
|
||||||
enterprise_hook('agent_update_from_cache', [$disable_agent, $values, $server_name]);
|
enterprise_hook('agent_update_from_cache', [$disable_agent, $values, $server_name]);
|
||||||
@ -163,7 +163,7 @@ echo '<td>';
|
|||||||
|
|
||||||
echo __('Group').' ';
|
echo __('Group').' ';
|
||||||
$own_info = get_user_info($config['id_user']);
|
$own_info = get_user_info($config['id_user']);
|
||||||
if (!$own_info['is_admin'] && !check_acl($config['id_user'], 0, 'AW')) {
|
if (!$own_info['is_admin'] && !check_acl($config['id_user'], 0, 'AR') && !check_acl($config['id_user'], 0, 'AW')) {
|
||||||
$return_all_group = false;
|
$return_all_group = false;
|
||||||
} else {
|
} else {
|
||||||
$return_all_group = true;
|
$return_all_group = true;
|
||||||
@ -223,6 +223,10 @@ switch ($config['dbtype']) {
|
|||||||
case 'oracle':
|
case 'oracle':
|
||||||
$order_collation = '';
|
$order_collation = '';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Default.
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$selected = true;
|
$selected = true;
|
||||||
@ -252,6 +256,10 @@ switch ($sortField) {
|
|||||||
'order' => 'DESC',
|
'order' => 'DESC',
|
||||||
];
|
];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Default.
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -274,6 +282,10 @@ switch ($sortField) {
|
|||||||
'order' => 'DESC',
|
'order' => 'DESC',
|
||||||
];
|
];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Default.
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -296,6 +308,10 @@ switch ($sortField) {
|
|||||||
'order' => 'DESC',
|
'order' => 'DESC',
|
||||||
];
|
];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Default.
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -318,6 +334,10 @@ switch ($sortField) {
|
|||||||
'order' => 'DESC',
|
'order' => 'DESC',
|
||||||
];
|
];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Default.
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -378,7 +398,7 @@ if ($os != 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$user_groups_to_sql = '';
|
$user_groups_to_sql = '';
|
||||||
// Show only selected groups
|
// Show only selected groups.
|
||||||
if ($ag_group > 0) {
|
if ($ag_group > 0) {
|
||||||
$ag_groups = [];
|
$ag_groups = [];
|
||||||
$ag_groups = (array) $ag_group;
|
$ag_groups = (array) $ag_group;
|
||||||
@ -388,7 +408,7 @@ if ($ag_group > 0) {
|
|||||||
|
|
||||||
$user_groups_to_sql = implode(',', $ag_groups);
|
$user_groups_to_sql = implode(',', $ag_groups);
|
||||||
} else {
|
} else {
|
||||||
// Concatenate AW and AD permisions to get all the possible groups where the user can manage
|
// Concatenate AW and AD permisions to get all the possible groups where the user can manage.
|
||||||
$user_groupsAW = users_get_groups($config['id_user'], 'AW');
|
$user_groupsAW = users_get_groups($config['id_user'], 'AW');
|
||||||
$user_groupsAD = users_get_groups($config['id_user'], 'AD');
|
$user_groupsAD = users_get_groups($config['id_user'], 'AD');
|
||||||
|
|
||||||
@ -431,18 +451,27 @@ $sql = sprintf(
|
|||||||
|
|
||||||
$agents = db_get_all_rows_sql($sql);
|
$agents = db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
// Delete rnum row generated by oracle_recode_query() function
|
// Delete rnum row generated by oracle_recode_query() function.
|
||||||
if (($config['dbtype'] == 'oracle') && ($agents !== false)) {
|
if (($config['dbtype'] == 'oracle') && ($agents !== false)) {
|
||||||
for ($i = 0; $i < count($agents); $i++) {
|
for ($i = 0; $i < count($agents); $i++) {
|
||||||
unset($agents[$i]['rnum']);
|
unset($agents[$i]['rnum']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare pagination
|
// Prepare pagination.
|
||||||
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&recursion=$recursion&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset);
|
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&recursion=$recursion&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset);
|
||||||
|
|
||||||
if ($agents !== false) {
|
if ($agents !== false) {
|
||||||
// Urls to sort the table.
|
// Urls to sort the table.
|
||||||
|
if ($config['language'] == 'ja'
|
||||||
|
|| $config['language'] == 'zh_CN'
|
||||||
|
|| $own_info['language'] == 'ja'
|
||||||
|
|| $own_info['language'] == 'zh_CN'
|
||||||
|
) {
|
||||||
|
// Adds a custom font size for Japanese and Chinese language.
|
||||||
|
$custom_font_size = 'custom_font_size';
|
||||||
|
}
|
||||||
|
|
||||||
$url_up_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=up&disabled=$disabled';
|
$url_up_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=up&disabled=$disabled';
|
||||||
$url_down_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=down&disabled=$disabled';
|
$url_down_agente = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=name&sort=down&disabled=$disabled';
|
||||||
$url_up_remote = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=remote&sort=up&disabled=$disabled';
|
$url_up_remote = 'index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id='.$ag_group.'&recursion='.$recursion.'&search='.$search.'&os='.$os.'&offset='.$offset.'&sort_field=remote&sort=up&disabled=$disabled';
|
||||||
@ -468,21 +497,21 @@ if ($agents !== false) {
|
|||||||
$rowPair = true;
|
$rowPair = true;
|
||||||
$iterator = 0;
|
$iterator = 0;
|
||||||
foreach ($agents as $agent) {
|
foreach ($agents as $agent) {
|
||||||
// Begin Update tagente.remote 0/1 with remote agent function return
|
// Begin Update tagente.remote 0/1 with remote agent function return.
|
||||||
if (enterprise_hook('config_agents_has_remote_configuration', [$agent['id_agente']])) {
|
if (enterprise_hook('config_agents_has_remote_configuration', [$agent['id_agente']])) {
|
||||||
db_process_sql_update('tagente', ['remote' => 1], 'id_agente = '.$agent['id_agente'].'');
|
db_process_sql_update('tagente', ['remote' => 1], 'id_agente = '.$agent['id_agente'].'');
|
||||||
} else {
|
} else {
|
||||||
db_process_sql_update('tagente', ['remote' => 0], 'id_agente = '.$agent['id_agente'].'');
|
db_process_sql_update('tagente', ['remote' => 0], 'id_agente = '.$agent['id_agente'].'');
|
||||||
}
|
}
|
||||||
|
|
||||||
// End Update tagente.remote 0/1 with remote agent function return
|
// End Update tagente.remote 0/1 with remote agent function return.
|
||||||
$all_groups = agents_get_all_groups_agent($agent['id_agente'], $agent['id_grupo']);
|
$all_groups = agents_get_all_groups_agent($agent['id_agente'], $agent['id_grupo']);
|
||||||
$check_aw = check_acl_one_of_groups($config['id_user'], $all_groups, 'AW');
|
$check_aw = check_acl_one_of_groups($config['id_user'], $all_groups, 'AW');
|
||||||
$check_ad = check_acl_one_of_groups($config['id_user'], $all_groups, 'AD');
|
$check_ad = check_acl_one_of_groups($config['id_user'], $all_groups, 'AD');
|
||||||
|
|
||||||
$cluster = db_get_row_sql('select id from tcluster where id_agent = '.$agent['id_agente']);
|
$cluster = db_get_row_sql('select id from tcluster where id_agent = '.$agent['id_agente']);
|
||||||
|
|
||||||
// Do not show the agent if there is not enough permissions
|
// Do not show the agent if there is not enough permissions.
|
||||||
if (!$check_aw && !$check_ad) {
|
if (!$check_aw && !$check_ad) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -504,7 +533,7 @@ if ($agents !== false) {
|
|||||||
|
|
||||||
$rowPair = !$rowPair;
|
$rowPair = !$rowPair;
|
||||||
$iterator++;
|
$iterator++;
|
||||||
// Agent name
|
// Agent name.
|
||||||
echo "<tr class='$rowclass'><td class='$tdcolor' width='40%'>";
|
echo "<tr class='$rowclass'><td class='$tdcolor' width='40%'>";
|
||||||
if ($agent['disabled']) {
|
if ($agent['disabled']) {
|
||||||
echo '<em>';
|
echo '<em>';
|
||||||
@ -529,7 +558,7 @@ if ($agents !== false) {
|
|||||||
} else {
|
} else {
|
||||||
echo '<a alt ='.$agent['nombre']." href='index.php?sec=gagente&
|
echo '<a alt ='.$agent['nombre']." href='index.php?sec=gagente&
|
||||||
sec2=godmode/agentes/configurar_agente&tab=$main_tab&
|
sec2=godmode/agentes/configurar_agente&tab=$main_tab&
|
||||||
id_agente=".$agent['id_agente']."'>".'<span style="font-size: 7pt" title="'.$agent['nombre'].'">'.$agent['alias'].'</span>'.'</a>';
|
id_agente=".$agent['id_agente']."'>".'<span class="'.$custom_font_size.' title ="'.$agent['nombre'].'">'.$agent['alias'].'</span>'.'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</strong>';
|
echo '</strong>';
|
||||||
@ -609,12 +638,12 @@ if ($agents !== false) {
|
|||||||
|
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
|
||||||
// Operating System icon
|
// Operating System icon.
|
||||||
echo "<td class='$tdcolor' align='left' valign='middle'>";
|
echo "<td class='$tdcolor' align='left' valign='middle'>";
|
||||||
ui_print_os_icon($agent['id_os'], false);
|
ui_print_os_icon($agent['id_os'], false);
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
|
||||||
// Type agent (Networt, Software or Satellite)
|
// Type agent (Networt, Software or Satellite).
|
||||||
echo "<td class='$tdcolor' align='left' valign='middle'>";
|
echo "<td class='$tdcolor' align='left' valign='middle'>";
|
||||||
echo ui_print_type_agent_icon(
|
echo ui_print_type_agent_icon(
|
||||||
$agent['id_os'],
|
$agent['id_os'],
|
||||||
@ -626,10 +655,12 @@ if ($agents !== false) {
|
|||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
|
||||||
|
|
||||||
// Group icon and name
|
// Group icon and name.
|
||||||
echo "<td class='$tdcolor' align='left' valign='middle'>".ui_print_group_icon($agent['id_grupo'], true).'</td>';
|
echo "<td class='$tdcolor' align='left' valign='middle'>".ui_print_group_icon($agent['id_grupo'], true).'</td>';
|
||||||
// Description
|
|
||||||
echo "<td class='".$tdcolor."f9'>".ui_print_truncate_text($agent['comentarios'], 'description', true, true, true, '[…]', 'font-size: 6.5pt;').'</td>';
|
// Description.
|
||||||
|
echo "<td class='".$tdcolor."f9'><span class='".$custom_font_size."'>".ui_print_truncate_text($agent['comentarios'], 'description', true, true, true, '[…]').'</span></td>';
|
||||||
|
|
||||||
// Action
|
// Action
|
||||||
// When there is only one element in page it's necesary go back page.
|
// When there is only one element in page it's necesary go back page.
|
||||||
if ((count($agents) == 1) && ($offset >= $config['block_size'])) {
|
if ((count($agents) == 1) && ($offset >= $config['block_size'])) {
|
||||||
@ -680,14 +711,14 @@ if ($agents !== false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
ui_pagination($total_agents, "index.php?sec=gagente&sec2=godmode/agentes/modificar_agente&group_id=$ag_group&recursion=$recursion&search=$search&sort_field=$sortField&sort=$sort&disabled=$disabled&os=$os", $offset);
|
||||||
echo "<table width='100%'><tr><td align='right'>";
|
echo "<table width='100%'><tr><td align='right'>";
|
||||||
} else {
|
} else {
|
||||||
ui_print_info_message(['no_close' => true, 'message' => __('There are no defined agents') ]);
|
ui_print_info_message(['no_close' => true, 'message' => __('There are no defined agents') ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_acl($config['id_user'], 0, 'AW')) {
|
if (check_acl($config['id_user'], 0, 'AW')) {
|
||||||
// Create agent button
|
// Create agent button.
|
||||||
echo '<div style="text-align: right;">';
|
echo '<div style="text-align: right;">';
|
||||||
echo '<form method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente">';
|
echo '<form method="post" action="index.php?sec=gagente&sec2=godmode/agentes/configurar_agente">';
|
||||||
html_print_input_hidden('new_agent', 1);
|
html_print_input_hidden('new_agent', 1);
|
||||||
|
@ -842,7 +842,9 @@ foreach ($modules as $module) {
|
|||||||
$module['str_warning'],
|
$module['str_warning'],
|
||||||
$module['max_critical'],
|
$module['max_critical'],
|
||||||
$module['min_critical'],
|
$module['min_critical'],
|
||||||
$module['str_critical']
|
$module['str_critical'],
|
||||||
|
$module['warning_inverse'],
|
||||||
|
$module['critical_inverse']
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$data[7] = '';
|
$data[7] = '';
|
||||||
|
@ -1,16 +1,32 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Extension to manage a list of gateways and the node address where they should
|
||||||
|
* point to.
|
||||||
|
*
|
||||||
|
* @category Modules
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Community
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
|
||||||
// ==================================================
|
|
||||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
|
||||||
// Please see http://pandorafms.org for full contribution list
|
|
||||||
// This program is free software; you can redistribute it and/or
|
|
||||||
// modify it under the terms of the GNU General Public License
|
|
||||||
// as published by the Free Software Foundation for version 2.
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
require_once 'include/functions_network_components.php';
|
require_once 'include/functions_network_components.php';
|
||||||
enterprise_include_once('include/functions_local_components.php');
|
enterprise_include_once('include/functions_local_components.php');
|
||||||
|
|
||||||
@ -19,18 +35,65 @@ if (is_ajax()) {
|
|||||||
$snmp_walk = (bool) get_parameter('snmp_walk');
|
$snmp_walk = (bool) get_parameter('snmp_walk');
|
||||||
$get_module_component = (bool) get_parameter('get_module_component');
|
$get_module_component = (bool) get_parameter('get_module_component');
|
||||||
$get_module_components = (bool) get_parameter('get_module_components');
|
$get_module_components = (bool) get_parameter('get_module_components');
|
||||||
$get_module_local_components = (bool) get_parameter('get_module_local_components');
|
$get_module_local_components = (bool) get_parameter(
|
||||||
$get_module_local_component = (bool) get_parameter('get_module_local_component');
|
'get_module_local_components'
|
||||||
|
);
|
||||||
|
$get_module_local_component = (bool) get_parameter(
|
||||||
|
'get_module_local_component'
|
||||||
|
);
|
||||||
|
|
||||||
if ($get_module_component) {
|
if ($get_module_component) {
|
||||||
$id_component = (int) get_parameter('id_module_component');
|
$id_component = (int) get_parameter('id_module_component');
|
||||||
|
|
||||||
$component = db_get_row('tnetwork_component', 'id_nc', $id_component);
|
$component = db_get_row('tnetwork_component', 'id_nc', $id_component);
|
||||||
|
|
||||||
$component['throw_unknown_events'] = network_components_is_disable_type_event($id_component, EVENTS_GOING_UNKNOWN);
|
$component['throw_unknown_events'] = network_components_is_disable_type_event(
|
||||||
|
$id_component,
|
||||||
|
EVENTS_GOING_UNKNOWN
|
||||||
|
);
|
||||||
|
|
||||||
// Decrypt passwords in the component.
|
// Decrypt passwords in the component.
|
||||||
$component['plugin_pass'] = io_output_password($component['plugin_pass']);
|
$component['plugin_pass'] = io_output_password(
|
||||||
|
$component['plugin_pass']
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($component['type'] >= 15
|
||||||
|
&& $component['type'] <= 18
|
||||||
|
) {
|
||||||
|
// New support for snmp v3.
|
||||||
|
$component['snmp_version'] = $component['tcp_send'];
|
||||||
|
$component['snmp3_auth_user'] = io_safe_output(
|
||||||
|
$component['plugin_user']
|
||||||
|
);
|
||||||
|
// Must use io_output_password.
|
||||||
|
$component['snmp3_auth_pass'] = io_safe_output(
|
||||||
|
$component['plugin_pass']
|
||||||
|
);
|
||||||
|
$component['snmp3_auth_method'] = io_safe_output(
|
||||||
|
$component['plugin_parameter']
|
||||||
|
);
|
||||||
|
$component['snmp3_privacy_method'] = io_safe_output(
|
||||||
|
$component['custom_string_1']
|
||||||
|
);
|
||||||
|
$component['snmp3_privacy_pass'] = io_safe_output(
|
||||||
|
$component['custom_string_2']
|
||||||
|
);
|
||||||
|
$component['snmp3_security_level'] = io_safe_output(
|
||||||
|
$component['custom_string_3']
|
||||||
|
);
|
||||||
|
} else if ($component['type'] >= 34
|
||||||
|
&& $component['type'] <= 37
|
||||||
|
) {
|
||||||
|
$component['command_text'] = io_safe_output(
|
||||||
|
$component['tcp_send']
|
||||||
|
);
|
||||||
|
$component['command_credential_identifier'] = io_safe_output(
|
||||||
|
$component['custom_string_1']
|
||||||
|
);
|
||||||
|
$component['command_os'] = io_safe_output(
|
||||||
|
$component['custom_string_2']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$component['str_warning'] = io_safe_output($component['str_warning']);
|
$component['str_warning'] = io_safe_output($component['str_warning']);
|
||||||
$component['str_critical'] = io_safe_output($component['str_critical']);
|
$component['str_critical'] = io_safe_output($component['str_critical']);
|
||||||
@ -83,33 +146,29 @@ if (is_ajax()) {
|
|||||||
|
|
||||||
$component = db_get_row('tlocal_component', 'id', $id_component);
|
$component = db_get_row('tlocal_component', 'id', $id_component);
|
||||||
foreach ($component as $index => $element) {
|
foreach ($component as $index => $element) {
|
||||||
$component[$index] = html_entity_decode($element, ENT_QUOTES, 'UTF-8');
|
$component[$index] = html_entity_decode(
|
||||||
|
$element,
|
||||||
|
ENT_QUOTES,
|
||||||
|
'UTF-8'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$typeName = local_components_parse_module_extract_value('module_type', $component['data']);
|
$typeName = local_components_parse_module_extract_value(
|
||||||
|
'module_type',
|
||||||
|
$component['data']
|
||||||
|
);
|
||||||
|
|
||||||
switch ($config['dbtype']) {
|
$component['type'] = db_get_value_sql(
|
||||||
case 'mysql':
|
'
|
||||||
$component['type'] = db_get_value_sql(
|
SELECT id_tipo
|
||||||
'
|
FROM ttipo_modulo
|
||||||
SELECT id_tipo
|
WHERE nombre LIKE "'.$typeName.'"'
|
||||||
FROM ttipo_modulo
|
);
|
||||||
WHERE nombre LIKE "'.$typeName.'"'
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'postgresql':
|
$component['throw_unknown_events'] = !local_components_is_disable_type_event(
|
||||||
case 'oracle':
|
$id_component,
|
||||||
$component['type'] = db_get_value_sql(
|
EVENTS_GOING_UNKNOWN
|
||||||
'
|
);
|
||||||
SELECT id_tipo
|
|
||||||
FROM ttipo_modulo
|
|
||||||
WHERE nombre LIKE \''.$typeName.'\''
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$component['throw_unknown_events'] = !local_components_is_disable_type_event($id_component, EVENTS_GOING_UNKNOWN);
|
|
||||||
|
|
||||||
echo io_json_mb_encode($component);
|
echo io_json_mb_encode($component);
|
||||||
return;
|
return;
|
||||||
@ -136,7 +195,9 @@ if (is_ajax()) {
|
|||||||
$snmp3_auth_method = get_parameter('snmp3_auth_method');
|
$snmp3_auth_method = get_parameter('snmp3_auth_method');
|
||||||
$snmp3_auth_pass = io_safe_output(get_parameter('snmp3_auth_pass'));
|
$snmp3_auth_pass = io_safe_output(get_parameter('snmp3_auth_pass'));
|
||||||
$snmp3_privacy_method = get_parameter('snmp3_privacy_method');
|
$snmp3_privacy_method = get_parameter('snmp3_privacy_method');
|
||||||
$snmp3_privacy_pass = io_safe_output(get_parameter('snmp3_privacy_pass'));
|
$snmp3_privacy_pass = io_safe_output(
|
||||||
|
get_parameter('snmp3_privacy_pass')
|
||||||
|
);
|
||||||
$snmp_port = get_parameter('snmp_port');
|
$snmp_port = get_parameter('snmp_port');
|
||||||
|
|
||||||
$snmpwalk = get_snmpwalk(
|
$snmpwalk = get_snmpwalk(
|
||||||
@ -177,7 +238,7 @@ require_once 'include/functions_exportserver.php';
|
|||||||
require_once $config['homedir'].'/include/functions_modules.php';
|
require_once $config['homedir'].'/include/functions_modules.php';
|
||||||
require_once $config['homedir'].'/include/functions_agents.php';
|
require_once $config['homedir'].'/include/functions_agents.php';
|
||||||
|
|
||||||
// Reading a module
|
// Reading a module.
|
||||||
if ($id_agent_module) {
|
if ($id_agent_module) {
|
||||||
$module = modules_get_agentmodule($id_agent_module);
|
$module = modules_get_agentmodule($id_agent_module);
|
||||||
$moduletype = $module['id_modulo'];
|
$moduletype = $module['id_modulo'];
|
||||||
@ -202,19 +263,25 @@ if ($id_agent_module) {
|
|||||||
$snmp_community = $module['snmp_community'];
|
$snmp_community = $module['snmp_community'];
|
||||||
$snmp_oid = $module['snmp_oid'];
|
$snmp_oid = $module['snmp_oid'];
|
||||||
|
|
||||||
// New support for snmp v3
|
// New support for snmp v3.
|
||||||
$snmp_version = $module['tcp_send'];
|
$snmp_version = $module['tcp_send'];
|
||||||
$snmp3_auth_user = $module['plugin_user'];
|
$snmp3_auth_user = $module['plugin_user'];
|
||||||
$snmp3_auth_pass = io_output_password($module['plugin_pass']);
|
$snmp3_auth_pass = io_output_password($module['plugin_pass']);
|
||||||
|
|
||||||
// Auth method could be MD5 or SHA
|
// Auth method could be MD5 or SHA.
|
||||||
$snmp3_auth_method = $module['plugin_parameter'];
|
$snmp3_auth_method = $module['plugin_parameter'];
|
||||||
|
|
||||||
// Privacy method could be DES or AES
|
// Privacy method could be DES or AES.
|
||||||
$snmp3_privacy_method = $module['custom_string_1'];
|
$snmp3_privacy_method = $module['custom_string_1'];
|
||||||
$snmp3_privacy_pass = io_output_password($module['custom_string_2']);
|
$snmp3_privacy_pass = io_output_password($module['custom_string_2']);
|
||||||
|
|
||||||
// Security level Could be noAuthNoPriv | authNoPriv | authPriv
|
// For Remote cmd fields are reused:
|
||||||
|
// tcp_send, custom_string_1, custom_string_2.
|
||||||
|
$command_text = $module['tcp_send'];
|
||||||
|
$command_credential_identifier = $module['custom_string_1'];
|
||||||
|
$command_os = $module['custom_string_2'];
|
||||||
|
|
||||||
|
// Security level Could be noAuthNoPriv | authNoPriv | authPriv.
|
||||||
$snmp3_security_level = $module['custom_string_3'];
|
$snmp3_security_level = $module['custom_string_3'];
|
||||||
|
|
||||||
$ip_target = $module['ip_target'];
|
$ip_target = $module['ip_target'];
|
||||||
@ -265,39 +332,39 @@ if ($id_agent_module) {
|
|||||||
$id_category = $module['id_category'];
|
$id_category = $module['id_category'];
|
||||||
|
|
||||||
$cron_interval = explode(' ', $module['cron_interval']);
|
$cron_interval = explode(' ', $module['cron_interval']);
|
||||||
if (isset($cron_interval[4])) {
|
if (isset($cron_interval[4]) === true) {
|
||||||
$minute_from = $cron_interval[0];
|
$minute_from = $cron_interval[0];
|
||||||
$min = explode('-', $minute_from);
|
$minute = explode('-', $minute_from);
|
||||||
$minute_from = $min[0];
|
$minute_from = $minute[0];
|
||||||
if (isset($min[1])) {
|
if (isset($minute[1]) === true) {
|
||||||
$minute_to = $min[1];
|
$minute_to = $minute[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
$hour_from = $cron_interval[1];
|
$hour_from = $cron_interval[1];
|
||||||
$h = explode('-', $hour_from);
|
$h = explode('-', $hour_from);
|
||||||
$hour_from = $h[0];
|
$hour_from = $h[0];
|
||||||
if (isset($h[1])) {
|
if (isset($h[1]) === true) {
|
||||||
$hour_to = $h[1];
|
$hour_to = $h[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
$mday_from = $cron_interval[2];
|
$mday_from = $cron_interval[2];
|
||||||
$md = explode('-', $mday_from);
|
$md = explode('-', $mday_from);
|
||||||
$mday_from = $md[0];
|
$mday_from = $md[0];
|
||||||
if (isset($md[1])) {
|
if (isset($md[1]) === true) {
|
||||||
$mday_to = $md[1];
|
$mday_to = $md[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
$month_from = $cron_interval[3];
|
$month_from = $cron_interval[3];
|
||||||
$m = explode('-', $month_from);
|
$m = explode('-', $month_from);
|
||||||
$month_from = $m[0];
|
$month_from = $m[0];
|
||||||
if (isset($m[1])) {
|
if (isset($m[1]) === true) {
|
||||||
$month_to = $m[1];
|
$month_to = $m[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
$wday_from = $cron_interval[4];
|
$wday_from = $cron_interval[4];
|
||||||
$wd = explode('-', $wday_from);
|
$wd = explode('-', $wday_from);
|
||||||
$wday_from = $wd[0];
|
$wday_from = $wd[0];
|
||||||
if (isset($wd[1])) {
|
if (isset($wd[1]) === true) {
|
||||||
$wday_to = $wd[1];
|
$wday_to = $wd[1];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -315,14 +382,20 @@ if ($id_agent_module) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$module_macros = null;
|
$module_macros = null;
|
||||||
if (isset($module['module_macros'])) {
|
if (isset($module['module_macros']) === true) {
|
||||||
$module_macros = json_decode(base64_decode($module['module_macros']), true);
|
$module_macros = json_decode(
|
||||||
|
base64_decode($module['module_macros']),
|
||||||
|
true
|
||||||
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!isset($moduletype)) {
|
if (isset($moduletype) === false) {
|
||||||
$moduletype = (string) get_parameter('moduletype');
|
$moduletype = (string) get_parameter('moduletype');
|
||||||
|
if ($_SESSION['create_module'] && $config['welcome_state'] == 1) {
|
||||||
|
$moduletype = 'networkserver';
|
||||||
|
}
|
||||||
|
|
||||||
// Clean up specific network modules fields
|
// Clean up specific network modules fields.
|
||||||
$name = '';
|
$name = '';
|
||||||
$description = '';
|
$description = '';
|
||||||
$id_module_group = 1;
|
$id_module_group = 1;
|
||||||
@ -374,7 +447,7 @@ if ($id_agent_module) {
|
|||||||
$str_critical = '';
|
$str_critical = '';
|
||||||
$ff_event = 0;
|
$ff_event = 0;
|
||||||
|
|
||||||
// New support for snmp v3
|
// New support for snmp v3.
|
||||||
$snmp_version = 1;
|
$snmp_version = 1;
|
||||||
$snmp3_auth_user = '';
|
$snmp3_auth_user = '';
|
||||||
$snmp3_auth_pass = '';
|
$snmp3_auth_pass = '';
|
||||||
@ -383,6 +456,11 @@ if ($id_agent_module) {
|
|||||||
$snmp3_privacy_pass = '';
|
$snmp3_privacy_pass = '';
|
||||||
$snmp3_security_level = '';
|
$snmp3_security_level = '';
|
||||||
|
|
||||||
|
// For Remote CMD.
|
||||||
|
$command_text = '';
|
||||||
|
$command_credential_identifier = '';
|
||||||
|
$command_os = '';
|
||||||
|
|
||||||
$critical_instructions = '';
|
$critical_instructions = '';
|
||||||
$warning_instructions = '';
|
$warning_instructions = '';
|
||||||
$unknown_instructions = '';
|
$unknown_instructions = '';
|
||||||
@ -418,7 +496,9 @@ if ($id_agent_module) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$is_function_policies = enterprise_include_once('include/functions_policies.php');
|
$is_function_policies = enterprise_include_once(
|
||||||
|
'include/functions_policies.php'
|
||||||
|
);
|
||||||
|
|
||||||
if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
|
if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
|
||||||
$relink_policy = get_parameter('relink_policy', 0);
|
$relink_policy = get_parameter('relink_policy', 0);
|
||||||
@ -428,19 +508,32 @@ if ($is_function_policies !== ENTERPRISE_NOT_HOOK) {
|
|||||||
$policy_info = policies_info_module_policy($id_agent_module);
|
$policy_info = policies_info_module_policy($id_agent_module);
|
||||||
$policy_id = $policy_info['id_policy'];
|
$policy_id = $policy_info['id_policy'];
|
||||||
|
|
||||||
if ($relink_policy && policies_get_policy_queue_status($policy_id) == STATUS_IN_QUEUE_APPLYING) {
|
if ($relink_policy
|
||||||
ui_print_error_message(__('This policy is applying and cannot be modified'));
|
&& policies_get_policy_queue_status($policy_id) == STATUS_IN_QUEUE_APPLYING
|
||||||
|
) {
|
||||||
|
ui_print_error_message(
|
||||||
|
__('This policy is applying and cannot be modified')
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
$result = policies_relink_module($id_agent_module);
|
$result = policies_relink_module($id_agent_module);
|
||||||
ui_print_result_message($result, __('Module will be linked in the next application'));
|
ui_print_result_message(
|
||||||
|
$result,
|
||||||
|
__('Module will be linked in the next application')
|
||||||
|
);
|
||||||
|
|
||||||
db_pandora_audit('Agent management', 'Re-link module '.$id_agent_module);
|
db_pandora_audit(
|
||||||
|
'Agent management',
|
||||||
|
'Re-link module '.$id_agent_module
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($unlink_policy) {
|
if ($unlink_policy) {
|
||||||
$result = policies_unlink_module($id_agent_module);
|
$result = policies_unlink_module($id_agent_module);
|
||||||
ui_print_result_message($result, __('Module will be unlinked in the next application'));
|
ui_print_result_message(
|
||||||
|
$result,
|
||||||
|
__('Module will be unlinked in the next application')
|
||||||
|
);
|
||||||
|
|
||||||
db_pandora_audit('Agent management', 'Unlink module '.$id_agent_module);
|
db_pandora_audit('Agent management', 'Unlink module '.$id_agent_module);
|
||||||
}
|
}
|
||||||
@ -452,7 +545,7 @@ $remote_conf = false;
|
|||||||
|
|
||||||
if ($__code_from !== 'policies') {
|
if ($__code_from !== 'policies') {
|
||||||
// Only check in the module editor.
|
// Only check in the module editor.
|
||||||
// Check ACL tags
|
// Check ACL tags.
|
||||||
$tag_acl = true;
|
$tag_acl = true;
|
||||||
|
|
||||||
// If edit a existing module.
|
// If edit a existing module.
|
||||||
@ -479,12 +572,12 @@ switch ($moduletype) {
|
|||||||
$remote_conf = false;
|
$remote_conf = false;
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
enterprise_include_once('include/functions_config_agents.php');
|
enterprise_include_once('include/functions_config_agents.php');
|
||||||
$remote_conf = enterprise_hook('config_agents_has_remote_configuration', [$id_agente]);
|
$remote_conf = enterprise_hook(
|
||||||
|
'config_agents_has_remote_configuration',
|
||||||
|
[$id_agente]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Categories is an array containing the allowed module types
|
|
||||||
(generic_data, generic_string, etc) from ttipo_modulo (field categoria) */
|
|
||||||
$categories = [
|
$categories = [
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
@ -503,12 +596,16 @@ switch ($moduletype) {
|
|||||||
'config_agents_get_module_from_conf',
|
'config_agents_get_module_from_conf',
|
||||||
[
|
[
|
||||||
$id_agente,
|
$id_agente,
|
||||||
io_safe_output(modules_get_agentmodule_name($id_agent_module)),
|
io_safe_output(
|
||||||
|
modules_get_agentmodule_name($id_agent_module)
|
||||||
|
),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
enterprise_include('godmode/agentes/module_manager_editor_data.php');
|
enterprise_include(
|
||||||
|
'godmode/agentes/module_manager_editor_data.php'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -520,6 +617,10 @@ switch ($moduletype) {
|
|||||||
4,
|
4,
|
||||||
5,
|
5,
|
||||||
];
|
];
|
||||||
|
if (enterprise_installed()) {
|
||||||
|
$categories[] = 10;
|
||||||
|
}
|
||||||
|
|
||||||
include 'module_manager_editor_common.php';
|
include 'module_manager_editor_common.php';
|
||||||
include 'module_manager_editor_network.php';
|
include 'module_manager_editor_network.php';
|
||||||
break;
|
break;
|
||||||
@ -562,9 +663,12 @@ switch ($moduletype) {
|
|||||||
include 'module_manager_editor_wmi.php';
|
include 'module_manager_editor_wmi.php';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// WARNING: type 7 is reserved on enterprise
|
// WARNING: type 7 is reserved on enterprise.
|
||||||
default:
|
default:
|
||||||
if (enterprise_include('godmode/agentes/module_manager_editor.php') === ENTERPRISE_NOT_HOOK) {
|
if (enterprise_include(
|
||||||
|
'godmode/agentes/module_manager_editor.php'
|
||||||
|
) === ENTERPRISE_NOT_HOOK
|
||||||
|
) {
|
||||||
ui_print_error_message(sprintf(__('Invalid module type')));
|
ui_print_error_message(sprintf(__('Invalid module type')));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -580,7 +684,7 @@ if ($config['enterprise_installed'] && $id_agent_module) {
|
|||||||
|
|
||||||
echo '<h3 id="message" class="error invisible"></h3>';
|
echo '<h3 id="message" class="error invisible"></h3>';
|
||||||
|
|
||||||
// TODO: Change to the ui_print_error system
|
// TODO: Change to the ui_print_error system.
|
||||||
echo '<form method="post" id="module_form">';
|
echo '<form method="post" id="module_form">';
|
||||||
|
|
||||||
ui_toggle(
|
ui_toggle(
|
||||||
@ -602,12 +706,18 @@ ui_toggle(
|
|||||||
|
|
||||||
if ($moduletype != 13) {
|
if ($moduletype != 13) {
|
||||||
ui_toggle(
|
ui_toggle(
|
||||||
html_print_table($table_new_relations, true).html_print_table($table_relations, true),
|
html_print_table(
|
||||||
|
$table_new_relations,
|
||||||
|
true
|
||||||
|
).html_print_table(
|
||||||
|
$table_relations,
|
||||||
|
true
|
||||||
|
),
|
||||||
__('Module relations')
|
__('Module relations')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Submit
|
// Submit.
|
||||||
echo '<div class="action-buttons" style="width: '.$table_simple->width.'">';
|
echo '<div class="action-buttons" style="width: '.$table_simple->width.'">';
|
||||||
if ($id_agent_module) {
|
if ($id_agent_module) {
|
||||||
html_print_submit_button(
|
html_print_submit_button(
|
||||||
@ -659,38 +769,84 @@ ui_require_javascript_file('pandora_modules');
|
|||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
/* <![CDATA[ */
|
/* <![CDATA[ */
|
||||||
var no_name_lang =`
|
var no_name_lang =`
|
||||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No module name provided') ]); ?>
|
<?php
|
||||||
|
echo ui_print_info_message(
|
||||||
|
[
|
||||||
|
'no_close' => true,
|
||||||
|
'message' => __('No module name provided'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
?>
|
||||||
`;
|
`;
|
||||||
var no_target_lang =`
|
var no_target_lang =`
|
||||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No target IP provided') ]); ?>
|
<?php
|
||||||
|
echo ui_print_info_message(
|
||||||
|
[
|
||||||
|
'no_close' => true,
|
||||||
|
'message' => __('No target IP provided'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
?>
|
||||||
`;
|
`;
|
||||||
var no_oid_lang =`
|
var no_oid_lang =`
|
||||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No SNMP OID provided') ]); ?>
|
<?php
|
||||||
|
echo ui_print_info_message(
|
||||||
|
[
|
||||||
|
'no_close' => true,
|
||||||
|
'message' => __('No SNMP OID provided'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
?>
|
||||||
`;
|
`;
|
||||||
var no_prediction_module_lang =`
|
var no_prediction_module_lang =`
|
||||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No module to predict') ]); ?>
|
<?php
|
||||||
|
echo ui_print_info_message(
|
||||||
|
[
|
||||||
|
'no_close' => true,
|
||||||
|
'message' => __('No module to predict'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
?>
|
||||||
`;
|
`;
|
||||||
var no_plugin_lang =`
|
var no_plugin_lang =`
|
||||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No plug-in provided') ]); ?>
|
<?php
|
||||||
|
echo ui_print_info_message(
|
||||||
|
[
|
||||||
|
'no_close' => true,
|
||||||
|
'message' => __('No plug-in provided'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
?>
|
||||||
`;
|
`;
|
||||||
var no_execute_test_from =`
|
var no_execute_test_from =`
|
||||||
<?php echo ui_print_info_message(['no_close' => true, 'message' => __('No server provided') ]); ?>
|
<?php
|
||||||
|
echo ui_print_info_message(
|
||||||
|
[
|
||||||
|
'no_close' => true,
|
||||||
|
'message' => __('No server provided'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
?>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
$(document).ready (function () {
|
$(document).ready (function () {
|
||||||
configure_modules_form ();
|
configure_modules_form ();
|
||||||
|
|
||||||
$("#module_form").submit(function() {
|
$("#module_form").submit(function() {
|
||||||
if (typeof(check_remote_conf) != 'undefined') {
|
if (typeof(check_remote_conf) != 'undefined') {
|
||||||
if (check_remote_conf) {
|
if (check_remote_conf) {
|
||||||
//Check the name
|
//Check the name.
|
||||||
name = $("#text-name").val();
|
name = $("#text-name").val();
|
||||||
remote_config = $("#textarea_configuration_data").val();
|
remote_config = $("#textarea_configuration_data").val();
|
||||||
|
|
||||||
regexp_name = new RegExp('module_name\\s*' + name.replace(/([^0-9A-Za-z_])/g, "\\$1") +"\n");
|
regexp_name = new RegExp(
|
||||||
|
'module_name\\s*' + name.replace(/([^0-9A-Za-z_])/g,
|
||||||
|
"\\$1"
|
||||||
|
) +"\n"
|
||||||
|
);
|
||||||
|
|
||||||
regexp_plugin = new RegExp('^module_plugin\\s*');
|
regexp_plugin = new RegExp('^module_plugin\\s*');
|
||||||
|
|
||||||
if (remote_config == '' || remote_config.match(regexp_name) ||
|
if (remote_config == '' || remote_config.match(regexp_name) ||
|
||||||
remote_config.match(regexp_plugin) ||
|
remote_config.match(regexp_plugin) ||
|
||||||
$("#id_module_type").val()==100 ||
|
$("#id_module_type").val()==100 ||
|
||||||
@ -698,15 +854,15 @@ $(document).ready (function () {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alert("<?php echo __('Error, The field name and name in module_name in data configuration are different.'); ?>");
|
alert ("<?php echo __('Error, The field name and name in module_name in data configuration are different.'); ?>");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
function checkKeepaliveModule() {
|
function checkKeepaliveModule() {
|
||||||
// keepalive modules have id = 100
|
// keepalive modules have id = 100
|
||||||
if ($("#id_module_type").val()==100 ||
|
if ($("#id_module_type").val()==100 ||
|
||||||
@ -720,11 +876,10 @@ $(document).ready (function () {
|
|||||||
$("#simple-configuration_data").show();
|
$("#simple-configuration_data").show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkKeepaliveModule();
|
checkKeepaliveModule();
|
||||||
|
|
||||||
$("#id_module_type").change (function () {
|
$("#id_module_type").change (function () {
|
||||||
checkKeepaliveModule();
|
checkKeepaliveModule();
|
||||||
});
|
});
|
||||||
@ -741,11 +896,15 @@ function handleFileSelect() {
|
|||||||
err_msg_2 = "<?php echo __('Couldn`t find the fileinput element.'); ?>";
|
err_msg_2 = "<?php echo __('Couldn`t find the fileinput element.'); ?>";
|
||||||
err_msg_3 = "<?php echo __('This browser doesn`t seem to support the files property of file inputs.'); ?>";
|
err_msg_3 = "<?php echo __('This browser doesn`t seem to support the files property of file inputs.'); ?>";
|
||||||
err_msg_4 = "<?php echo __('Please select a file before clicking Load'); ?>";
|
err_msg_4 = "<?php echo __('Please select a file before clicking Load'); ?>";
|
||||||
|
|
||||||
if (!window.File || !window.FileReader || !window.FileList || !window.Blob) {
|
if (!window.File ||
|
||||||
|
!window.FileReader ||
|
||||||
|
!window.FileList ||
|
||||||
|
!window.Blob
|
||||||
|
) {
|
||||||
$('#mssg_error_div').append(err_msg_1);
|
$('#mssg_error_div').append(err_msg_1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
input = document.getElementById('file-file_html_text');
|
input = document.getElementById('file-file_html_text');
|
||||||
|
|
||||||
@ -756,7 +915,7 @@ function handleFileSelect() {
|
|||||||
$('#mssg_error_div').append(err_msg_3);
|
$('#mssg_error_div').append(err_msg_3);
|
||||||
}
|
}
|
||||||
else if (!input.files[0]) {
|
else if (!input.files[0]) {
|
||||||
$('#mssg_error_div').append(err_msg_4);
|
$('#mssg_error_div').append(err_msg_4);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
file = input.files[0];
|
file = input.files[0];
|
||||||
@ -767,7 +926,9 @@ function handleFileSelect() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function receivedText() {
|
function receivedText() {
|
||||||
document.getElementById('textarea_custom_string_1').appendChild(document.createTextNode(fr.result));
|
document
|
||||||
}
|
.getElementById('textarea_custom_string_1')
|
||||||
|
.appendChild(document.createTextNode(fr.result));
|
||||||
|
}
|
||||||
/* ]]> */
|
/* ]]> */
|
||||||
</script>
|
</script>
|
||||||
|
@ -78,6 +78,13 @@ function push_table_advanced($row, $id=false)
|
|||||||
function add_component_selection($id_network_component_type)
|
function add_component_selection($id_network_component_type)
|
||||||
{
|
{
|
||||||
global $table_simple;
|
global $table_simple;
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
if ($config['style'] === 'pandora_black') {
|
||||||
|
$background_row = 'background-color: #444';
|
||||||
|
} else {
|
||||||
|
$background_row = 'background-color: #cfcfcf';
|
||||||
|
}
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
$data[0] = __('Using module component').' ';
|
$data[0] = __('Using module component').' ';
|
||||||
@ -116,7 +123,7 @@ function add_component_selection($id_network_component_type)
|
|||||||
$data[1] .= '</span>';
|
$data[1] .= '</span>';
|
||||||
|
|
||||||
$table_simple->colspan['module_component'][1] = 3;
|
$table_simple->colspan['module_component'][1] = 3;
|
||||||
$table_simple->rowstyle['module_component'] = 'background-color: #cfcfcf';
|
$table_simple->rowstyle['module_component'] = $background_row;
|
||||||
|
|
||||||
prepend_table_simple($data, 'module_component');
|
prepend_table_simple($data, 'module_component');
|
||||||
}
|
}
|
||||||
@ -125,7 +132,7 @@ function add_component_selection($id_network_component_type)
|
|||||||
require_once 'include/functions_network_components.php';
|
require_once 'include/functions_network_components.php';
|
||||||
enterprise_include_once('include/functions_policies.php');
|
enterprise_include_once('include/functions_policies.php');
|
||||||
|
|
||||||
// If code comes from policies disable export select
|
// If code comes from policies disable export select.
|
||||||
global $__code_from;
|
global $__code_from;
|
||||||
|
|
||||||
$disabledBecauseInPolicy = false;
|
$disabledBecauseInPolicy = false;
|
||||||
@ -134,7 +141,9 @@ $largeClassDisabledBecauseInPolicy = '';
|
|||||||
|
|
||||||
$page = get_parameter('page', '');
|
$page = get_parameter('page', '');
|
||||||
|
|
||||||
if (strstr($page, 'policy_modules') === false && $id_agent_module) {
|
$in_policies_page = strstr($page, 'policy_modules');
|
||||||
|
|
||||||
|
if ($in_policies_page === false && $id_agent_module) {
|
||||||
if ($config['enterprise_installed']) {
|
if ($config['enterprise_installed']) {
|
||||||
if (policies_is_module_linked($id_agent_module) == 1) {
|
if (policies_is_module_linked($id_agent_module) == 1) {
|
||||||
$disabledBecauseInPolicy = 1;
|
$disabledBecauseInPolicy = 1;
|
||||||
@ -200,8 +209,7 @@ $table_simple->data[0][1] = html_print_input_text_extended(
|
|||||||
$largeClassDisabledBecauseInPolicy,
|
$largeClassDisabledBecauseInPolicy,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
// $table_simple->data[0][1] = html_print_input_text ('name',
|
|
||||||
// io_safe_output($name), '', 45, 100, true, $disabledBecauseInPolicy);
|
|
||||||
if (!empty($id_agent_module) && isset($id_agente)) {
|
if (!empty($id_agent_module) && isset($id_agente)) {
|
||||||
$table_simple->data[0][1] .= ' <b>'.__('ID').'</b> '.$id_agent_module.' ';
|
$table_simple->data[0][1] .= ' <b>'.__('ID').'</b> '.$id_agent_module.' ';
|
||||||
|
|
||||||
@ -228,7 +236,13 @@ if ($policy_link != 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$table_simple->data[0][2] = __('Disabled');
|
$table_simple->data[0][2] = __('Disabled');
|
||||||
$table_simple->data[0][2] .= html_print_checkbox('disabled', 1, $disabled, true, $disabled_enable);
|
$table_simple->data[0][2] .= html_print_checkbox(
|
||||||
|
'disabled',
|
||||||
|
1,
|
||||||
|
$disabled,
|
||||||
|
true,
|
||||||
|
$disabled_enable
|
||||||
|
);
|
||||||
$table_simple->data[0][3] = __('Module group');
|
$table_simple->data[0][3] = __('Module group');
|
||||||
$table_simple->data[0][3] .= html_print_select_from_sql(
|
$table_simple->data[0][3] .= html_print_select_from_sql(
|
||||||
'SELECT id_mg, name FROM tmodule_group ORDER BY name',
|
'SELECT id_mg, name FROM tmodule_group ORDER BY name',
|
||||||
@ -243,14 +257,26 @@ $table_simple->data[0][3] .= html_print_select_from_sql(
|
|||||||
$disabledBecauseInPolicy
|
$disabledBecauseInPolicy
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ((isset($id_agent_module) && $id_agent_module) || $id_policy_module != 0) {
|
||||||
|
$edit = false;
|
||||||
|
} else {
|
||||||
|
$edit = true;
|
||||||
|
}
|
||||||
|
|
||||||
$in_policy = strstr($page, 'policy_modules');
|
$in_policy = strstr($page, 'policy_modules');
|
||||||
if (!$in_policy) {
|
if (!$in_policy) {
|
||||||
// Cannot select the current module to be itself parent
|
// Cannot select the current module to be itself parent.
|
||||||
$module_parent_filter = $id_agent_module ? ['tagente_modulo.id_agente_modulo' => "<>$id_agent_module"] : '';
|
$module_parent_filter = ($id_agent_module) ? ['tagente_modulo.id_agente_modulo' => "<>$id_agent_module"] : '';
|
||||||
$table_simple->data[1][0] = __('Module parent');
|
$table_simple->data[1][0] = __('Module parent');
|
||||||
$modules_can_be_parent = agents_get_modules($id_agente, false, $module_parent_filter);
|
$modules_can_be_parent = agents_get_modules(
|
||||||
// If the user cannot have access to parent module, only print the name
|
$id_agente,
|
||||||
if ($parent_module_id != 0 && !in_array($parent_module_id, array_keys($modules_can_be_parent))) {
|
false,
|
||||||
|
$module_parent_filter
|
||||||
|
);
|
||||||
|
// If the user cannot have access to parent module, only print the name.
|
||||||
|
if ($parent_module_id != 0
|
||||||
|
&& !in_array($parent_module_id, array_keys($modules_can_be_parent))
|
||||||
|
) {
|
||||||
$table_simple->data[1][1] = db_get_value(
|
$table_simple->data[1][1] = db_get_value(
|
||||||
'nombre',
|
'nombre',
|
||||||
'tagente_modulo',
|
'tagente_modulo',
|
||||||
@ -273,17 +299,6 @@ if (!$in_policy) {
|
|||||||
$table_simple->data[2][0] = __('Type').' '.ui_print_help_icon($help_type, true, '', 'images/help_green.png', '', 'module_type_help');
|
$table_simple->data[2][0] = __('Type').' '.ui_print_help_icon($help_type, true, '', 'images/help_green.png', '', 'module_type_help');
|
||||||
$table_simple->data[2][0] .= html_print_input_hidden('id_module_type_hidden', $id_module_type, true);
|
$table_simple->data[2][0] .= html_print_input_hidden('id_module_type_hidden', $id_module_type, true);
|
||||||
|
|
||||||
if (isset($id_agent_module)) {
|
|
||||||
if ($id_agent_module) {
|
|
||||||
$edit = false;
|
|
||||||
} else {
|
|
||||||
$edit = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Run into a policy
|
|
||||||
$edit = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$edit) {
|
if (!$edit) {
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT id_tipo, nombre
|
'SELECT id_tipo, nombre
|
||||||
@ -301,7 +316,11 @@ if (!$edit) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$table_simple->data[2][1] = '<em>'.modules_get_moduletype_description($id_module_type).' ('.$type_names_hash[$id_module_type].')</em>';
|
$table_simple->data[2][1] = '<em>'.modules_get_moduletype_description($id_module_type).' ('.$type_names_hash[$id_module_type].')</em>';
|
||||||
$table_simple->data[2][1] .= html_print_input_hidden('type_names', base64_encode(io_json_mb_encode($type_names_hash)), true);
|
$table_simple->data[2][1] .= html_print_input_hidden(
|
||||||
|
'type_names',
|
||||||
|
base64_encode(io_json_mb_encode($type_names_hash)),
|
||||||
|
true
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
if (isset($id_module_type)) {
|
if (isset($id_module_type)) {
|
||||||
$idModuleType = $id_module_type;
|
$idModuleType = $id_module_type;
|
||||||
@ -309,20 +328,30 @@ if (!$edit) {
|
|||||||
$idModuleType = '';
|
$idModuleType = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Removed web analysis and log4x from select
|
// Removed web analysis and log4x from select.
|
||||||
|
$tipe_not_in = '24, 25';
|
||||||
|
// TODO: FIX credential store for remote command in metaconsole.
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
$tipe_not_in = '24, 25, 34, 35, 36, 37';
|
||||||
|
}
|
||||||
|
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT id_tipo, descripcion, nombre
|
'SELECT id_tipo, descripcion, nombre, categoria
|
||||||
FROM ttipo_modulo
|
FROM ttipo_modulo
|
||||||
WHERE categoria IN (%s) AND id_tipo NOT IN (24, 25)
|
WHERE categoria IN (%s)
|
||||||
ORDER BY descripcion',
|
AND id_tipo NOT IN (%s)
|
||||||
implode(',', $categories)
|
ORDER BY id_tipo ASC',
|
||||||
|
implode(',', $categories),
|
||||||
|
$tipe_not_in
|
||||||
);
|
);
|
||||||
|
|
||||||
$type_names = db_get_all_rows_sql($sql);
|
$type_names = db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
$type_names_hash = [];
|
$type_names_hash = [];
|
||||||
$type_description_hash = [];
|
$type_description_hash = [];
|
||||||
if (isset($type_names) && is_array($type_names)) {
|
if (isset($type_names) === true
|
||||||
|
&& is_array($type_names) === true
|
||||||
|
) {
|
||||||
foreach ($type_names as $tn) {
|
foreach ($type_names as $tn) {
|
||||||
$type_names_hash[$tn['id_tipo']] = $tn['nombre'];
|
$type_names_hash[$tn['id_tipo']] = $tn['nombre'];
|
||||||
$type_description_hash[$tn['id_tipo']] = $tn['descripcion'];
|
$type_description_hash[$tn['id_tipo']] = $tn['descripcion'];
|
||||||
@ -338,7 +367,7 @@ if (!$edit) {
|
|||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
true,
|
false,
|
||||||
'',
|
'',
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
@ -346,8 +375,12 @@ if (!$edit) {
|
|||||||
100
|
100
|
||||||
);
|
);
|
||||||
|
|
||||||
// Store the relation between id and name of the types on a hidden field
|
// Store the relation between id and name of the types on a hidden field.
|
||||||
$table_simple->data[2][1] .= html_print_input_hidden('type_names', base64_encode(io_json_mb_encode($type_names_hash)), true);
|
$table_simple->data[2][1] .= html_print_input_hidden(
|
||||||
|
'type_names',
|
||||||
|
base64_encode(io_json_mb_encode($type_names_hash)),
|
||||||
|
true
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($edit_module) {
|
if ($edit_module) {
|
||||||
@ -376,15 +409,32 @@ if ($edit_module) {
|
|||||||
$help_header = 'webserver_module_tab';
|
$help_header = 'webserver_module_tab';
|
||||||
}
|
}
|
||||||
|
|
||||||
$table_simple->data[2][0] = __('Type').' '.ui_print_help_icon($help_header, true);
|
$table_simple->data[2][0] = __('Type').' ';
|
||||||
|
$table_simple->data[2][0] .= ui_print_help_icon($help_header, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($disabledBecauseInPolicy) {
|
if ($disabledBecauseInPolicy) {
|
||||||
$table_simple->data[2][3] .= html_print_input_hidden('id_module_group', $id_module_group, true);
|
$table_simple->data[2][3] .= html_print_input_hidden(
|
||||||
|
'id_module_group',
|
||||||
|
$id_module_group,
|
||||||
|
true
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$table_simple->data[3][0] = __('Dynamic Threshold Interval');
|
$table_simple->data[3][0] = __('Dynamic Threshold Interval');
|
||||||
$table_simple->data[3][1] = html_print_extended_select_for_time('dynamic_interval', $dynamic_interval, '', 'None', '0', 10, true, 'width:150px', false, $classdisabledBecauseInPolicy, $disabledBecauseInPolicy);
|
$table_simple->data[3][1] = html_print_extended_select_for_time(
|
||||||
|
'dynamic_interval',
|
||||||
|
$dynamic_interval,
|
||||||
|
'',
|
||||||
|
'None',
|
||||||
|
'0',
|
||||||
|
10,
|
||||||
|
true,
|
||||||
|
'width:150px',
|
||||||
|
false,
|
||||||
|
$classdisabledBecauseInPolicy,
|
||||||
|
$disabledBecauseInPolicy
|
||||||
|
);
|
||||||
$table_simple->data[3][1] .= '<a onclick=advanced_option_dynamic()>'.html_print_image('images/cog.png', true, ['title' => __('Advanced options Dynamic Threshold')]).'</a>';
|
$table_simple->data[3][1] .= '<a onclick=advanced_option_dynamic()>'.html_print_image('images/cog.png', true, ['title' => __('Advanced options Dynamic Threshold')]).'</a>';
|
||||||
if ($in_policy) {
|
if ($in_policy) {
|
||||||
$table_simple->cellclass[2][2] = 'hide_dinamic';
|
$table_simple->cellclass[2][2] = 'hide_dinamic';
|
||||||
@ -1101,9 +1151,8 @@ $macro_count++;
|
|||||||
|
|
||||||
html_print_input_hidden('module_macro_count', $macro_count);
|
html_print_input_hidden('module_macro_count', $macro_count);
|
||||||
|
|
||||||
/*
|
// Advanced form part.
|
||||||
Advanced form part */
|
// Add relationships.
|
||||||
// Add relationships
|
|
||||||
$table_new_relations = new stdClass();
|
$table_new_relations = new stdClass();
|
||||||
$table_new_relations->id = 'module_new_relations';
|
$table_new_relations->id = 'module_new_relations';
|
||||||
$table_new_relations->width = '100%';
|
$table_new_relations->width = '100%';
|
||||||
@ -1114,7 +1163,8 @@ $table_new_relations->style[0] = 'width: 10%; font-weight: bold;';
|
|||||||
$table_new_relations->style[1] = 'width: 25%; text-align: center;';
|
$table_new_relations->style[1] = 'width: 25%; text-align: center;';
|
||||||
$table_new_relations->style[2] = 'width: 10%; font-weight: bold;';
|
$table_new_relations->style[2] = 'width: 10%; font-weight: bold;';
|
||||||
$table_new_relations->style[3] = 'width: 25%; text-align: center;';
|
$table_new_relations->style[3] = 'width: 25%; text-align: center;';
|
||||||
$table_new_relations->style[4] = 'width: 30%; text-align: center;';
|
$table_new_relations->style[4] = 'width: 10%; font-weight: bold;';
|
||||||
|
$table_new_relations->style[5] = 'width: 25%; text-align: center;';
|
||||||
|
|
||||||
$table_new_relations->data[0][0] = __('Agent');
|
$table_new_relations->data[0][0] = __('Agent');
|
||||||
$params = [];
|
$params = [];
|
||||||
@ -1128,10 +1178,35 @@ $params['javascript_function_action_after_select_js_call'] = 'change_modules_aut
|
|||||||
$table_new_relations->data[0][1] = ui_print_agent_autocomplete_input($params);
|
$table_new_relations->data[0][1] = ui_print_agent_autocomplete_input($params);
|
||||||
$table_new_relations->data[0][2] = __('Module');
|
$table_new_relations->data[0][2] = __('Module');
|
||||||
$table_new_relations->data[0][3] = "<div id='module_autocomplete'></div>";
|
$table_new_relations->data[0][3] = "<div id='module_autocomplete'></div>";
|
||||||
$table_new_relations->data[0][4] = html_print_button(__('Add relationship'), 'add_relation', false, 'javascript: add_new_relation();', 'class="sub add"', true);
|
|
||||||
$table_new_relations->data[0][4] .= " <div id='add_relation_status' style='display: inline;'></div>";
|
|
||||||
|
|
||||||
// Relationship list
|
$array_rel_type = [];
|
||||||
|
$array_rel_type['direct'] = __('Direct');
|
||||||
|
$array_rel_type['failover'] = __('Failover');
|
||||||
|
$table_new_relations->data[0][4] = __('Rel. type');
|
||||||
|
$table_new_relations->data[0][5] = html_print_select(
|
||||||
|
$array_rel_type,
|
||||||
|
'relation_type',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
0,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
''
|
||||||
|
);
|
||||||
|
|
||||||
|
$table_new_relations->data[0][6] = html_print_button(
|
||||||
|
__('Add relationship'),
|
||||||
|
'add_relation',
|
||||||
|
false,
|
||||||
|
'javascript: add_new_relation();',
|
||||||
|
'class="sub add"',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$table_new_relations->data[0][6] .= " <div id='add_relation_status' style='display: inline;'></div>";
|
||||||
|
|
||||||
|
// Relationship list.
|
||||||
$table_relations = new stdClass();
|
$table_relations = new stdClass();
|
||||||
$table_relations->id = 'module_relations';
|
$table_relations->id = 'module_relations';
|
||||||
$table_relations->width = '100%';
|
$table_relations->width = '100%';
|
||||||
@ -1141,64 +1216,81 @@ $table_relations->data = [];
|
|||||||
$table_relations->rowstyle = [];
|
$table_relations->rowstyle = [];
|
||||||
$table_relations->rowstyle[-1] = 'display: none;';
|
$table_relations->rowstyle[-1] = 'display: none;';
|
||||||
$table_relations->style = [];
|
$table_relations->style = [];
|
||||||
$table_relations->style[2] = 'width: 10%; text-align: center;';
|
|
||||||
$table_relations->style[3] = 'width: 10%; text-align: center;';
|
$table_relations->style[3] = 'width: 10%; text-align: center;';
|
||||||
|
$table_relations->style[4] = 'width: 10%; text-align: center;';
|
||||||
|
|
||||||
$table_relations->head[0] = __('Agent');
|
$table_relations->head[0] = __('Agent');
|
||||||
$table_relations->head[1] = __('Module');
|
$table_relations->head[1] = __('Module');
|
||||||
$table_relations->head[2] = __('Changes').ui_print_help_tip(__('Activate this to prevent the relation from being updated or deleted'), true);
|
$table_relations->head[2] = __('Type');
|
||||||
$table_relations->head[3] = __('Delete');
|
$table_relations->head[3] = __('Changes').ui_print_help_tip(
|
||||||
|
__('Activate this to prevent the relation from being updated or deleted'),
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$table_relations->head[4] = __('Delete');
|
||||||
|
|
||||||
// Create an invisible row to use their html to add new rows
|
// Create an invisible row to use their html to add new rows.
|
||||||
$table_relations->data[-1][0] = '';
|
$table_relations->data[-1][0] = '';
|
||||||
$table_relations->data[-1][1] = '';
|
$table_relations->data[-1][1] = '';
|
||||||
$table_relations->data[-1][2] = '<a id="disable_updates_button" class="alpha50" href="">'.html_print_image('images/lock.png', true).'</a>';
|
$table_relations->data[-1][2] = '';
|
||||||
$table_relations->data[-1][3] = '<a id="delete_relation_button" href="">'.html_print_image('images/cross.png', true).'</a>';
|
$table_relations->data[-1][3] = '<a id="disable_updates_button" class="alpha50" href="">';
|
||||||
|
$table_relations->data[-1][3] .= html_print_image('images/lock.png', true).'</a>';
|
||||||
|
$table_relations->data[-1][4] = '<a id="delete_relation_button" href="">';
|
||||||
|
$table_relations->data[-1][4] .= html_print_image('images/cross.png', true).'</a>';
|
||||||
|
|
||||||
$module_relations = modules_get_relations(['id_module' => $id_agent_module]);
|
|
||||||
if (!$module_relations) {
|
|
||||||
$module_relations = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$relations_count = 0;
|
$relations_count = 0;
|
||||||
foreach ($module_relations as $key => $module_relation) {
|
if ($id_agent_module) {
|
||||||
if ($module_relation['module_a'] == $id_agent_module) {
|
$module_relations = modules_get_relations(['id_module' => $id_agent_module]);
|
||||||
$module_id = $module_relation['module_b'];
|
|
||||||
$agent_id = modules_give_agent_id_from_module_id($module_relation['module_b']);
|
if (!$module_relations) {
|
||||||
} else {
|
$module_relations = [];
|
||||||
$module_id = $module_relation['module_a'];
|
|
||||||
$agent_id = modules_give_agent_id_from_module_id($module_relation['module_a']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$agent_name = ui_print_agent_name($agent_id, true);
|
$relations_count = 0;
|
||||||
|
foreach ($module_relations as $key => $module_relation) {
|
||||||
|
if ($module_relation['module_a'] == $id_agent_module) {
|
||||||
|
$module_id = $module_relation['module_b'];
|
||||||
|
$agent_id = modules_give_agent_id_from_module_id(
|
||||||
|
$module_relation['module_b']
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$module_id = $module_relation['module_a'];
|
||||||
|
$agent_id = modules_give_agent_id_from_module_id(
|
||||||
|
$module_relation['module_a']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$module_name = modules_get_agentmodule_name($module_id);
|
$agent_name = ui_print_agent_name($agent_id, true);
|
||||||
if (empty($module_name) || $module_name == 'false') {
|
|
||||||
$module_name = $module_id;
|
$module_name = modules_get_agentmodule_name($module_id);
|
||||||
|
if (empty($module_name) || $module_name == 'false') {
|
||||||
|
$module_name = $module_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($module_relation['disable_update']) {
|
||||||
|
$disabled_update_class = '';
|
||||||
|
} else {
|
||||||
|
$disabled_update_class = 'alpha50';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Agent name.
|
||||||
|
$table_relations->data[$relations_count][0] = $agent_name;
|
||||||
|
// Module name.
|
||||||
|
$table_relations->data[$relations_count][1] = "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=".$agent_id.'&tab=module&edit_module=1&id_agent_module='.$module_id."'>".ui_print_truncate_text($module_name, 'module_medium', true, true, true, '[…]').'</a>';
|
||||||
|
// Type.
|
||||||
|
$table_relations->data[$relations_count][2] = ($module_relation['type'] === 'direct') ? __('Direct') : __('Failover');
|
||||||
|
// Lock relationship updates.
|
||||||
|
$table_relations->data[$relations_count][3] = '<a id="disable_updates_button" class="'.$disabled_update_class.'"href="javascript: change_lock_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/lock.png', true).'</a>';
|
||||||
|
// Delete relationship.
|
||||||
|
$table_relations->data[$relations_count][4] = '<a id="delete_relation_button" href="javascript: delete_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/cross.png', true).'</a>';
|
||||||
|
$relations_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($module_relation['disable_update']) {
|
|
||||||
$disabled_update_class = '';
|
|
||||||
} else {
|
|
||||||
$disabled_update_class = 'alpha50';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Agent name
|
|
||||||
$table_relations->data[$relations_count][0] = $agent_name;
|
|
||||||
// Module name
|
|
||||||
$table_relations->data[$relations_count][1] = "<a href='index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&id_agente=".$agent_id.'&tab=module&edit_module=1&id_agent_module='.$module_id."'>".ui_print_truncate_text($module_name, 'module_medium', true, true, true, '[…]').'</a>';
|
|
||||||
// Lock relationship updates
|
|
||||||
$table_relations->data[$relations_count][2] = '<a id="disable_updates_button" class="'.$disabled_update_class.'"href="javascript: change_lock_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/lock.png', true).'</a>';
|
|
||||||
// Delete relationship
|
|
||||||
$table_relations->data[$relations_count][3] = '<a id="delete_relation_button" href="javascript: delete_relation('.$relations_count.', '.$module_relation['id'].');">'.html_print_image('images/cross.png', true).'</a>';
|
|
||||||
$relations_count++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
html_print_input_hidden('module_relations_count', $relations_count);
|
html_print_input_hidden('module_relations_count', $relations_count);
|
||||||
|
|
||||||
ui_require_jquery_file('json');
|
ui_require_jquery_file('json');
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
@ -1343,8 +1435,6 @@ $(document).ready (function () {
|
|||||||
'width=800,height=600'
|
'width=800,height=600'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(type_name_selected == 'web_data' ||
|
if(type_name_selected == 'web_data' ||
|
||||||
type_name_selected == 'web_proc' ||
|
type_name_selected == 'web_proc' ||
|
||||||
@ -1365,8 +1455,6 @@ $(document).ready (function () {
|
|||||||
'width=800,height=600'
|
'width=800,height=600'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1386,7 +1474,7 @@ $(document).ready (function () {
|
|||||||
$('#minmax_warning').hide();
|
$('#minmax_warning').hide();
|
||||||
$('#svg_dinamic').hide();
|
$('#svg_dinamic').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type_name_selected.match(/async/) == null) {
|
if (type_name_selected.match(/async/) == null) {
|
||||||
$('#ff_timeout').hide();
|
$('#ff_timeout').hide();
|
||||||
$('#ff_timeout_disable').show();
|
$('#ff_timeout_disable').show();
|
||||||
@ -1396,16 +1484,16 @@ $(document).ready (function () {
|
|||||||
$('#ff_timeout_disable').hide();
|
$('#ff_timeout_disable').hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#id_module_type").trigger('change');
|
$("#id_module_type").trigger('change');
|
||||||
|
|
||||||
// Prevent the form submission when the user hits the enter button from the relationship autocomplete inputs
|
// Prevent the form submission when the user hits the enter button from the relationship autocomplete inputs
|
||||||
$("#text-autocomplete_agent_name").keydown(function(event) {
|
$("#text-autocomplete_agent_name").keydown(function(event) {
|
||||||
if(event.keyCode == 13) { // key code 13 is the enter button
|
if(event.keyCode == 13) { // key code 13 is the enter button
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//validate post_process. Change ',' by '.'
|
//validate post_process. Change ',' by '.'
|
||||||
$("#submit-updbutton").click (function () {
|
$("#submit-updbutton").click (function () {
|
||||||
validate_post_process();
|
validate_post_process();
|
||||||
@ -1512,7 +1600,6 @@ function advanced_option_dynamic() {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
$('.hide_dinamic').show();
|
$('.hide_dinamic').show();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1524,11 +1611,9 @@ function change_modules_autocomplete_input () {
|
|||||||
var module_autocomplete = $("#module_autocomplete");
|
var module_autocomplete = $("#module_autocomplete");
|
||||||
var load_icon = '<?php html_print_image('images/spinner.gif', false); ?>';
|
var load_icon = '<?php html_print_image('images/spinner.gif', false); ?>';
|
||||||
var error_icon = '<?php html_print_image('images/error_red.png', false); ?>';
|
var error_icon = '<?php html_print_image('images/error_red.png', false); ?>';
|
||||||
|
|
||||||
if (!module_autocomplete.hasClass('working')) {
|
if (!module_autocomplete.hasClass('working')) {
|
||||||
module_autocomplete.addClass('working');
|
module_autocomplete.addClass('working');
|
||||||
module_autocomplete.html(load_icon);
|
module_autocomplete.html(load_icon);
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "ajax.php",
|
url: "ajax.php",
|
||||||
@ -1563,22 +1648,26 @@ function change_modules_autocomplete_input () {
|
|||||||
|
|
||||||
// Add a new relation
|
// Add a new relation
|
||||||
function add_new_relation () {
|
function add_new_relation () {
|
||||||
var module_a_id = parseInt($("#hidden-id_agent_module").val());
|
var module_a_id = parseInt(
|
||||||
var module_b_id = parseInt($("#hidden-autocomplete_module_name_hidden").val());
|
$("#hidden-id_agent_module").val()
|
||||||
|
);
|
||||||
|
var module_b_id = parseInt(
|
||||||
|
$("#hidden-autocomplete_module_name_hidden").val()
|
||||||
|
);
|
||||||
var module_b_name = $("#text-autocomplete_module_name").val();
|
var module_b_name = $("#text-autocomplete_module_name").val();
|
||||||
var agent_b_name = $("#text-autocomplete_agent_name").val();
|
var agent_b_name = $("#text-autocomplete_agent_name").val();
|
||||||
|
var relation_type = $("#relation_type").val();
|
||||||
var hiddenRow = $("#module_relations--1");
|
var hiddenRow = $("#module_relations--1");
|
||||||
var button = $("#button-add_relation");
|
var button = $("#button-add_relation");
|
||||||
var iconPlaceholder = $("#add_relation_status");
|
var iconPlaceholder = $("#add_relation_status");
|
||||||
var load_icon = '<?php html_print_image('images/spinner.gif', false, ['style' => 'vertical-align:middle;']); ?>';
|
var load_icon = '<?php html_print_image('images/spinner.gif', false, ['style' => 'vertical-align:middle;']); ?>';
|
||||||
var suc_icon = '<?php html_print_image('images/ok.png', false, ['style' => 'vertical-align:middle;']); ?>';
|
var suc_icon = '<?php html_print_image('images/ok.png', false, ['style' => 'vertical-align:middle;']); ?>';
|
||||||
var error_icon = '<?php html_print_image('images/error_red.png', false, ['style' => 'vertical-align:middle;']); ?>';
|
var error_icon = '<?php html_print_image('images/error_red.png', false, ['style' => 'vertical-align:middle;']); ?>';
|
||||||
|
|
||||||
|
|
||||||
if (!button.hasClass('working')) {
|
if (!button.hasClass('working')) {
|
||||||
button.addClass('working');
|
button.addClass('working');
|
||||||
iconPlaceholder.html(load_icon);
|
iconPlaceholder.html(load_icon);
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "ajax.php",
|
url: "ajax.php",
|
||||||
@ -1588,7 +1677,8 @@ function add_new_relation () {
|
|||||||
add_module_relation: true,
|
add_module_relation: true,
|
||||||
id_module_a: module_a_id,
|
id_module_a: module_a_id,
|
||||||
id_module_b: module_b_id,
|
id_module_b: module_b_id,
|
||||||
name_module_b: module_b_name
|
name_module_b: module_b_name,
|
||||||
|
relation_type: relation_type
|
||||||
},
|
},
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
button.removeClass('working');
|
button.removeClass('working');
|
||||||
@ -1599,29 +1689,30 @@ function add_new_relation () {
|
|||||||
else {
|
else {
|
||||||
iconPlaceholder.html(suc_icon);
|
iconPlaceholder.html(suc_icon);
|
||||||
setTimeout( function() { iconPlaceholder.html(''); }, 2000);
|
setTimeout( function() { iconPlaceholder.html(''); }, 2000);
|
||||||
|
|
||||||
// Add the new row
|
// Add the new row
|
||||||
var relationsCount = parseInt($("#hidden-module_relations_count").val());
|
var relationsCount = parseInt($("#hidden-module_relations_count").val());
|
||||||
|
|
||||||
var rowClass = "datos";
|
var rowClass = "datos";
|
||||||
if (relationsCount % 2 != 0) {
|
if (relationsCount % 2 != 0) {
|
||||||
rowClass = "datos2";
|
rowClass = "datos2";
|
||||||
}
|
}
|
||||||
|
|
||||||
var rowHTML = '<tr id="module_relations-' + relationsCount + '" class="' + rowClass + '">' +
|
var rowHTML = '<tr id="module_relations-' + relationsCount + '" class="' + rowClass + '">' +
|
||||||
'<td id="module_relations-' + relationsCount + '-0"><b>' + agent_b_name + '</b></td>' +
|
'<td id="module_relations-' + relationsCount + '-0"><b>' + agent_b_name + '</b></td>' +
|
||||||
'<td id="module_relations-' + relationsCount + '-1">' + module_b_name + '</td>' +
|
'<td id="module_relations-' + relationsCount + '-1">' + module_b_name + '</td>' +
|
||||||
'<td id="module_relations-' + relationsCount + '-2" style="width: 10%; text-align: center;">' +
|
'<td id="module_relations-' + relationsCount + '-2">' + relation_type + '</td>' +
|
||||||
'<a id="disable_updates_button" class="alpha50" href="javascript: change_lock_relation(' + relationsCount + ', ' + data + ');">' +
|
'<td id="module_relations-' + relationsCount + '-3" style="width: 10%; text-align: center;">' +
|
||||||
'<?php echo html_print_image('images/lock.png', true); ?>' +
|
'<a id="disable_updates_button" class="alpha50" href="javascript: change_lock_relation(' + relationsCount + ', ' + data + ');">' +
|
||||||
'</a>' +
|
'<?php echo html_print_image('images/lock.png', true); ?>' +
|
||||||
'</td>' +
|
'</a>' +
|
||||||
'<td id="module_relations-' + relationsCount + '-3" style="width: 10%; text-align: center;">' +
|
'</td>' +
|
||||||
'<a id="delete_relation_button" href="javascript: delete_relation(' + relationsCount + ', ' + data + ');">' +
|
'<td id="module_relations-' + relationsCount + '-4" style="width: 10%; text-align: center;">' +
|
||||||
'<?php echo html_print_image('images/cross.png', true); ?>' +
|
'<a id="delete_relation_button" href="javascript: delete_relation(' + relationsCount + ', ' + data + ');">' +
|
||||||
'</a>' +
|
'<?php echo html_print_image('images/cross.png', true); ?>' +
|
||||||
'</td>' +
|
'</a>' +
|
||||||
'</tr>';
|
'</td>' +
|
||||||
|
'</tr>';
|
||||||
$("#module_relations").find("tbody").append(rowHTML);
|
$("#module_relations").find("tbody").append(rowHTML);
|
||||||
|
|
||||||
$("#hidden-module_relations_count").val(relationsCount + 1);
|
$("#hidden-module_relations_count").val(relationsCount + 1);
|
||||||
|
@ -1,30 +1,50 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/**
|
||||||
|
* Extension to manage a list of gateways and the node address where they should
|
||||||
|
* point to.
|
||||||
|
*
|
||||||
|
* @category Extensions
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Community
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2019 Artica Soluciones Tecnologicas
|
||||||
|
* Please see http://pandorafms.org for full contribution list
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation for version 2.
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
// Pandora FMS - http://pandorafms.com
|
|
||||||
// ==================================================
|
|
||||||
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
|
|
||||||
// Please see http://pandorafms.org for full contribution list
|
|
||||||
// This program is free software; you can redistribute it and/or
|
|
||||||
// modify it under the terms of the GNU General Public License
|
|
||||||
// as published by the Free Software Foundation for version 2.
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// GNU General Public License for more details.
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_snmp_browser.php';
|
require_once $config['homedir'].'/include/functions_snmp_browser.php';
|
||||||
$snmp_browser_path = is_metaconsole() ? '../../' : '';
|
$snmp_browser_path = (is_metaconsole()) ? '../../' : '';
|
||||||
$snmp_browser_path .= 'include/javascript/pandora_snmp_browser.js';
|
$snmp_browser_path .= 'include/javascript/pandora_snmp_browser.js';
|
||||||
echo "<script type='text/javascript' src='$snmp_browser_path'></script>";
|
echo "<script type='text/javascript' src='".$snmp_browser_path."'></script>";
|
||||||
// This line does not run with the dinamic loader editor in policies.
|
|
||||||
// ui_require_javascript_file ('pandora_snmp_browser');
|
// Define a custom action to save the OID selected
|
||||||
// WARNING REPEAT input hidden errors in console
|
// in the SNMP browser to the form.
|
||||||
// Save some variables for javascript functions
|
html_print_input_hidden(
|
||||||
// html_print_input_hidden ('ajax_url', ui_get_full_url("ajax.php"), false);
|
'custom_action',
|
||||||
// html_print_input_hidden ('search_matches_translation', __("Search matches"), false);
|
urlencode(
|
||||||
// Define a custom action to save the OID selected in the SNMP browser to the form
|
base64_encode(
|
||||||
html_print_input_hidden('custom_action', urlencode(base64_encode(' <a href="javascript:setOID()"><img src="'.ui_get_full_url('images').'/input_filter.disabled.png" title="'.__('Use this OID').'" style="vertical-align: middle;"></img></a>')), false);
|
' <a href="javascript:setOID()"><img src="'.ui_get_full_url('images').'/input_filter.disabled.png" title="'.__('Use this OID').'" style="vertical-align: middle;"></img></a>'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
$isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
|
$isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
|
||||||
|
|
||||||
@ -50,17 +70,15 @@ if (strstr($page, 'policy_modules') === false) {
|
|||||||
define('ID_NETWORK_COMPONENT_TYPE', 2);
|
define('ID_NETWORK_COMPONENT_TYPE', 2);
|
||||||
|
|
||||||
if (empty($update_module_id)) {
|
if (empty($update_module_id)) {
|
||||||
// Function in module_manager_editor_common.php
|
// Function in module_manager_editor_common.php.
|
||||||
add_component_selection(ID_NETWORK_COMPONENT_TYPE);
|
add_component_selection(ID_NETWORK_COMPONENT_TYPE);
|
||||||
} else {
|
|
||||||
// TODO: Print network component if available
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$extra_title = __('Network server module');
|
$extra_title = __('Network server module');
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
$data[0] = __('Target IP');
|
$data[0] = __('Target IP');
|
||||||
// show agent_for defect;
|
// Show agent_for defect.
|
||||||
if ($page == 'enterprise/godmode/policies/policy_modules') {
|
if ($page == 'enterprise/godmode/policies/policy_modules') {
|
||||||
if ($ip_target != 'auto' && $ip_target != '') {
|
if ($ip_target != 'auto' && $ip_target != '') {
|
||||||
$custom_ip_target = $ip_target;
|
$custom_ip_target = $ip_target;
|
||||||
@ -100,7 +118,7 @@ if ($page == 'enterprise/godmode/policies/policy_modules') {
|
|||||||
$data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true);
|
$data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// In ICMP modules, port is not configurable
|
// In ICMP modules, port is not configurable.
|
||||||
if ($id_module_type >= 6 && $id_module_type <= 7) {
|
if ($id_module_type >= 6 && $id_module_type <= 7) {
|
||||||
$data[2] = '';
|
$data[2] = '';
|
||||||
$data[3] = '';
|
$data[3] = '';
|
||||||
@ -148,7 +166,15 @@ if (!$adopt) {
|
|||||||
$classdisabledBecauseInPolicy
|
$classdisabledBecauseInPolicy
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$data[1] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true, false);
|
$data[1] = html_print_input_text(
|
||||||
|
'snmp_community',
|
||||||
|
$snmp_community,
|
||||||
|
'',
|
||||||
|
15,
|
||||||
|
60,
|
||||||
|
true,
|
||||||
|
false
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$data[2] = _('SNMP version');
|
$data[2] = _('SNMP version');
|
||||||
@ -213,8 +239,27 @@ $data[1] .= html_print_input_text(
|
|||||||
$classdisabledBecauseInPolicy
|
$classdisabledBecauseInPolicy
|
||||||
);
|
);
|
||||||
$data[1] .= '<span class="invisible" id="oid">';
|
$data[1] .= '<span class="invisible" id="oid">';
|
||||||
$data[1] .= html_print_select([], 'select_snmp_oid', $snmp_oid, '', '', 0, true, false, false, '', $disabledBecauseInPolicy);
|
$data[1] .= html_print_select(
|
||||||
$data[1] .= html_print_image('images/edit.png', true, ['class' => 'invisible clickable', 'id' => 'edit_oid']);
|
[],
|
||||||
|
'select_snmp_oid',
|
||||||
|
$snmp_oid,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
0,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
$disabledBecauseInPolicy
|
||||||
|
);
|
||||||
|
$data[1] .= html_print_image(
|
||||||
|
'images/edit.png',
|
||||||
|
true,
|
||||||
|
[
|
||||||
|
'class' => 'invisible clickable',
|
||||||
|
'id' => 'edit_oid',
|
||||||
|
]
|
||||||
|
);
|
||||||
$data[1] .= '</span>';
|
$data[1] .= '</span>';
|
||||||
$data[1] .= '</span><span class="right" style="width: 50%; text-align: right">';
|
$data[1] .= '</span><span class="right" style="width: 50%; text-align: right">';
|
||||||
$data[1] .= html_print_button(
|
$data[1] .= html_print_button(
|
||||||
@ -231,42 +276,50 @@ $table_simple->colspan['snmp_2'][1] = 3;
|
|||||||
|
|
||||||
push_table_simple($data, 'snmp_2');
|
push_table_simple($data, 'snmp_2');
|
||||||
|
|
||||||
// Advanced stuff
|
// Advanced stuff.
|
||||||
$data = [];
|
$data = [];
|
||||||
$data[0] = __('TCP send');
|
$data[0] = __('TCP send');
|
||||||
$data[1] = html_print_textarea('tcp_send', 2, 65, $tcp_send, $disabledTextBecauseInPolicy, true, $largeclassdisabledBecauseInPolicy);
|
$data[1] = html_print_textarea(
|
||||||
|
'tcp_send',
|
||||||
|
2,
|
||||||
|
65,
|
||||||
|
$tcp_send,
|
||||||
|
$disabledTextBecauseInPolicy,
|
||||||
|
true,
|
||||||
|
$largeclassdisabledBecauseInPolicy
|
||||||
|
);
|
||||||
$table_simple->colspan['tcp_send'][1] = 3;
|
$table_simple->colspan['tcp_send'][1] = 3;
|
||||||
|
|
||||||
push_table_simple($data, 'tcp_send');
|
push_table_simple($data, 'tcp_send');
|
||||||
|
|
||||||
$data[0] = __('TCP receive');
|
$data[0] = __('TCP receive');
|
||||||
$data[1] = html_print_textarea('tcp_rcv', 2, 65, $tcp_rcv, $disabledTextBecauseInPolicy, true, $largeclassdisabledBecauseInPolicy);
|
$data[1] = html_print_textarea(
|
||||||
|
'tcp_rcv',
|
||||||
|
2,
|
||||||
|
65,
|
||||||
|
$tcp_rcv,
|
||||||
|
$disabledTextBecauseInPolicy,
|
||||||
|
true,
|
||||||
|
$largeclassdisabledBecauseInPolicy
|
||||||
|
);
|
||||||
$table_simple->colspan['tcp_receive'][1] = 3;
|
$table_simple->colspan['tcp_receive'][1] = 3;
|
||||||
|
|
||||||
push_table_simple($data, 'tcp_receive');
|
push_table_simple($data, 'tcp_receive');
|
||||||
|
|
||||||
if ($id_module_type < 8 || $id_module_type > 11) {
|
if ($id_module_type < 8 || $id_module_type > 11) {
|
||||||
// NOT TCP
|
// NOT TCP.
|
||||||
$table_simple->rowstyle['tcp_send'] = 'display: none;';
|
$table_simple->rowstyle['tcp_send'] = 'display: none;';
|
||||||
$table_simple->rowstyle['tcp_receive'] = 'display: none;';
|
$table_simple->rowstyle['tcp_receive'] = 'display: none;';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($id_module_type < 15 || $id_module_type > 18) {
|
if ($id_module_type < 15 || $id_module_type > 18) {
|
||||||
// NOT SNMP
|
// NOT SNMP.
|
||||||
$table_simple->rowstyle['snmp_1'] = 'display: none';
|
$table_simple->rowstyle['snmp_1'] = 'display: none';
|
||||||
$table_simple->rowstyle['snmp_2'] = 'display: none';
|
$table_simple->rowstyle['snmp_2'] = 'display: none';
|
||||||
}
|
}
|
||||||
|
|
||||||
// For a policy
|
// For a policy.
|
||||||
if (!isset($id_agent_module)) {
|
if (isset($id_agent_module) === false || $id_agent_module === false) {
|
||||||
$snmp3_auth_user = '';
|
|
||||||
$snmp3_auth_pass = '';
|
|
||||||
$snmp_version = 1;
|
|
||||||
$snmp3_privacy_method = '';
|
|
||||||
$snmp3_privacy_pass = '';
|
|
||||||
$snmp3_auth_method = '';
|
|
||||||
$snmp3_security_level = '';
|
|
||||||
} else if ($id_agent_module === false) {
|
|
||||||
$snmp3_auth_user = '';
|
$snmp3_auth_user = '';
|
||||||
$snmp3_auth_pass = '';
|
$snmp3_auth_pass = '';
|
||||||
$snmp_version = 1;
|
$snmp_version = 1;
|
||||||
@ -274,6 +327,9 @@ if (!isset($id_agent_module)) {
|
|||||||
$snmp3_privacy_pass = '';
|
$snmp3_privacy_pass = '';
|
||||||
$snmp3_auth_method = '';
|
$snmp3_auth_method = '';
|
||||||
$snmp3_security_level = '';
|
$snmp3_security_level = '';
|
||||||
|
$command_text = '';
|
||||||
|
$command_os = 'inherited';
|
||||||
|
$command_credential_identifier = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
@ -333,7 +389,22 @@ push_table_simple($data, 'field_snmpv3_row2');
|
|||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
$data[0] = __('Auth method');
|
$data[0] = __('Auth method');
|
||||||
$data[1] = html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'snmp3_auth_method', $snmp3_auth_method, '', '', '', true, false, false, '', $disabledBecauseInPolicy);
|
$data[1] = html_print_select(
|
||||||
|
[
|
||||||
|
'MD5' => __('MD5'),
|
||||||
|
'SHA' => __('SHA'),
|
||||||
|
],
|
||||||
|
'snmp3_auth_method',
|
||||||
|
$snmp3_auth_method,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
$disabledBecauseInPolicy
|
||||||
|
);
|
||||||
$data[2] = __('Security level');
|
$data[2] = __('Security level');
|
||||||
$data[3] = html_print_select(
|
$data[3] = html_print_select(
|
||||||
[
|
[
|
||||||
@ -358,13 +429,84 @@ if ($snmp_version != 3) {
|
|||||||
|
|
||||||
push_table_simple($data, 'field_snmpv3_row3');
|
push_table_simple($data, 'field_snmpv3_row3');
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
$data[0] = __('Command');
|
||||||
|
$data[1] = html_print_input_text_extended(
|
||||||
|
'command_text',
|
||||||
|
$command_text,
|
||||||
|
'command_text',
|
||||||
|
'',
|
||||||
|
100,
|
||||||
|
10000,
|
||||||
|
$disabledBecauseInPolicy,
|
||||||
|
'',
|
||||||
|
$largeClassDisabledBecauseInPolicy,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$table_simple->colspan['row-cmd-row-1'][1] = 3;
|
||||||
|
push_table_simple($data, 'row-cmd-row-1');
|
||||||
|
|
||||||
|
require_once $config['homedir'].'/include/class/CredentialStore.class.php';
|
||||||
|
$array_credential_identifier = CredentialStore::getKeys('CUSTOM');
|
||||||
|
|
||||||
|
$data[0] = __('Credential identifier');
|
||||||
|
$data[1] = html_print_select(
|
||||||
|
$array_credential_identifier,
|
||||||
|
'command_credential_identifier',
|
||||||
|
$command_credential_identifier,
|
||||||
|
'',
|
||||||
|
__('None'),
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
$disabledBecauseInPolicy
|
||||||
|
);
|
||||||
|
|
||||||
|
$array_os = [
|
||||||
|
'inherited' => __('Inherited'),
|
||||||
|
'linux' => __('Linux'),
|
||||||
|
'windows' => __('Windows'),
|
||||||
|
];
|
||||||
|
|
||||||
|
$data[2] = __('Target OS');
|
||||||
|
$data[3] = html_print_select(
|
||||||
|
$array_os,
|
||||||
|
'command_os',
|
||||||
|
$command_os,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
$disabledBecauseInPolicy
|
||||||
|
);
|
||||||
|
|
||||||
|
push_table_simple($data, 'row-cmd-row-2');
|
||||||
|
|
||||||
|
if ($id_module_type !== 34
|
||||||
|
&& $id_module_type !== 35
|
||||||
|
&& $id_module_type !== 36
|
||||||
|
&& $id_module_type !== 37
|
||||||
|
) {
|
||||||
|
$table_simple->rowstyle['row-cmd-row-1'] = 'display: none;';
|
||||||
|
$table_simple->rowstyle['row-cmd-row-2'] = 'display: none;';
|
||||||
|
}
|
||||||
|
|
||||||
snmp_browser_print_container(false, '100%', '60%', 'none');
|
snmp_browser_print_container(false, '100%', '60%', 'none');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready (function () {
|
$(document).ready (function () {
|
||||||
$("#id_module_type").change(function (){
|
$("#id_module_type").change(function (){
|
||||||
if ((this.value == "17") || (this.value == "18") || (this.value == "16") || (this.value == "15")) {
|
if ((this.value == "17") ||
|
||||||
|
(this.value == "18") ||
|
||||||
|
(this.value == "16") ||
|
||||||
|
(this.value == "15")
|
||||||
|
) {
|
||||||
if ($("#snmp_version").val() == "3"){
|
if ($("#snmp_version").val() == "3"){
|
||||||
$("#simple-field_snmpv3_row1").attr("style", "");
|
$("#simple-field_snmpv3_row1").attr("style", "");
|
||||||
$("#simple-field_snmpv3_row2").attr("style", "");
|
$("#simple-field_snmpv3_row2").attr("style", "");
|
||||||
@ -379,6 +521,18 @@ $(document).ready (function () {
|
|||||||
$("input[name=active_snmp_v3]").val(0);
|
$("input[name=active_snmp_v3]").val(0);
|
||||||
$("input[name=snmp_community]").removeAttr('disabled');
|
$("input[name=snmp_community]").removeAttr('disabled');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((this.value == "34") ||
|
||||||
|
(this.value == "35") ||
|
||||||
|
(this.value == "36") ||
|
||||||
|
(this.value == "37")
|
||||||
|
) {
|
||||||
|
$("#simple-row-cmd-row-1").attr("style", "");
|
||||||
|
$("#simple-row-cmd-row-2").attr("style", "");
|
||||||
|
} else {
|
||||||
|
$("#simple-row-cmd-row-1").css("display", "none");
|
||||||
|
$("#simple-row-cmd-row-2").css("display", "none");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#snmp_version").change(function () {
|
$("#snmp_version").change(function () {
|
||||||
@ -397,27 +551,28 @@ $(document).ready (function () {
|
|||||||
$("input[name=snmp_community]").removeAttr('disabled');
|
$("input[name=snmp_community]").removeAttr('disabled');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#select_snmp_oid").click (
|
$("#select_snmp_oid").click (
|
||||||
function () {
|
function () {
|
||||||
$(this).css ("width", "auto");
|
$(this).css ("width", "auto");
|
||||||
$(this).css ("min-width", "180px");
|
$(this).css ("min-width", "180px");
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#select_snmp_oid").blur (function () {
|
$("#select_snmp_oid").blur (function () {
|
||||||
$(this).css ("width", "180px");
|
$(this).css ("width", "180px");
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#id_module_type").click (
|
$("#id_module_type").click (
|
||||||
function () {
|
function () {
|
||||||
$(this).css ("width", "auto");
|
$(this).css ("width", "auto");
|
||||||
$(this).css ("min-width", "180px");
|
$(this).css ("min-width", "180px");
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
$("#id_module_type").blur (function () {
|
$("#id_module_type").blur (function () {
|
||||||
$(this).css ("width", "180px");
|
$(this).css ("width", "180px");
|
||||||
});
|
});
|
||||||
|
|
||||||
// Keep elements in the form and the SNMP browser synced
|
// Keep elements in the form and the SNMP browser synced
|
||||||
$('#text-ip_target').keyup(function() {
|
$('#text-ip_target').keyup(function() {
|
||||||
$('#text-target_ip').val($(this).val());
|
$('#text-target_ip').val($(this).val());
|
||||||
@ -433,13 +588,12 @@ $(document).ready (function () {
|
|||||||
});
|
});
|
||||||
$('#snmp_version').change(function() {
|
$('#snmp_version').change(function() {
|
||||||
$('#snmp_browser_version').val($(this).val());
|
$('#snmp_browser_version').val($(this).val());
|
||||||
|
|
||||||
// Display or collapse the SNMP browser's v3 options
|
// Display or collapse the SNMP browser's v3 options
|
||||||
checkSNMPVersion ();
|
checkSNMPVersion ();
|
||||||
});
|
});
|
||||||
$('#snmp_browser_version').change(function() {
|
$('#snmp_browser_version').change(function() {
|
||||||
$('#snmp_version').val($(this).val());
|
$('#snmp_version').val($(this).val());
|
||||||
|
|
||||||
// Display or collapse the SNMP v3 options in the main window
|
// Display or collapse the SNMP v3 options in the main window
|
||||||
if ($(this).val() == "3") {
|
if ($(this).val() == "3") {
|
||||||
$("#simple-field_snmpv3_row1").attr("style", "");
|
$("#simple-field_snmpv3_row1").attr("style", "");
|
||||||
@ -498,53 +652,13 @@ $(document).ready (function () {
|
|||||||
}
|
}
|
||||||
$('#ip_target').change(function() {
|
$('#ip_target').change(function() {
|
||||||
if($(this).val() == 'custom') {
|
if($(this).val() == 'custom') {
|
||||||
$("#text-custom_ip_target").show();
|
$("#text-custom_ip_target").show();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$("#text-custom_ip_target").hide();
|
$("#text-custom_ip_target").hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Show the SNMP browser window
|
|
||||||
function snmpBrowserWindow () {
|
|
||||||
|
|
||||||
// Keep elements in the form and the SNMP browser synced
|
|
||||||
$('#text-target_ip').val($('#text-ip_target').val());
|
|
||||||
$('#text-community').val($('#text-snmp_community').val());
|
|
||||||
$('#snmp_browser_version').val($('#snmp_version').val());
|
|
||||||
$('#text-snmp3_browser_auth_user').val($('#text-snmp3_auth_user').val());
|
|
||||||
$('#snmp3_browser_security_level').val($('#snmp3_security_level').val());
|
|
||||||
$('#snmp3_browser_auth_method').val($('#snmp3_auth_method').val());
|
|
||||||
$('#password-snmp3_browser_auth_pass').val($('#password-snmp3_auth_pass').val());
|
|
||||||
$('#snmp3_browser_privacy_method').val($('#snmp3_privacy_method').val());
|
|
||||||
$('#password-snmp3_browser_privacy_pass').val($('#password-snmp3_privacy_pass').val());
|
|
||||||
|
|
||||||
$("#snmp_browser_container").show().dialog ({
|
|
||||||
title: '',
|
|
||||||
resizable: true,
|
|
||||||
draggable: true,
|
|
||||||
modal: true,
|
|
||||||
overlay: {
|
|
||||||
opacity: 0.5,
|
|
||||||
background: "black"
|
|
||||||
},
|
|
||||||
width: 920,
|
|
||||||
height: 500
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the form OID to the value selected in the SNMP browser
|
|
||||||
function setOID () {
|
|
||||||
|
|
||||||
if($('#snmp_browser_version').val() == '3'){
|
|
||||||
$('#text-snmp_oid').val($('#table1-0-1').text());
|
|
||||||
} else {
|
|
||||||
$('#text-snmp_oid').val($('#snmp_selected_oid').text());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the SNMP browser
|
|
||||||
$('.ui-dialog-titlebar-close').trigger('click');
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -827,7 +827,7 @@ $table->data[5][1] = "
|
|||||||
</table>
|
</table>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
echo '<form method="POST" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor">';
|
echo '<form method="POST" action="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor">';
|
||||||
|
|
||||||
if ($id_downtime > 0) {
|
if ($id_downtime > 0) {
|
||||||
echo '<table width=100% border=0 cellpadding=4 >';
|
echo '<table width=100% border=0 cellpadding=4 >';
|
||||||
@ -929,7 +929,7 @@ if ($id_downtime > 0) {
|
|||||||
$disabled_add_button = true;
|
$disabled_add_button = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "<form method=post action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&id_downtime=$id_downtime'>";
|
echo "<form method=post action='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&id_downtime=$id_downtime'>";
|
||||||
html_print_select_groups(false, $access, true, 'filter_group', $filter_group, '', '', '', false, false, true, '', false, 'min-width:180px;margin-right:15px;');
|
html_print_select_groups(false, $access, true, 'filter_group', $filter_group, '', '', '', false, false, true, '', false, 'min-width:180px;margin-right:15px;');
|
||||||
|
|
||||||
html_print_checkbox('recursion', 1, $recursion, false, false, '');
|
html_print_checkbox('recursion', 1, $recursion, false, false, '');
|
||||||
@ -939,7 +939,7 @@ if ($id_downtime > 0) {
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
// Show available agents to include into downtime
|
// Show available agents to include into downtime
|
||||||
echo '<h4>'.__('Available agents').':</h4>';
|
echo '<h4>'.__('Available agents').':</h4>';
|
||||||
echo "<form method=post action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&insert_downtime_agent=1&id_downtime=$id_downtime'>";
|
echo "<form method=post action='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&insert_downtime_agent=1&id_downtime=$id_downtime'>";
|
||||||
|
|
||||||
echo html_print_select($agents, 'id_agents[]', -1, '', _('Any'), -2, false, true, true, '', false, 'width: 180px;');
|
echo html_print_select($agents, 'id_agents[]', -1, '', _('Any'), -2, false, true, true, '', false, 'width: 180px;');
|
||||||
|
|
||||||
@ -1085,7 +1085,7 @@ if ($id_downtime > 0) {
|
|||||||
$data[5] = '<a href="javascript:show_editor_module('.$downtime_agent['id_agente'].');">'.html_print_image('images/config.png', true, ['border' => '0', 'alt' => __('Delete')]).'</a>';
|
$data[5] = '<a href="javascript:show_editor_module('.$downtime_agent['id_agente'].');">'.html_print_image('images/config.png', true, ['border' => '0', 'alt' => __('Delete')]).'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$data[5] .= '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&id_agent='.$downtime_agent['id_agente'].'&delete_downtime_agent=1&id_downtime_agent='.$downtime_agent['id'].'&id_downtime='.$id_downtime.'">'.html_print_image('images/cross.png', true, ['border' => '0', 'alt' => __('Delete')]).'</a>';
|
$data[5] .= '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&id_agent='.$downtime_agent['id_agente'].'&delete_downtime_agent=1&id_downtime_agent='.$downtime_agent['id'].'&id_downtime='.$id_downtime.'">'.html_print_image('images/cross.png', true, ['border' => '0', 'alt' => __('Delete')]).'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->data['agent_'.$downtime_agent['id_agente']] = $data;
|
$table->data['agent_'.$downtime_agent['id_agente']] = $data;
|
||||||
|
@ -52,7 +52,7 @@ if ($migrate_malformed) {
|
|||||||
|
|
||||||
// Header.
|
// Header.
|
||||||
ui_print_page_header(
|
ui_print_page_header(
|
||||||
__('Planned Downtime'),
|
__('Scheduled Downtime'),
|
||||||
'images/gm_monitoring.png',
|
'images/gm_monitoring.png',
|
||||||
false,
|
false,
|
||||||
'planned_downtime',
|
'planned_downtime',
|
||||||
@ -136,9 +136,6 @@ $table_form = new StdClass();
|
|||||||
$table_form->class = 'databox filters';
|
$table_form->class = 'databox filters';
|
||||||
$table_form->width = '100%';
|
$table_form->width = '100%';
|
||||||
$table_form->rowstyle = [];
|
$table_form->rowstyle = [];
|
||||||
$table_form->rowstyle[0] = 'background-color: #f9faf9;';
|
|
||||||
$table_form->rowstyle[1] = 'background-color: #f9faf9;';
|
|
||||||
$table_form->rowstyle[2] = 'background-color: #f9faf9;';
|
|
||||||
$table_form->data = [];
|
$table_form->data = [];
|
||||||
|
|
||||||
$row = [];
|
$row = [];
|
||||||
@ -360,7 +357,7 @@ if (!$downtimes && !$filter_performed) {
|
|||||||
// No downtimes cause the user performed a search.
|
// No downtimes cause the user performed a search.
|
||||||
else if (!$downtimes) {
|
else if (!$downtimes) {
|
||||||
// Filter form.
|
// Filter form.
|
||||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
echo "<form method='post' action='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'>";
|
||||||
html_print_table($table_form);
|
html_print_table($table_form);
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
|
|
||||||
@ -372,7 +369,7 @@ else if (!$downtimes) {
|
|||||||
// Create button.
|
// Create button.
|
||||||
if ($write_permisson) {
|
if ($write_permisson) {
|
||||||
echo ' ';
|
echo ' ';
|
||||||
echo '<form method="post" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
echo '<form method="post" action="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
||||||
html_print_submit_button(__('Create'), 'create', false, 'class="sub next"');
|
html_print_submit_button(__('Create'), 'create', false, 'class="sub next"');
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
}
|
}
|
||||||
@ -381,11 +378,11 @@ else if (!$downtimes) {
|
|||||||
}
|
}
|
||||||
// Has downtimes.
|
// Has downtimes.
|
||||||
else {
|
else {
|
||||||
echo "<form method='post' action='index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list'>";
|
echo "<form method='post' action='index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'>";
|
||||||
html_print_table($table_form);
|
html_print_table($table_form);
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
|
|
||||||
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset);
|
ui_pagination($downtimes_number, "index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset);
|
||||||
|
|
||||||
// User groups with AR, AD or AW permission.
|
// User groups with AR, AD or AW permission.
|
||||||
$groupsAD = users_get_groups($config['id_user'], $access);
|
$groupsAD = users_get_groups($config['id_user'], $access);
|
||||||
@ -479,7 +476,7 @@ else {
|
|||||||
if (in_array($downtime['id_group'], $groupsAD)) {
|
if (in_array($downtime['id_group'], $groupsAD)) {
|
||||||
// Stop button
|
// Stop button
|
||||||
if ($downtime['type_execution'] == 'once' && $downtime['executed'] == 1) {
|
if ($downtime['type_execution'] == 'once' && $downtime['executed'] == 1) {
|
||||||
$data['stop'] = '<a href="index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.list'.'&stop_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cancel.png', true, ['title' => __('Stop downtime')]);
|
$data['stop'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'.'&stop_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cancel.png', true, ['title' => __('Stop downtime')]);
|
||||||
} else {
|
} else {
|
||||||
$data['stop'] = '';
|
$data['stop'] = '';
|
||||||
}
|
}
|
||||||
@ -487,12 +484,12 @@ else {
|
|||||||
// Edit & delete buttons.
|
// Edit & delete buttons.
|
||||||
if ($downtime['executed'] == 0) {
|
if ($downtime['executed'] == 0) {
|
||||||
// Edit.
|
// Edit.
|
||||||
$data['edit'] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
$data['edit'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
||||||
// Delete.
|
// Delete.
|
||||||
$data['delete'] = '<a id="delete_downtime" href="index.php?sec=gagente&sec2=godmode/agentes/planned_downtime.list'.'&delete_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cross.png', true, ['title' => __('Delete')]);
|
$data['delete'] = '<a id="delete_downtime" href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list'.'&delete_downtime=1&id_downtime='.$downtime['id'].'&'.$filter_params_str.'">'.html_print_image('images/cross.png', true, ['title' => __('Delete')]);
|
||||||
} else if ($downtime['executed'] == 1 && $downtime['type_execution'] == 'once') {
|
} else if ($downtime['executed'] == 1 && $downtime['type_execution'] == 'once') {
|
||||||
// Edit.
|
// Edit.
|
||||||
$data['edit'] = '<a href="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
$data['edit'] = '<a href="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor&edit_downtime=1&id_downtime='.$downtime['id'].'">'.html_print_image('images/config.png', true, ['title' => __('Update')]).'</a>';
|
||||||
// Delete.
|
// Delete.
|
||||||
$data['delete'] = __('N/A');
|
$data['delete'] = __('N/A');
|
||||||
} else {
|
} else {
|
||||||
@ -518,7 +515,7 @@ else {
|
|||||||
}
|
}
|
||||||
|
|
||||||
html_print_table($table);
|
html_print_table($table);
|
||||||
ui_pagination($downtimes_number, "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
ui_pagination($downtimes_number, "index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list&$filter_params_str", $offset, 0, false, 'offset', true, 'pagination-bottom');
|
||||||
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
echo '<div class="action-buttons" style="width: '.$table->width.'">';
|
||||||
|
|
||||||
// CSV export button.
|
// CSV export button.
|
||||||
@ -535,7 +532,7 @@ else {
|
|||||||
// Create button.
|
// Create button.
|
||||||
if ($write_permisson) {
|
if ($write_permisson) {
|
||||||
echo ' ';
|
echo ' ';
|
||||||
echo '<form method="post" action="index.php?sec=estado&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
echo '<form method="post" action="index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.editor" style="display: inline;">';
|
||||||
html_print_submit_button(__('Create'), 'create', false, 'class="sub next"');
|
html_print_submit_button(__('Create'), 'create', false, 'class="sub next"');
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
}
|
}
|
||||||
@ -562,7 +559,7 @@ $(document).ready (function () {
|
|||||||
|
|
||||||
if (<?php echo json_encode($malformed_downtimes_exist); ?> && <?php echo json_encode($migrate_malformed == false); ?>) {
|
if (<?php echo json_encode($malformed_downtimes_exist); ?> && <?php echo json_encode($migrate_malformed == false); ?>) {
|
||||||
if (confirm("<?php echo __('WARNING: There are malformed planned downtimes').'.\n'.__('Do you want to migrate automatically the malformed items?'); ?>")) {
|
if (confirm("<?php echo __('WARNING: There are malformed planned downtimes').'.\n'.__('Do you want to migrate automatically the malformed items?'); ?>")) {
|
||||||
window.location.href = "index.php?sec=estado&sec2=godmode/agentes/planned_downtime.list&migrate_malformed=1";
|
window.location.href = "index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list&migrate_malformed=1";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -184,9 +184,11 @@ if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ui_require_css_file('cluetip', 'include/styles/js/');
|
ui_require_css_file('cluetip', 'include/styles/js/');
|
||||||
|
ui_require_jquery_file('validate');
|
||||||
ui_require_jquery_file('cluetip');
|
ui_require_jquery_file('cluetip');
|
||||||
ui_require_jquery_file('pandora.controls');
|
ui_require_jquery_file('pandora.controls');
|
||||||
ui_require_jquery_file('bgiframe');
|
ui_require_jquery_file('bgiframe');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/* <![CDATA[ */
|
/* <![CDATA[ */
|
||||||
@ -201,7 +203,25 @@ $(document).ready (function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
|
// Rule.
|
||||||
|
$.validator.addMethod(
|
||||||
|
"valueNotEquals",
|
||||||
|
function(value, element, arg) {
|
||||||
|
return arg != value;
|
||||||
|
},
|
||||||
|
"Value must not equal arg."
|
||||||
|
);
|
||||||
|
|
||||||
|
// configure your validation
|
||||||
|
$("form.add_alert_form").validate({
|
||||||
|
rules: {
|
||||||
|
id_agent_module: { valueNotEquals: "0" }
|
||||||
|
},
|
||||||
|
messages: {
|
||||||
|
id_agent_module: { valueNotEquals: "Please select an item!" }
|
||||||
|
}
|
||||||
|
});
|
||||||
$("select#template").change (function () {
|
$("select#template").change (function () {
|
||||||
id = this.value;
|
id = this.value;
|
||||||
$a = $(this).siblings ("a.template_details");
|
$a = $(this).siblings ("a.template_details");
|
||||||
|
@ -317,9 +317,9 @@ $(document).ready (function () {
|
|||||||
jQuery.post (<?php echo "'".ui_get_full_url('ajax.php', false, false, false)."'"; ?>,
|
jQuery.post (<?php echo "'".ui_get_full_url('ajax.php', false, false, false)."'"; ?>,
|
||||||
values,
|
values,
|
||||||
function (data, status) {
|
function (data, status) {
|
||||||
original_command = js_html_entity_decode (data["command"]);
|
original_command = data["command"];
|
||||||
render_command_preview (original_command);
|
render_command_preview (original_command);
|
||||||
command_description = js_html_entity_decode (data["description"]);
|
command_description = data["description"];
|
||||||
render_command_description(command_description);
|
render_command_description(command_description);
|
||||||
|
|
||||||
var max_fields = parseInt('<?php echo $config['max_macro_fields']; ?>');
|
var max_fields = parseInt('<?php echo $config['max_macro_fields']; ?>');
|
||||||
|
@ -113,6 +113,8 @@ $fields_available['instructions'] = __('Instructions');
|
|||||||
$fields_available['server_name'] = __('Server Name');
|
$fields_available['server_name'] = __('Server Name');
|
||||||
$fields_available['data'] = __('Data');
|
$fields_available['data'] = __('Data');
|
||||||
$fields_available['module_status'] = __('Module Status');
|
$fields_available['module_status'] = __('Module Status');
|
||||||
|
$fields_available['mini_severity'] = __('Severity mini');
|
||||||
|
|
||||||
|
|
||||||
// Remove fields already selected.
|
// Remove fields already selected.
|
||||||
foreach ($fields_available as $key => $available) {
|
foreach ($fields_available as $key => $available) {
|
||||||
@ -124,7 +126,7 @@ foreach ($fields_available as $key => $available) {
|
|||||||
$table->data[0][0] = '<b>'.__('Fields available').'</b>';
|
$table->data[0][0] = '<b>'.__('Fields available').'</b>';
|
||||||
$table->data[1][0] = html_print_select($fields_available, 'fields_available[]', true, '', '', 0, true, true, false, '', false, 'width: 300px');
|
$table->data[1][0] = html_print_select($fields_available, 'fields_available[]', true, '', '', 0, true, true, false, '', false, 'width: 300px');
|
||||||
$table->data[1][1] = '<a href="javascript:">'.html_print_image(
|
$table->data[1][1] = '<a href="javascript:">'.html_print_image(
|
||||||
'images/darrowright.png',
|
'images/darrowright_green.png',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
'id' => 'right',
|
'id' => 'right',
|
||||||
@ -132,7 +134,7 @@ $table->data[1][1] = '<a href="javascript:">'.html_print_image(
|
|||||||
]
|
]
|
||||||
).'</a>';
|
).'</a>';
|
||||||
$table->data[1][1] .= '<br><br><br><br><a href="javascript:">'.html_print_image(
|
$table->data[1][1] .= '<br><br><br><br><a href="javascript:">'.html_print_image(
|
||||||
'images/darrowleft.png',
|
'images/darrowleft_green.png',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
'id' => 'left',
|
'id' => 'left',
|
||||||
|
@ -232,10 +232,17 @@ $table->data[0][0] = '<b>'.__('Filter name').'</b>';
|
|||||||
$table->data[0][1] = html_print_input_text('id_name', $id_name, false, 20, 80, true);
|
$table->data[0][1] = html_print_input_text('id_name', $id_name, false, 20, 80, true);
|
||||||
|
|
||||||
$table->data[1][0] = '<b>'.__('Save in group').'</b>'.ui_print_help_tip(__('This group will be use to restrict the visibility of this filter with ACLs'), true);
|
$table->data[1][0] = '<b>'.__('Save in group').'</b>'.ui_print_help_tip(__('This group will be use to restrict the visibility of this filter with ACLs'), true);
|
||||||
|
|
||||||
|
$returnAllGroup = users_can_manage_group_all();
|
||||||
|
// If the user can't manage All group but the filter is for All group, the user should see All group in the select.
|
||||||
|
if ($returnAllGroup === false && $id_group_filter == 0) {
|
||||||
|
$returnAllGroup = true;
|
||||||
|
}
|
||||||
|
|
||||||
$table->data[1][1] = html_print_select_groups(
|
$table->data[1][1] = html_print_select_groups(
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
$access,
|
$access,
|
||||||
users_can_manage_group_all(),
|
$returnAllGroup,
|
||||||
'id_group_filter',
|
'id_group_filter',
|
||||||
$id_group_filter,
|
$id_group_filter,
|
||||||
'',
|
'',
|
||||||
|
@ -93,10 +93,11 @@ if ($strict_acl) {
|
|||||||
users_can_manage_group_all()
|
users_can_manage_group_all()
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
// All users should see the filters with the All group.
|
||||||
$groups_user = users_get_groups(
|
$groups_user = users_get_groups(
|
||||||
$config['id_user'],
|
$config['id_user'],
|
||||||
$access,
|
$access,
|
||||||
users_can_manage_group_all(),
|
true,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -143,12 +143,12 @@ $table->data[3] = $data;
|
|||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
$data[0] = '<span id="command_label" class="labels">'.__('Command').'</span><span id="url_label" style="display:none;" class="labels">'.__('URL').'</span>'.ui_print_help_icon('response_macros', true);
|
$data[0] = '<span id="command_label" class="labels">'.__('Command').'</span><span id="url_label" style="display:none;" class="labels">'.__('URL').'</span>'.ui_print_help_icon('response_macros', true);
|
||||||
$data[1] = html_print_input_text(
|
$data[1] = html_print_textarea(
|
||||||
'target',
|
'target',
|
||||||
|
3,
|
||||||
|
1,
|
||||||
$event_response['target'],
|
$event_response['target'],
|
||||||
'',
|
'style="min-height:initial;"',
|
||||||
100,
|
|
||||||
255,
|
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -50,17 +50,10 @@ if (check_acl($config['id_user'], 0, 'PM')) {
|
|||||||
'text' => '<a href="index.php?sec=eventos&sec2=godmode/events/events&section=responses&pure='.$config['pure'].'">'.html_print_image('images/event_responses.png', true, ['title' => __('Event responses')]).'</a>',
|
'text' => '<a href="index.php?sec=eventos&sec2=godmode/events/events&section=responses&pure='.$config['pure'].'">'.html_print_image('images/event_responses.png', true, ['title' => __('Event responses')]).'</a>',
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!is_metaconsole()) {
|
$buttons['fields'] = [
|
||||||
$buttons['fields'] = [
|
'active' => false,
|
||||||
'active' => false,
|
'text' => '<a href="index.php?sec=eventos&sec2=godmode/events/events&section=fields&pure='.$config['pure'].'">'.html_print_image('images/custom_columns.png', true, ['title' => __('Custom fields')]).'</a>',
|
||||||
'text' => '<a href="index.php?sec=eventos&sec2=godmode/events/events&section=fields&pure='.$config['pure'].'">'.html_print_image('images/custom_columns.png', true, ['title' => __('Custom fields')]).'</a>',
|
];
|
||||||
];
|
|
||||||
} else {
|
|
||||||
$buttons['fields'] = [
|
|
||||||
'active' => false,
|
|
||||||
'text' => '<a href="index.php?sec=eventos&sec2=event/custom_events&section=fields&pure='.$config['pure'].'">'.html_print_image('images/custom_columns.png', true, ['title' => __('Custom fields')]).'</a>',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($section) {
|
switch ($section) {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user