2012-12-28 Hirofumi Kosaka <kosaka@rworks.jp>
* util/pandora_manage.pl: Added operation logging by logger() with verbose level 10. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7340 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
7c8dfbd28b
commit
a643fa98c3
|
@ -1,3 +1,8 @@
|
||||||
|
2012-12-28 Hirofumi Kosaka <kosaka@rworks.jp>
|
||||||
|
|
||||||
|
* util/pandora_manage.pl: Added operation logging by
|
||||||
|
logger() with verbose level 10.
|
||||||
|
|
||||||
2012-12-24 Ramon Novoa <rnovoa@artica.es>
|
2012-12-24 Ramon Novoa <rnovoa@artica.es>
|
||||||
|
|
||||||
* bin/pandora_server: Re-calculate module status count upon server
|
* bin/pandora_server: Re-calculate module status count upon server
|
||||||
|
|
|
@ -16,6 +16,7 @@ use DBI; # DB interface with MySQL
|
||||||
use POSIX qw(strftime);
|
use POSIX qw(strftime);
|
||||||
use POSIX;
|
use POSIX;
|
||||||
use HTML::Entities; # Encode or decode strings with HTML entities
|
use HTML::Entities; # Encode or decode strings with HTML entities
|
||||||
|
use File::Basename;
|
||||||
|
|
||||||
# Default lib dir for RPM and DEB packages
|
# Default lib dir for RPM and DEB packages
|
||||||
use lib '/usr/lib/perl5';
|
use lib '/usr/lib/perl5';
|
||||||
|
@ -28,6 +29,9 @@ use PandoraFMS::Config;
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "5.0dev PS120621";
|
my $version = "5.0dev PS120621";
|
||||||
|
|
||||||
|
# save program name for logging
|
||||||
|
my $progname = basename($0);
|
||||||
|
|
||||||
# Parameter
|
# Parameter
|
||||||
my $param;
|
my $param;
|
||||||
|
|
||||||
|
@ -559,11 +563,24 @@ sub pandora_get_planned_downtime_id ($$) {
|
||||||
###############################################################################
|
###############################################################################
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# log wrapper
|
||||||
|
###############################################################################
|
||||||
|
sub print_log ($) {
|
||||||
|
my $msg = $@;
|
||||||
|
|
||||||
|
print $msg; # show message
|
||||||
|
|
||||||
|
$msg =~ s/\n+$//;
|
||||||
|
logger( $conf, "($progname) $msg", 10); # save to logging file
|
||||||
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Print a parameter error and exit the program.
|
# Print a parameter error and exit the program.
|
||||||
###############################################################################
|
###############################################################################
|
||||||
sub param_error ($$) {
|
sub param_error ($$) {
|
||||||
print (STDERR "[ERROR] Parameters error: $_[1] received | $_[0] necessary.\n\n");
|
print (STDERR "[ERROR] Parameters error: $_[1] received | $_[0] necessary.\n\n");
|
||||||
|
logger( $conf, "($progname) [ERROR] Parameters error: $_[1] received | $_[0] necessary.", 10);
|
||||||
|
|
||||||
help_screen ();
|
help_screen ();
|
||||||
exit 1;
|
exit 1;
|
||||||
|
@ -574,6 +591,7 @@ sub param_error ($$) {
|
||||||
###############################################################################
|
###############################################################################
|
||||||
sub notexists_error ($$) {
|
sub notexists_error ($$) {
|
||||||
print (STDERR "[ERROR] Error: The $_[0] '$_[1]' not exists.\n\n");
|
print (STDERR "[ERROR] Error: The $_[0] '$_[1]' not exists.\n\n");
|
||||||
|
logger( $conf, "($progname) [ERROR] Error: The $_[0] '$_[1]' not exists.", 10);
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -582,6 +600,7 @@ sub notexists_error ($$) {
|
||||||
###############################################################################
|
###############################################################################
|
||||||
sub exists_error ($$) {
|
sub exists_error ($$) {
|
||||||
print (STDERR "[ERROR] Error: The $_[0] '$_[1]' already exists.\n\n");
|
print (STDERR "[ERROR] Error: The $_[0] '$_[1]' already exists.\n\n");
|
||||||
|
logger( $conf, "($progname) [ERROR] Error: The $_[0] '$_[1]' already exists.", 10);
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -651,13 +670,13 @@ sub cli_disable_group() {
|
||||||
my $id_group;
|
my $id_group;
|
||||||
|
|
||||||
if($group_name eq "All") {
|
if($group_name eq "All") {
|
||||||
print "[INFO] Disabling all groups\n\n";
|
print_log "[INFO] Disabling all groups\n\n";
|
||||||
$id_group = 0;
|
$id_group = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$id_group = get_group_id($dbh, $group_name);
|
$id_group = get_group_id($dbh, $group_name);
|
||||||
exist_check($id_group,'group',$group_name);
|
exist_check($id_group,'group',$group_name);
|
||||||
print "[INFO] Disabling group '$group_name'\n\n";
|
print_log "[INFO] Disabling group '$group_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
pandora_disable_group ($conf, $dbh, $id_group);
|
pandora_disable_group ($conf, $dbh, $id_group);
|
||||||
|
@ -674,12 +693,12 @@ sub cli_enable_group() {
|
||||||
|
|
||||||
if($group_name eq "All") {
|
if($group_name eq "All") {
|
||||||
$id_group = 0;
|
$id_group = 0;
|
||||||
print "[INFO] Enabling all groups\n\n";
|
print_log "[INFO] Enabling all groups\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$id_group = get_group_id($dbh, $group_name);
|
$id_group = get_group_id($dbh, $group_name);
|
||||||
exist_check($id_group,'group',$group_name);
|
exist_check($id_group,'group',$group_name);
|
||||||
print "[INFO] Enabling group '$group_name'\n\n";
|
print_log "[INFO] Enabling group '$group_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
pandora_enable_group ($conf, $dbh, $id_group);
|
pandora_enable_group ($conf, $dbh, $id_group);
|
||||||
|
@ -693,7 +712,7 @@ sub cli_enable_group() {
|
||||||
sub cli_create_agent() {
|
sub cli_create_agent() {
|
||||||
my ($agent_name,$os_name,$group_name,$server_name,$address,$description,$interval) = @ARGV[2..8];
|
my ($agent_name,$os_name,$group_name,$server_name,$address,$description,$interval) = @ARGV[2..8];
|
||||||
|
|
||||||
print "[INFO] Creating agent '$agent_name'\n\n";
|
print_log "[INFO] Creating agent '$agent_name'\n\n";
|
||||||
|
|
||||||
$address = '' unless defined ($address);
|
$address = '' unless defined ($address);
|
||||||
$description = (defined ($description) ? safe_input($description) : '' ); # safe_input() might be better at pandora_create_agent() (when passing 'description' to db_insert())
|
$description = (defined ($description) ? safe_input($description) : '' ); # safe_input() might be better at pandora_create_agent() (when passing 'description' to db_insert())
|
||||||
|
@ -717,7 +736,7 @@ sub cli_delete_agent() {
|
||||||
my $agent_name = @ARGV[2];
|
my $agent_name = @ARGV[2];
|
||||||
|
|
||||||
$agent_name = decode_entities($agent_name);
|
$agent_name = decode_entities($agent_name);
|
||||||
print "[INFO] Deleting agent '$agent_name'\n\n";
|
print_log "[INFO] Deleting agent '$agent_name'\n\n";
|
||||||
|
|
||||||
my $id_agent = get_agent_id($dbh,$agent_name);
|
my $id_agent = get_agent_id($dbh,$agent_name);
|
||||||
exist_check($id_agent,'agent',$agent_name);
|
exist_check($id_agent,'agent',$agent_name);
|
||||||
|
@ -863,7 +882,7 @@ sub cli_create_data_module($) {
|
||||||
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
||||||
non_exist_check($module_exists, 'module name', $module_name);
|
non_exist_check($module_exists, 'module name', $module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
||||||
|
@ -872,7 +891,7 @@ sub cli_create_data_module($) {
|
||||||
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
||||||
non_exist_check($policy_module_exist,'policy module',$module_name);
|
non_exist_check($policy_module_exist,'policy module',$module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# If the module is local and is not to policy, we add it to the conf file
|
# If the module is local and is not to policy, we add it to the conf file
|
||||||
|
@ -911,12 +930,12 @@ sub cli_create_data_module($) {
|
||||||
|
|
||||||
if(defined($definition_file) && $module_type ne $module_type_def) {
|
if(defined($definition_file) && $module_type ne $module_type_def) {
|
||||||
$module_type = $module_type_def;
|
$module_type = $module_type_def;
|
||||||
print "[INFO] The module type has been forced to '$module_type' by the definition file\n\n";
|
print_log "[INFO] The module type has been forced to '$module_type' by the definition file\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(defined($definition_file) && $module_name ne $module_name_def) {
|
if(defined($definition_file) && $module_name ne $module_name_def) {
|
||||||
$module_name = $module_name_def;
|
$module_name = $module_name_def;
|
||||||
print "[INFO] The module name has been forced to '$module_name' by the definition file\n\n";
|
print_log "[INFO] The module name has been forced to '$module_name' by the definition file\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# The get_module_id has wrong name. Change in future
|
# The get_module_id has wrong name. Change in future
|
||||||
|
@ -924,7 +943,7 @@ sub cli_create_data_module($) {
|
||||||
exist_check($module_type_id,'module type',$module_type);
|
exist_check($module_type_id,'module type',$module_type);
|
||||||
|
|
||||||
if ($module_type !~ m/.?generic.?/ && $module_type !~ m/.?async.?/ && $module_type ne 'log4x' && $module_type ne 'keep_alive') {
|
if ($module_type !~ m/.?generic.?/ && $module_type !~ m/.?async.?/ && $module_type ne 'log4x' && $module_type ne 'keep_alive') {
|
||||||
print "[ERROR] '$module_type' is not valid type for data modules. Try with generic, asyncronous, keep alive or log4x types\n\n";
|
print_log "[ERROR] '$module_type' is not valid type for data modules. Try with generic, asyncronous, keep alive or log4x types\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1049,7 +1068,7 @@ sub cli_create_network_module($) {
|
||||||
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
||||||
non_exist_check($module_exists, 'module name', $module_name);
|
non_exist_check($module_exists, 'module name', $module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
||||||
|
@ -1058,17 +1077,17 @@ sub cli_create_network_module($) {
|
||||||
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
||||||
non_exist_check($policy_module_exist,'policy module',$module_name);
|
non_exist_check($policy_module_exist,'policy module',$module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($module_type =~ m/.?snmp.?/) {
|
if ($module_type =~ m/.?snmp.?/) {
|
||||||
print "[ERROR] '$module_type' is not a valid type. For snmp modules use --create_snmp_module parameter\n\n";
|
print_log "[ERROR] '$module_type' is not a valid type. For snmp modules use --create_snmp_module parameter\n\n";
|
||||||
$param = '--create_snmp_module';
|
$param = '--create_snmp_module';
|
||||||
help_screen ();
|
help_screen ();
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
if ($module_type !~ m/.?icmp.?/ && $module_type !~ m/.?tcp.?/) {
|
if ($module_type !~ m/.?icmp.?/ && $module_type !~ m/.?tcp.?/) {
|
||||||
print "[ERROR] '$module_type' is not valid type for (not snmp) network modules. Try with icmp or tcp types\n\n";
|
print_log "[ERROR] '$module_type' is not valid type for (not snmp) network modules. Try with icmp or tcp types\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1085,11 +1104,11 @@ sub cli_create_network_module($) {
|
||||||
|
|
||||||
if ($module_type !~ m/.?icmp.?/) {
|
if ($module_type !~ m/.?icmp.?/) {
|
||||||
if (not defined($module_port)) {
|
if (not defined($module_port)) {
|
||||||
print "[ERROR] Port error. Agents of type distinct of icmp need port\n\n";
|
print_log "[ERROR] Port error. Agents of type distinct of icmp need port\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
if ($module_port > 65535 || $module_port < 1) {
|
if ($module_port > 65535 || $module_port < 1) {
|
||||||
print "[ERROR] Port error. Port must into [1-65535]\n\n";
|
print_log "[ERROR] Port error. Port must into [1-65535]\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1176,7 +1195,7 @@ sub cli_create_snmp_module($) {
|
||||||
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
||||||
non_exist_check($module_exists, 'module name', $module_name);
|
non_exist_check($module_exists, 'module name', $module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
||||||
|
@ -1185,7 +1204,7 @@ sub cli_create_snmp_module($) {
|
||||||
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
||||||
non_exist_check($policy_module_exist,'policy module',$module_name);
|
non_exist_check($policy_module_exist,'policy module',$module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# The get_module_id has wrong name. Change in future
|
# The get_module_id has wrong name. Change in future
|
||||||
|
@ -1200,12 +1219,12 @@ sub cli_create_snmp_module($) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($module_type !~ m/.?snmp.?/) {
|
if ($module_type !~ m/.?snmp.?/) {
|
||||||
print "[ERROR] '$module_type' is not a valid snmp type\n\n";
|
print_log "[ERROR] '$module_type' is not a valid snmp type\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($module_port > 65535 || $module_port < 1) {
|
if ($module_port > 65535 || $module_port < 1) {
|
||||||
print "[ERROR] Port error. Port must into [1-65535]\n\n";
|
print_log "[ERROR] Port error. Port must into [1-65535]\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1307,7 +1326,7 @@ sub cli_create_plugin_module($) {
|
||||||
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
my $module_exists = get_agent_module_id($dbh, $module_name, $agent_id);
|
||||||
non_exist_check($module_exists, 'module name', $module_name);
|
non_exist_check($module_exists, 'module name', $module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to agent '$agent_name'\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
$policy_id = enterprise_hook('get_policy_id',[$dbh, safe_input($policy_name)]);
|
||||||
|
@ -1316,7 +1335,7 @@ sub cli_create_plugin_module($) {
|
||||||
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
my $policy_module_exist = enterprise_hook('get_policy_module_id',[$dbh, $policy_id, $module_name]);
|
||||||
non_exist_check($policy_module_exist,'policy module',$module_name);
|
non_exist_check($policy_module_exist,'policy module',$module_name);
|
||||||
|
|
||||||
print "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
print_log "[INFO] Adding module '$module_name' to policy '$policy_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# The get_module_id has wrong name. Change in future
|
# The get_module_id has wrong name. Change in future
|
||||||
|
@ -1324,7 +1343,7 @@ sub cli_create_plugin_module($) {
|
||||||
exist_check($module_type_id,'module type',$module_type);
|
exist_check($module_type_id,'module type',$module_type);
|
||||||
|
|
||||||
if ($module_type !~ m/.?generic.?/ && $module_type ne 'log4x') {
|
if ($module_type !~ m/.?generic.?/ && $module_type ne 'log4x') {
|
||||||
print "[ERROR] '$module_type' is not valid type for plugin modules. Try with generic or log4x types\n\n";
|
print_log "[ERROR] '$module_type' is not valid type for plugin modules. Try with generic or log4x types\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1335,7 +1354,7 @@ sub cli_create_plugin_module($) {
|
||||||
exist_check($plugin_id,'plugin',$plugin_name);
|
exist_check($plugin_id,'plugin',$plugin_name);
|
||||||
|
|
||||||
if ($module_port > 65535 || $module_port < 1) {
|
if ($module_port > 65535 || $module_port < 1) {
|
||||||
print "[ERROR] Port error. Port must into [1-65535]\n\n";
|
print_log "[ERROR] Port error. Port must into [1-65535]\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1400,7 +1419,7 @@ sub cli_create_plugin_module($) {
|
||||||
sub cli_delete_module() {
|
sub cli_delete_module() {
|
||||||
my ($module_name,$agent_name) = @ARGV[2..3];
|
my ($module_name,$agent_name) = @ARGV[2..3];
|
||||||
|
|
||||||
print "[INFO] Deleting module '$module_name' from agent '$agent_name' \n\n";
|
print_log "[INFO] Deleting module '$module_name' from agent '$agent_name' \n\n";
|
||||||
|
|
||||||
my $id_agent = get_agent_id($dbh,$agent_name);
|
my $id_agent = get_agent_id($dbh,$agent_name);
|
||||||
exist_check($id_agent,'agent',$agent_name);
|
exist_check($id_agent,'agent',$agent_name);
|
||||||
|
@ -1430,7 +1449,7 @@ sub cli_delete_not_policy_modules() {
|
||||||
my $file;
|
my $file;
|
||||||
my $filemd5;
|
my $filemd5;
|
||||||
|
|
||||||
print "[INFO] Deleting modules without policy from conf files \n\n";
|
print_log "[INFO] Deleting modules without policy from conf files \n\n";
|
||||||
foreach $file (@files)
|
foreach $file (@files)
|
||||||
{
|
{
|
||||||
if($file ne '.' && $file ne '..') {
|
if($file ne '.' && $file ne '..') {
|
||||||
|
@ -1458,7 +1477,7 @@ sub cli_delete_not_policy_modules() {
|
||||||
sub cli_create_template_module() {
|
sub cli_create_template_module() {
|
||||||
my ($template_name,$module_name,$agent_name) = @ARGV[2..4];
|
my ($template_name,$module_name,$agent_name) = @ARGV[2..4];
|
||||||
|
|
||||||
print "[INFO] Adding template '$template_name' to module '$module_name' from agent '$agent_name' \n\n";
|
print_log "[INFO] Adding template '$template_name' to module '$module_name' from agent '$agent_name' \n\n";
|
||||||
|
|
||||||
my $id_agent = get_agent_id($dbh,$agent_name);
|
my $id_agent = get_agent_id($dbh,$agent_name);
|
||||||
exist_check($id_agent,'agent',$agent_name);
|
exist_check($id_agent,'agent',$agent_name);
|
||||||
|
@ -1478,7 +1497,7 @@ sub cli_create_template_module() {
|
||||||
sub cli_delete_template_module() {
|
sub cli_delete_template_module() {
|
||||||
my ($template_name,$module_name,$agent_name) = @ARGV[2..4];
|
my ($template_name,$module_name,$agent_name) = @ARGV[2..4];
|
||||||
|
|
||||||
print "[INFO] Delete template '$template_name' from module '$module_name' from agent '$agent_name' \n\n";
|
print_log "[INFO] Delete template '$template_name' from module '$module_name' from agent '$agent_name' \n\n";
|
||||||
|
|
||||||
my $id_agent = get_agent_id($dbh,$agent_name);
|
my $id_agent = get_agent_id($dbh,$agent_name);
|
||||||
exist_check($id_agent,'agent',$agent_name);
|
exist_check($id_agent,'agent',$agent_name);
|
||||||
|
@ -1501,7 +1520,7 @@ sub cli_delete_template_module() {
|
||||||
sub cli_create_template_action() {
|
sub cli_create_template_action() {
|
||||||
my ($action_name,$template_name,$module_name,$agent_name,$fires_min,$fires_max) = @ARGV[2..7];
|
my ($action_name,$template_name,$module_name,$agent_name,$fires_min,$fires_max) = @ARGV[2..7];
|
||||||
|
|
||||||
print "[INFO] Adding action '$action_name' to template '$template_name' in module '$module_name' from agent '$agent_name' with $fires_min min. fires and $fires_max max. fires\n\n";
|
print_log "[INFO] Adding action '$action_name' to template '$template_name' in module '$module_name' from agent '$agent_name' with $fires_min min. fires and $fires_max max. fires\n\n";
|
||||||
|
|
||||||
my $id_agent = get_agent_id($dbh,$agent_name);
|
my $id_agent = get_agent_id($dbh,$agent_name);
|
||||||
exist_check($id_agent,'agent',$agent_name);
|
exist_check($id_agent,'agent',$agent_name);
|
||||||
|
@ -1535,7 +1554,7 @@ sub cli_create_template_action() {
|
||||||
sub cli_delete_template_action() {
|
sub cli_delete_template_action() {
|
||||||
my ($action_name,$template_name,$module_name,$agent_name) = @ARGV[2..5];
|
my ($action_name,$template_name,$module_name,$agent_name) = @ARGV[2..5];
|
||||||
|
|
||||||
print "[INFO] Deleting action '$action_name' from template '$template_name' in module '$module_name' from agent '$agent_name')\n\n";
|
print_log "[INFO] Deleting action '$action_name' from template '$template_name' in module '$module_name' from agent '$agent_name')\n\n";
|
||||||
|
|
||||||
my $id_agent = get_agent_id($dbh,$agent_name);
|
my $id_agent = get_agent_id($dbh,$agent_name);
|
||||||
exist_check($id_agent,'agent',$agent_name);
|
exist_check($id_agent,'agent',$agent_name);
|
||||||
|
@ -1562,7 +1581,7 @@ sub cli_data_module() {
|
||||||
|
|
||||||
if(defined($datetime)) {
|
if(defined($datetime)) {
|
||||||
if ($datetime !~ /([0-9]{2,4})\-([0-1][0-9])\-([0-3][0-9]) +([0-2][0-9]):([0-5][0-9])/) {
|
if ($datetime !~ /([0-9]{2,4})\-([0-1][0-9])\-([0-3][0-9]) +([0-2][0-9]):([0-5][0-9])/) {
|
||||||
print "[ERROR] Invalid datetime $datetime. (Correct format: YYYY-MM-DD HH:mm)\n";
|
print_log "[ERROR] Invalid datetime $datetime. (Correct format: YYYY-MM-DD HH:mm)\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
# Add the seconds
|
# Add the seconds
|
||||||
|
@ -1587,14 +1606,14 @@ sub cli_data_module() {
|
||||||
my $module = get_db_single_row ($dbh, 'SELECT * FROM tagente_modulo WHERE id_agente = ? AND id_tipo_modulo = ?', $id_agent, $module_type_id);
|
my $module = get_db_single_row ($dbh, 'SELECT * FROM tagente_modulo WHERE id_agente = ? AND id_tipo_modulo = ?', $id_agent, $module_type_id);
|
||||||
|
|
||||||
if(not defined($module->{'module_interval'})) {
|
if(not defined($module->{'module_interval'})) {
|
||||||
print "[ERROR] No module data finded. \n\n";
|
print_log "[ERROR] No module data finded. \n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
my %data = ('data' => 1);
|
my %data = ('data' => 1);
|
||||||
pandora_process_module ($conf, \%data, '', $module, $module_type, '', $utimestamp, $server_id, $dbh);
|
pandora_process_module ($conf, \%data, '', $module, $module_type, '', $utimestamp, $server_id, $dbh);
|
||||||
|
|
||||||
print "[INFO] Inserting data to module '$module_name'\n\n";
|
print_log "[INFO] Inserting data to module '$module_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -1610,7 +1629,7 @@ sub cli_create_user() {
|
||||||
my $user_exists = get_user_exists ($dbh, $user_name);
|
my $user_exists = get_user_exists ($dbh, $user_name);
|
||||||
non_exist_check($user_exists,'user',$user_name);
|
non_exist_check($user_exists,'user',$user_name);
|
||||||
|
|
||||||
print "[INFO] Creating user '$user_name'\n\n";
|
print_log "[INFO] Creating user '$user_name'\n\n";
|
||||||
|
|
||||||
pandora_create_user ($dbh, $user_name, md5($password), $is_admin, $comments);
|
pandora_create_user ($dbh, $user_name, md5($password), $is_admin, $comments);
|
||||||
}
|
}
|
||||||
|
@ -1634,18 +1653,18 @@ sub cli_user_update() {
|
||||||
}
|
}
|
||||||
elsif($field eq 'password') {
|
elsif($field eq 'password') {
|
||||||
if($new_value eq '') {
|
if($new_value eq '') {
|
||||||
print "[ERROR] Field '$field' cannot be empty\n\n";
|
print_log "[ERROR] Field '$field' cannot be empty\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$new_value = md5($new_value);
|
$new_value = md5($new_value);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] Field '$field' doesnt exist\n\n";
|
print_log "[ERROR] Field '$field' doesnt exist\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Updating field '$field' in user '$user_id'\n\n";
|
print_log "[INFO] Updating field '$field' in user '$user_id'\n\n";
|
||||||
|
|
||||||
my $update;
|
my $update;
|
||||||
|
|
||||||
|
@ -1716,11 +1735,11 @@ sub cli_agent_update() {
|
||||||
$field = 'direccion';
|
$field = 'direccion';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] Field '$field' doesnt exist\n\n";
|
print_log "[ERROR] Field '$field' doesnt exist\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Updating field '$field' in agent '$agent_name'\n\n";
|
print_log "[INFO] Updating field '$field' in agent '$agent_name'\n\n";
|
||||||
|
|
||||||
my $update;
|
my $update;
|
||||||
|
|
||||||
|
@ -1753,7 +1772,7 @@ sub cli_alert_template_update() {
|
||||||
}
|
}
|
||||||
elsif($field eq 'priority') {
|
elsif($field eq 'priority') {
|
||||||
if($new_value < 0 || $new_value > 4) {
|
if($new_value < 0 || $new_value > 4) {
|
||||||
print "[ERROR] Field '$field' is out of interval (0-4)\n\n";
|
print_log "[ERROR] Field '$field' is out of interval (0-4)\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1772,11 +1791,11 @@ sub cli_alert_template_update() {
|
||||||
$field = 'id_group';
|
$field = 'id_group';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] Field '$field' doesnt exist\n\n";
|
print_log "[ERROR] Field '$field' doesnt exist\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Updating field '$field' in alert template '$template_name'\n\n";
|
print_log "[INFO] Updating field '$field' in alert template '$template_name'\n\n";
|
||||||
|
|
||||||
my $update;
|
my $update;
|
||||||
|
|
||||||
|
@ -1792,7 +1811,7 @@ sub cli_alert_template_update() {
|
||||||
sub pandora_check_data_module_fields($) {
|
sub pandora_check_data_module_fields($) {
|
||||||
my $field_value = shift;
|
my $field_value = shift;
|
||||||
|
|
||||||
print "[ERROR] The field '".$field_value->{'field'}."' is not available for data modules\n\n";
|
print_log "[ERROR] The field '".$field_value->{'field'}."' is not available for data modules\n\n";
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
@ -1829,13 +1848,13 @@ sub pandora_check_network_module_fields($) {
|
||||||
}
|
}
|
||||||
elsif($field_value->{'field'} eq 'module_port') {
|
elsif($field_value->{'field'} eq 'module_port') {
|
||||||
if ($field_value->{'new_value'} > 65535 || $field_value->{'new_value'} < 1) {
|
if ($field_value->{'new_value'} > 65535 || $field_value->{'new_value'} < 1) {
|
||||||
print "[ERROR] Port error. Port must into [1-65535]\n\n";
|
print_log "[ERROR] Port error. Port must into [1-65535]\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$field_value->{'field'} = 'tcp_port';
|
$field_value->{'field'} = 'tcp_port';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] The field '".$field_value->{'field'}."' is not available for network modules\n\n";
|
print_log "[ERROR] The field '".$field_value->{'field'}."' is not available for network modules\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1899,13 +1918,13 @@ sub pandora_check_snmp_module_fields($) {
|
||||||
}
|
}
|
||||||
elsif($field_value->{'field'} eq 'module_port') {
|
elsif($field_value->{'field'} eq 'module_port') {
|
||||||
if ($field_value->{'new_value'} > 65535 || $field_value->{'new_value'} < 1) {
|
if ($field_value->{'new_value'} > 65535 || $field_value->{'new_value'} < 1) {
|
||||||
print "[ERROR] Port error. Port must into [1-65535]\n\n";
|
print_log "[ERROR] Port error. Port must into [1-65535]\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$field_value->{'field'} = 'tcp_port';
|
$field_value->{'field'} = 'tcp_port';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] The field '".$field_value->{'field'}."' is not available for SNMP modules\n\n";
|
print_log "[ERROR] The field '".$field_value->{'field'}."' is not available for SNMP modules\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1961,7 +1980,7 @@ sub pandora_check_plugin_module_fields($) {
|
||||||
$field_value->{'field'} = 'tcp_port';
|
$field_value->{'field'} = 'tcp_port';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] The field '".$field_value->{'field'}."' is not available for plugin modules\n\n";
|
print_log "[ERROR] The field '".$field_value->{'field'}."' is not available for plugin modules\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2012,7 +2031,7 @@ sub cli_module_update() {
|
||||||
exist_check($id_agent_change,'agent',$new_value);
|
exist_check($id_agent_change,'agent',$new_value);
|
||||||
my $id_agent_module_exist = get_agent_module_id ($dbh, $module_name, $id_agent_change);
|
my $id_agent_module_exist = get_agent_module_id ($dbh, $module_name, $id_agent_change);
|
||||||
if($id_agent_module_exist != -1) {
|
if($id_agent_module_exist != -1) {
|
||||||
print "[ERROR] A module called '$module_name' already exist in the agent '$new_value'\n\n";
|
print_log "[ERROR] A module called '$module_name' already exist in the agent '$new_value'\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$field = 'id_agente';
|
$field = 'id_agente';
|
||||||
|
@ -2021,7 +2040,7 @@ sub cli_module_update() {
|
||||||
elsif($field eq 'module_name') {
|
elsif($field eq 'module_name') {
|
||||||
my $id_agent_module_change = get_agent_module_id ($dbh, $new_value, $id_agent);
|
my $id_agent_module_change = get_agent_module_id ($dbh, $new_value, $id_agent);
|
||||||
if($id_agent_module_change != -1) {
|
if($id_agent_module_change != -1) {
|
||||||
print "[ERROR] A module called '$new_value' already exist in the agent '$agent_name'\n\n";
|
print_log "[ERROR] A module called '$new_value' already exist in the agent '$agent_name'\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$field = 'nombre';
|
$field = 'nombre';
|
||||||
|
@ -2035,7 +2054,7 @@ sub cli_module_update() {
|
||||||
my $module_group_id = get_module_group_id($dbh,$new_value);
|
my $module_group_id = get_module_group_id($dbh,$new_value);
|
||||||
|
|
||||||
if($module_group_id == -1) {
|
if($module_group_id == -1) {
|
||||||
print "[ERROR] Module group '$new_value' doesnt exist\n\n";
|
print_log "[ERROR] Module group '$new_value' doesnt exist\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
$field = 'id_module_group';
|
$field = 'id_module_group';
|
||||||
|
@ -2062,14 +2081,14 @@ sub cli_module_update() {
|
||||||
pandora_check_plugin_module_fields(\%field_value);
|
pandora_check_plugin_module_fields(\%field_value);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] The field '$field' is not available for this type of module\n\n";
|
print_log "[ERROR] The field '$field' is not available for this type of module\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$field = $field_value{'field'};
|
$field = $field_value{'field'};
|
||||||
$new_value = $field_value{'new_value'};
|
$new_value = $field_value{'new_value'};
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Updating field '$field' in module '$module_name' of agent '$agent_name' with new value '$new_value'\n\n";
|
print_log "[INFO] Updating field '$field' in module '$module_name' of agent '$agent_name' with new value '$new_value'\n\n";
|
||||||
|
|
||||||
my $update;
|
my $update;
|
||||||
|
|
||||||
|
@ -2099,7 +2118,7 @@ sub cli_exec_from_file() {
|
||||||
elsif($c == 3) {
|
elsif($c == 3) {
|
||||||
$file = $opt;
|
$file = $opt;
|
||||||
if(!(-e $file)) {
|
if(!(-e $file)) {
|
||||||
print "[ERROR] File '$file' not exists or cannot be opened\n\n";
|
print_log "[ERROR] File '$file' not exists or cannot be opened\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2199,7 +2218,7 @@ sub cli_user_add_profile() {
|
||||||
$group_name = 'All';
|
$group_name = 'All';
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Adding profile '$profile_name' to user '$user_id' in group '$group_name'\n\n";
|
print_log "[INFO] Adding profile '$profile_name' to user '$user_id' in group '$group_name'\n\n";
|
||||||
|
|
||||||
pandora_add_profile_to_user ($dbh, $user_id, $profile_id, $group_id);
|
pandora_add_profile_to_user ($dbh, $user_id, $profile_id, $group_id);
|
||||||
}
|
}
|
||||||
|
@ -2212,7 +2231,7 @@ sub cli_user_add_profile() {
|
||||||
sub cli_delete_user() {
|
sub cli_delete_user() {
|
||||||
my $user_name = @ARGV[2];
|
my $user_name = @ARGV[2];
|
||||||
|
|
||||||
print "[INFO] Deleting user '$user_name' \n\n";
|
print_log "[INFO] Deleting user '$user_name' \n\n";
|
||||||
|
|
||||||
my $result = pandora_delete_user($dbh,$user_name);
|
my $result = pandora_delete_user($dbh,$user_name);
|
||||||
exist_check($result,'user',$user_name);
|
exist_check($result,'user',$user_name);
|
||||||
|
@ -2226,7 +2245,7 @@ sub cli_delete_user() {
|
||||||
sub cli_delete_alert_template() {
|
sub cli_delete_alert_template() {
|
||||||
my $template_name = @ARGV[2];
|
my $template_name = @ARGV[2];
|
||||||
|
|
||||||
print "[INFO] Deleting template '$template_name' \n\n";
|
print_log "[INFO] Deleting template '$template_name' \n\n";
|
||||||
|
|
||||||
my $result = pandora_delete_alert_template($dbh,$template_name);
|
my $result = pandora_delete_alert_template($dbh,$template_name);
|
||||||
exist_check($result,'alert template',$template_name);
|
exist_check($result,'alert template',$template_name);
|
||||||
|
@ -2247,12 +2266,12 @@ sub cli_create_profile() {
|
||||||
|
|
||||||
if($group_name eq "All") {
|
if($group_name eq "All") {
|
||||||
$id_group = 0;
|
$id_group = 0;
|
||||||
print "[INFO] Adding profile '$profile_name' to all groups for user '$user_name') \n\n";
|
print_log "[INFO] Adding profile '$profile_name' to all groups for user '$user_name') \n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$id_group = get_group_id($dbh,$group_name);
|
$id_group = get_group_id($dbh,$group_name);
|
||||||
exist_check($id_group,'group',$group_name);
|
exist_check($id_group,'group',$group_name);
|
||||||
print "[INFO] Adding profile '$profile_name' to group '$group_name' for user '$user_name') \n\n";
|
print_log "[INFO] Adding profile '$profile_name' to group '$group_name' for user '$user_name') \n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
pandora_create_user_profile ($dbh, $user_name, $id_profile, $id_group);
|
pandora_create_user_profile ($dbh, $user_name, $id_profile, $id_group);
|
||||||
|
@ -2273,12 +2292,12 @@ sub cli_delete_profile() {
|
||||||
|
|
||||||
if($group_name eq "All") {
|
if($group_name eq "All") {
|
||||||
$id_group = 0;
|
$id_group = 0;
|
||||||
print "[INFO] Deleting profile '$profile_name' from all groups for user '$user_name') \n\n";
|
print_log "[INFO] Deleting profile '$profile_name' from all groups for user '$user_name') \n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$id_group = get_group_id($dbh,$group_name);
|
$id_group = get_group_id($dbh,$group_name);
|
||||||
exist_check($id_group,'group',$group_name);
|
exist_check($id_group,'group',$group_name);
|
||||||
print "[INFO] Deleting profile '$profile_name' from group '$group_name' for user '$user_name') \n\n";
|
print_log "[INFO] Deleting profile '$profile_name' from group '$group_name' for user '$user_name') \n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
pandora_delete_user_profile ($dbh, $user_name, $id_profile, $id_group);
|
pandora_delete_user_profile ($dbh, $user_name, $id_profile, $id_group);
|
||||||
|
@ -2350,7 +2369,7 @@ sub cli_create_event() {
|
||||||
if (defined($comment) && $comment ne '') {
|
if (defined($comment) && $comment ne '') {
|
||||||
$comment = '<b>-- Added comment by '.$user_name. ' ['. localtime(time).'] --</b><br>'.$comment.'<br>';
|
$comment = '<b>-- Added comment by '.$user_name. ' ['. localtime(time).'] --</b><br>'.$comment.'<br>';
|
||||||
}
|
}
|
||||||
print "[INFO] Adding event '$event' for agent '$agent_name' \n\n";
|
print_log "[INFO] Adding event '$event' for agent '$agent_name' \n\n";
|
||||||
|
|
||||||
pandora_event ($conf, $event, $id_group, $id_agent, $severity,
|
pandora_event ($conf, $event, $id_group, $id_agent, $severity,
|
||||||
$id_alert_agent_module, $id_agentmodule, $event_type, $event_status, $dbh, $source, $user_name, $comment, $id_extra, $tags);
|
$id_alert_agent_module, $id_agentmodule, $event_type, $event_status, $dbh, $source, $user_name, $comment, $id_extra, $tags);
|
||||||
|
@ -2378,7 +2397,7 @@ sub cli_validate_event() {
|
||||||
|
|
||||||
if(defined($datetime_min) && $datetime_min ne '') {
|
if(defined($datetime_min) && $datetime_min ne '') {
|
||||||
if ($datetime_min !~ /([0-9]{2,4})\-([0-1][0-9])\-([0-3][0-9]) +([0-2][0-9]):([0-5][0-9])/) {
|
if ($datetime_min !~ /([0-9]{2,4})\-([0-1][0-9])\-([0-3][0-9]) +([0-2][0-9]):([0-5][0-9])/) {
|
||||||
print "[ERROR] Invalid datetime_min format. (Correct format: YYYY-MM-DD HH:mm)\n";
|
print_log "[ERROR] Invalid datetime_min format. (Correct format: YYYY-MM-DD HH:mm)\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
# Add the seconds
|
# Add the seconds
|
||||||
|
@ -2387,7 +2406,7 @@ sub cli_validate_event() {
|
||||||
|
|
||||||
if(defined($datetime_max) && $datetime_max ne '') {
|
if(defined($datetime_max) && $datetime_max ne '') {
|
||||||
if ($datetime_max !~ /([0-9]{2,4})\-([0-1][0-9])\-([0-3][0-9]) +([0-2][0-9]):([0-5][0-9])/) {
|
if ($datetime_max !~ /([0-9]{2,4})\-([0-1][0-9])\-([0-3][0-9]) +([0-2][0-9]):([0-5][0-9])/) {
|
||||||
print "[ERROR] Invalid datetime_max $datetime_max. (Correct format: YYYY-MM-DD HH:mm)\n";
|
print_log "[ERROR] Invalid datetime_max $datetime_max. (Correct format: YYYY-MM-DD HH:mm)\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
# Add the seconds
|
# Add the seconds
|
||||||
|
@ -2404,7 +2423,7 @@ sub cli_validate_event() {
|
||||||
}
|
}
|
||||||
|
|
||||||
pandora_validate_event_filter ($conf, $id_agentmodule, $id_agent, $datetime_min, $datetime_max, $user_name, $id_alert_agent_module, $criticity, $dbh);
|
pandora_validate_event_filter ($conf, $id_agentmodule, $id_agent, $datetime_min, $datetime_max, $user_name, $id_alert_agent_module, $criticity, $dbh);
|
||||||
print "[INFO] Validating event for agent '$agent_name'\n\n";
|
print_log "[INFO] Validating event for agent '$agent_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -2418,7 +2437,7 @@ sub cli_validate_event_id() {
|
||||||
my $event_name = pandora_get_event_name($dbh, $id_event);
|
my $event_name = pandora_get_event_name($dbh, $id_event);
|
||||||
exist_check($event_name,'event',$id_event);
|
exist_check($event_name,'event',$id_event);
|
||||||
|
|
||||||
print "[INFO] Validating event '$id_event'\n\n";
|
print_log "[INFO] Validating event '$id_event'\n\n";
|
||||||
|
|
||||||
my $result = pandora_validate_event_id ($conf, $id_event, $dbh);
|
my $result = pandora_validate_event_id ($conf, $id_event, $dbh);
|
||||||
exist_check($result,'event',$id_event);
|
exist_check($result,'event',$id_event);
|
||||||
|
@ -2493,7 +2512,7 @@ sub cli_create_incident() {
|
||||||
exist_check($id_group,'group',$group_name);
|
exist_check($id_group,'group',$group_name);
|
||||||
|
|
||||||
pandora_create_incident ($conf, $dbh, $title, $description, $priority, $status, $origin, $id_group, $owner);
|
pandora_create_incident ($conf, $dbh, $title, $description, $priority, $status, $origin, $id_group, $owner);
|
||||||
print "[INFO] Creating incident '$title'\n\n";
|
print_log "[INFO] Creating incident '$title'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -2514,7 +2533,7 @@ sub cli_delete_data($) {
|
||||||
my $id_module = get_agent_module_id($dbh,$name,$id_agent);
|
my $id_module = get_agent_module_id($dbh,$name,$id_agent);
|
||||||
exist_check($id_module,'module',$name);
|
exist_check($id_module,'module',$name);
|
||||||
|
|
||||||
print "DELETING THE DATA OF THE MODULE $name OF THE AGENT $name2\n\n";
|
print_log "DELETING THE DATA OF THE MODULE $name OF THE AGENT $name2\n\n";
|
||||||
|
|
||||||
pandora_delete_data($dbh, 'module', $id_module);
|
pandora_delete_data($dbh, 'module', $id_module);
|
||||||
}
|
}
|
||||||
|
@ -2523,7 +2542,7 @@ sub cli_delete_data($) {
|
||||||
my $id_agent = get_agent_id($dbh,$name);
|
my $id_agent = get_agent_id($dbh,$name);
|
||||||
exist_check($id_agent,'agent',$name);
|
exist_check($id_agent,'agent',$name);
|
||||||
|
|
||||||
print "DELETING THE DATA OF THE AGENT $name\n\n";
|
print_log "DELETING THE DATA OF THE AGENT $name\n\n";
|
||||||
|
|
||||||
pandora_delete_data($dbh, 'module', $id_agent);
|
pandora_delete_data($dbh, 'module', $id_agent);
|
||||||
}
|
}
|
||||||
|
@ -2532,12 +2551,12 @@ sub cli_delete_data($) {
|
||||||
my $id_group = get_group_id($dbh,$name);
|
my $id_group = get_group_id($dbh,$name);
|
||||||
exist_check($id_group,'group',$name);
|
exist_check($id_group,'group',$name);
|
||||||
|
|
||||||
print "DELETING THE DATA OF THE GROUP $name\n\n";
|
print_log "DELETING THE DATA OF THE GROUP $name\n\n";
|
||||||
|
|
||||||
pandora_delete_data($dbh, 'group', $id_group);
|
pandora_delete_data($dbh, 'group', $id_group);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] Invalid parameter '$opt'.\n\n";
|
print_log "[ERROR] Invalid parameter '$opt'.\n\n";
|
||||||
help_screen ();
|
help_screen ();
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
@ -2557,11 +2576,11 @@ sub cli_apply_policy() {
|
||||||
my $ret = enterprise_hook('pandora_add_policy_queue', [$dbh, $conf, $policy_id, 'apply']);
|
my $ret = enterprise_hook('pandora_add_policy_queue', [$dbh, $conf, $policy_id, 'apply']);
|
||||||
|
|
||||||
if($ret == -1) {
|
if($ret == -1) {
|
||||||
print "[ERROR] Operation 'apply' cannot be added to policy '$policy_name' because is duplicated in queue or incompatible with others operations\n\n";
|
print_log "[ERROR] Operation 'apply' cannot be added to policy '$policy_name' because is duplicated in queue or incompatible with others operations\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Added operation 'apply' to policy '$policy_name'\n\n";
|
print_log "[INFO] Added operation 'apply' to policy '$policy_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
@ -2574,20 +2593,20 @@ sub cli_apply_all_policies() {
|
||||||
|
|
||||||
my $npolicies = scalar(@{$policies});
|
my $npolicies = scalar(@{$policies});
|
||||||
|
|
||||||
print "[INFO] $npolicies policies found\n\n";
|
print_log "[INFO] $npolicies policies found\n\n";
|
||||||
|
|
||||||
my $added = 0;
|
my $added = 0;
|
||||||
foreach my $policy (@{$policies}) {
|
foreach my $policy (@{$policies}) {
|
||||||
my $ret = enterprise_hook('pandora_add_policy_queue', [$dbh, $conf, $policy->{'id'}, 'apply']);
|
my $ret = enterprise_hook('pandora_add_policy_queue', [$dbh, $conf, $policy->{'id'}, 'apply']);
|
||||||
if($ret != -1) {
|
if($ret != -1) {
|
||||||
$added++;
|
$added++;
|
||||||
print "[INFO] Added operation 'apply' to policy '".safe_output($policy->{'name'})."'\n";
|
print_log "[INFO] Added operation 'apply' to policy '".safe_output($policy->{'name'})."'\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if($npolicies > $added) {
|
if($npolicies > $added) {
|
||||||
my $failed = $npolicies - $added;
|
my $failed = $npolicies - $added;
|
||||||
print "[ERROR] $failed policies cannot be added to apply queue. Maybe the queue already contains these operations.\n";
|
print_log "[ERROR] $failed policies cannot be added to apply queue. Maybe the queue already contains these operations.\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2597,12 +2616,12 @@ sub cli_apply_all_policies() {
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
sub cli_validate_all_alerts() {
|
sub cli_validate_all_alerts() {
|
||||||
print "[INFO] Validating all the alerts\n\n";
|
print_log "[INFO] Validating all the alerts\n\n";
|
||||||
|
|
||||||
my $res = db_update ($dbh, "UPDATE talert_template_modules SET times_fired = 0, internal_counter = 0");
|
my $res = db_update ($dbh, "UPDATE talert_template_modules SET times_fired = 0, internal_counter = 0");
|
||||||
|
|
||||||
if($res == -1) {
|
if($res == -1) {
|
||||||
print "[ERROR] Alerts cannot be validated\n\n";
|
print_log "[ERROR] Alerts cannot be validated\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2629,17 +2648,17 @@ sub cli_validate_policy_alerts() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($#policy_alerts_id_array == -1) {
|
if($#policy_alerts_id_array == -1) {
|
||||||
print "[INFO] No alerts found in the policy '$policy_name'\n\n";
|
print_log "[INFO] No alerts found in the policy '$policy_name'\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$policy_alerts_id = join(',',@policy_alerts_id_array);
|
$policy_alerts_id = join(',',@policy_alerts_id_array);
|
||||||
|
|
||||||
print "[INFO] Validating the alerts of the policy '$policy_name'\n\n";
|
print_log "[INFO] Validating the alerts of the policy '$policy_name'\n\n";
|
||||||
|
|
||||||
my $res = db_update ($dbh, "UPDATE talert_template_modules SET times_fired = 0, internal_counter = 0 WHERE id_policy_alerts IN (?)", $policy_alerts_id);
|
my $res = db_update ($dbh, "UPDATE talert_template_modules SET times_fired = 0, internal_counter = 0 WHERE id_policy_alerts IN (?)", $policy_alerts_id);
|
||||||
|
|
||||||
if($res == -1) {
|
if($res == -1) {
|
||||||
print "[ERROR] Alerts cannot be validated\n\n";
|
print_log "[ERROR] Alerts cannot be validated\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2693,7 +2712,7 @@ sub cli_get_agent_modules() {
|
||||||
my $modules = pandora_get_agent_modules ($dbh, $id_agent);
|
my $modules = pandora_get_agent_modules ($dbh, $id_agent);
|
||||||
|
|
||||||
if(scalar(@{$modules}) == 0) {
|
if(scalar(@{$modules}) == 0) {
|
||||||
print "[INFO] The agent '$agent_name' have not modules\n\n";
|
print_log "[INFO] The agent '$agent_name' have not modules\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print "id_module, module_name\n";
|
print "id_module, module_name\n";
|
||||||
|
@ -2738,14 +2757,14 @@ sub cli_get_policies() {
|
||||||
$policies = enterprise_hook('get_agent_policies',[$dbh,$id_agent]);
|
$policies = enterprise_hook('get_agent_policies',[$dbh,$id_agent]);
|
||||||
|
|
||||||
if(scalar(@{$policies}) == 0) {
|
if(scalar(@{$policies}) == 0) {
|
||||||
print "[INFO] No policies found on agent '$agent_name'\n\n";
|
print_log "[INFO] No policies found on agent '$agent_name'\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$policies = enterprise_hook('get_policies',[$dbh]);
|
$policies = enterprise_hook('get_policies',[$dbh]);
|
||||||
if(scalar(@{$policies}) == 0) {
|
if(scalar(@{$policies}) == 0) {
|
||||||
print "[INFO] No policies found\n\n";
|
print_log "[INFO] No policies found\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2804,7 +2823,7 @@ sub cli_get_agents() {
|
||||||
my @agents = get_db_rows ($dbh, "SELECT * FROM tagente WHERE $condition");
|
my @agents = get_db_rows ($dbh, "SELECT * FROM tagente WHERE $condition");
|
||||||
|
|
||||||
if(scalar(@agents) == 0) {
|
if(scalar(@agents) == 0) {
|
||||||
print "[INFO] No agents found\n\n";
|
print_log "[INFO] No agents found\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2826,7 +2845,7 @@ sub cli_get_agents() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($head_print == 0) {
|
if($head_print == 0) {
|
||||||
print "[INFO] No agents found\n\n";
|
print_log "[INFO] No agents found\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2851,10 +2870,10 @@ sub cli_delete_conf_file() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($conf_deleted == 1 || $md5_deleted == 1) {
|
if($conf_deleted == 1 || $md5_deleted == 1) {
|
||||||
print "[INFO] Local conf files of the agent '$agent_name' has been deleted succesfully\n\n";
|
print_log "[INFO] Local conf files of the agent '$agent_name' has been deleted succesfully\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] Local conf file of the agent '$agent_name' didn't found\n\n";
|
print_log "[ERROR] Local conf file of the agent '$agent_name' didn't found\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2872,7 +2891,7 @@ sub cli_clean_conf_file() {
|
||||||
if (-e $conf->{incomingdir}.'/conf/'.md5($agent_name).'.conf') {
|
if (-e $conf->{incomingdir}.'/conf/'.md5($agent_name).'.conf') {
|
||||||
$result = enterprise_hook('pandora_clean_conf_file',[$conf, md5($agent_name)]);
|
$result = enterprise_hook('pandora_clean_conf_file',[$conf, md5($agent_name)]);
|
||||||
if($result != -1) {
|
if($result != -1) {
|
||||||
print "[INFO] Conf file '".$conf->{incomingdir}.'/conf/'.md5($agent_name).".conf has been cleaned'\n\n";
|
print_log "[INFO] Conf file '".$conf->{incomingdir}.'/conf/'.md5($agent_name).".conf has been cleaned'\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2886,7 +2905,7 @@ sub cli_clean_conf_file() {
|
||||||
my @filesplit = split('.',$file);
|
my @filesplit = split('.',$file);
|
||||||
$result = enterprise_hook('pandora_clean_conf_file',[$conf,$filesplit[0]]);
|
$result = enterprise_hook('pandora_clean_conf_file',[$conf,$filesplit[0]]);
|
||||||
if($result != -1) {
|
if($result != -1) {
|
||||||
print "[INFO] Conf file '".$conf->{incomingdir}.'/conf/'.$filesplit[0].".conf has been cleaned'\n\n";
|
print_log "[INFO] Conf file '".$conf->{incomingdir}.'/conf/'.$filesplit[0].".conf has been cleaned'\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2922,7 +2941,7 @@ sub cli_get_bad_conf_files() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($bad_files == 0) {
|
if($bad_files == 0) {
|
||||||
print "[INFO] No bad files found\n\n";
|
print_log "[INFO] No bad files found\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2959,10 +2978,10 @@ sub cli_policy_add_agent() {
|
||||||
my $policy_agent_id = enterprise_hook('pandora_policy_add_agent',[$policy_id, $agent_id, $dbh]);
|
my $policy_agent_id = enterprise_hook('pandora_policy_add_agent',[$policy_id, $agent_id, $dbh]);
|
||||||
|
|
||||||
if($policy_agent_id == -1) {
|
if($policy_agent_id == -1) {
|
||||||
print "[ERROR] A problem has been ocurred adding agent '$agent_name' to policy '$policy_name'\n\n";
|
print_log "[ERROR] A problem has been ocurred adding agent '$agent_name' to policy '$policy_name'\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[INFO] Added agent '$agent_name' to policy '$policy_name'. Is necessary to apply the policy in order to changes take effect.\n\n";
|
print_log "[INFO] Added agent '$agent_name' to policy '$policy_name'. Is necessary to apply the policy in order to changes take effect.\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2990,10 +3009,10 @@ sub cli_create_group() {
|
||||||
$group_id = pandora_create_group ($group_name, $icon, $parent_group_id, 0, 0, '', 0, $description, $dbh);
|
$group_id = pandora_create_group ($group_name, $icon, $parent_group_id, 0, 0, '', 0, $description, $dbh);
|
||||||
|
|
||||||
if($group_id == -1) {
|
if($group_id == -1) {
|
||||||
print "[ERROR] A problem has been ocurred creating group '$group_name'\n\n";
|
print_log "[ERROR] A problem has been ocurred creating group '$group_name'\n\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[INFO] Created group '$group_name'\n\n";
|
print_log "[INFO] Created group '$group_name'\n\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3004,7 +3023,7 @@ sub cli_create_group() {
|
||||||
sub cli_disable_alerts ($$) {
|
sub cli_disable_alerts ($$) {
|
||||||
my ($conf, $dbh) = @_;
|
my ($conf, $dbh) = @_;
|
||||||
|
|
||||||
print "[INFO] Disabling all alerts \n\n";
|
print_log "[INFO] Disabling all alerts \n\n";
|
||||||
|
|
||||||
# This works by disabling alerts in each defined group
|
# This works by disabling alerts in each defined group
|
||||||
# If you have previously a group with alert disabled, and you disable
|
# If you have previously a group with alert disabled, and you disable
|
||||||
|
@ -3022,7 +3041,7 @@ sub cli_disable_alerts ($$) {
|
||||||
sub cli_enable_alerts ($$) {
|
sub cli_enable_alerts ($$) {
|
||||||
my ($conf, $dbh) = @_;
|
my ($conf, $dbh) = @_;
|
||||||
|
|
||||||
print "[INFO] Enabling all alerts \n\n";
|
print_log "[INFO] Enabling all alerts \n\n";
|
||||||
|
|
||||||
db_do ($dbh, "UPDATE tgrupo SET disabled = 0");
|
db_do ($dbh, "UPDATE tgrupo SET disabled = 0");
|
||||||
|
|
||||||
|
@ -3036,7 +3055,7 @@ sub cli_enable_alerts ($$) {
|
||||||
sub cli_disable_eacl ($$) {
|
sub cli_disable_eacl ($$) {
|
||||||
my ($conf, $dbh) = @_;
|
my ($conf, $dbh) = @_;
|
||||||
|
|
||||||
print "[INFO] Disabling Enterprise ACL system (system wide)\n\n";
|
print_log "[INFO] Disabling Enterprise ACL system (system wide)\n\n";
|
||||||
|
|
||||||
db_do ($dbh, "UPDATE tconfig SET `value` ='0' WHERE `token` = 'acl_enterprise'");
|
db_do ($dbh, "UPDATE tconfig SET `value` ='0' WHERE `token` = 'acl_enterprise'");
|
||||||
|
|
||||||
|
@ -3050,7 +3069,7 @@ sub cli_disable_eacl ($$) {
|
||||||
sub cli_enable_eacl ($$) {
|
sub cli_enable_eacl ($$) {
|
||||||
my ($conf, $dbh) = @_;
|
my ($conf, $dbh) = @_;
|
||||||
|
|
||||||
print "[INFO] Enabling Enterprise ACL system (system wide)\n\n";
|
print_log "[INFO] Enabling Enterprise ACL system (system wide)\n\n";
|
||||||
|
|
||||||
db_do ($dbh, "UPDATE tconfig SET `value` ='1' WHERE `token` = 'acl_enterprise'");
|
db_do ($dbh, "UPDATE tconfig SET `value` ='1' WHERE `token` = 'acl_enterprise'");
|
||||||
|
|
||||||
|
@ -3069,11 +3088,11 @@ sub cli_user_enable () {
|
||||||
exist_check($user_disabled,'user',$user_id);
|
exist_check($user_disabled,'user',$user_id);
|
||||||
|
|
||||||
if($user_disabled == 0) {
|
if($user_disabled == 0) {
|
||||||
print "[INFO] The user '$user_id' is already enabled. Nothing to do.\n\n";
|
print_log "[INFO] The user '$user_id' is already enabled. Nothing to do.\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Enabling user '$user_id'\n\n";
|
print_log "[INFO] Enabling user '$user_id'\n\n";
|
||||||
|
|
||||||
$user_id = safe_input($user_id);
|
$user_id = safe_input($user_id);
|
||||||
|
|
||||||
|
@ -3094,11 +3113,11 @@ sub cli_user_disable () {
|
||||||
exist_check($user_disabled,'user',$user_id);
|
exist_check($user_disabled,'user',$user_id);
|
||||||
|
|
||||||
if($user_disabled == 1) {
|
if($user_disabled == 1) {
|
||||||
print "[INFO] The user '$user_id' is already disabled. Nothing to do.\n\n";
|
print_log "[INFO] The user '$user_id' is already disabled. Nothing to do.\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Disabling user '$user_id'\n\n";
|
print_log "[INFO] Disabling user '$user_id'\n\n";
|
||||||
|
|
||||||
$user_id = safe_input($user_id);
|
$user_id = safe_input($user_id);
|
||||||
|
|
||||||
|
@ -3121,11 +3140,11 @@ sub cli_stop_downtime () {
|
||||||
my $downtime_date_to = get_db_value ($dbh, 'SELECT date_to FROM tplanned_downtime WHERE id=?', $downtime_id);
|
my $downtime_date_to = get_db_value ($dbh, 'SELECT date_to FROM tplanned_downtime WHERE id=?', $downtime_id);
|
||||||
|
|
||||||
if($current_time >= $downtime_date_to) {
|
if($current_time >= $downtime_date_to) {
|
||||||
print "[INFO] Planned_downtime '$downtime_name' is already stopped\n\n";
|
print_log "[INFO] Planned_downtime '$downtime_name' is already stopped\n\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
print "[INFO] Stopping planned downtime '$downtime_name'\n\n";
|
print_log "[INFO] Stopping planned downtime '$downtime_name'\n\n";
|
||||||
|
|
||||||
my $parameters->{'date_to'} = time;
|
my $parameters->{'date_to'} = time;
|
||||||
|
|
||||||
|
@ -3146,7 +3165,7 @@ sub cli_module_get_data () {
|
||||||
exist_check($module_id, 'module name', $module_name);
|
exist_check($module_id, 'module name', $module_name);
|
||||||
|
|
||||||
if($interval <= 0) {
|
if($interval <= 0) {
|
||||||
print "[ERROR] Interval must be a possitive value\n\n";
|
print_log "[ERROR] Interval must be a possitive value\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$csv_separator = '|' unless defined($csv_separator);
|
$csv_separator = '|' unless defined($csv_separator);
|
||||||
|
@ -3220,7 +3239,7 @@ sub pandora_manage_main ($$$) {
|
||||||
|
|
||||||
# Has read setup file ok ?
|
# Has read setup file ok ?
|
||||||
if ( $ltotal == 0 ) {
|
if ( $ltotal == 0 ) {
|
||||||
print "[ERROR] No valid arguments\n\n";
|
print_log "[ERROR] No valid arguments\n\n";
|
||||||
help_screen();
|
help_screen();
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
@ -3480,7 +3499,7 @@ sub pandora_manage_main ($$$) {
|
||||||
cli_create_network_module_from_component();
|
cli_create_network_module_from_component();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "[ERROR] Invalid option '$param'.\n\n";
|
print_log "[ERROR] Invalid option '$param'.\n\n";
|
||||||
$param = '';
|
$param = '';
|
||||||
help_screen ();
|
help_screen ();
|
||||||
exit;
|
exit;
|
||||||
|
|
Loading…
Reference in New Issue