Skip to content

Commit

Permalink
Fixing Issue #134
Browse files Browse the repository at this point in the history
Syslog Search to include Program column - Reports
  • Loading branch information
TheWitness committed Oct 28, 2020
1 parent f0287ab commit 4475bae
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 19 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@

* issue#133: Saving Settings on the Syslog Tab are not retained in latest Cacti

* feature#134: Syslog Search to include Program column - Reports

* feature: Migrate all Syslog Images to Fontawesome Glyphs


--- 2.9 ---

* issue#120: SQL syntax error for syslog when click browser back button
Expand Down
17 changes: 12 additions & 5 deletions setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -402,12 +402,15 @@ function syslog_setup_table_new($options) {

/* validate some simple information */
$mysqlVersion = syslog_get_mysql_version('syslog');
$truncate = ((isset($options['upgrade_type']) && $options['upgrade_type'] == 'truncate') ? true:false);
$engine = ((isset($options['engine']) && $options['engine'] == 'innodb') ? 'InnoDB':'MyISAM');
$partitioned = ((isset($options['db_type']) && $options['db_type'] == 'part') ? true:false);
$truncate = isset($options['upgrade_type']) && $options['upgrade_type'] == 'truncate' ? true:false;
$engine = isset($options['engine']) && $options['engine'] == 'innodb' ? 'InnoDB':'MyISAM';
$partitioned = isset($options['db_type']) && $options['db_type'] == 'part' ? true:false;
$syslogexists = sizeof(syslog_db_fetch_row("SHOW TABLES FROM `" . $syslogdb_default . "` LIKE 'syslog'"));

if ($truncate) syslog_db_execute("DROP TABLE IF EXISTS `" . $syslogdb_default . "`.`syslog`");
if ($truncate) {
syslog_db_execute("DROP TABLE IF EXISTS `" . $syslogdb_default . "`.`syslog`");
}

if (!$partitioned) {
syslog_db_execute("CREATE TABLE IF NOT EXISTS `" . $syslogdb_default . "`.`syslog` (
facility_id int(10) unsigned default NULL,
Expand All @@ -427,7 +430,10 @@ function syslog_setup_table_new($options) {
syslog_create_partitioned_syslog_table($engine, $options['days']);
}

if ($truncate) syslog_db_execute("DROP TABLE IF EXISTS `" . $syslogdb_default . "`.`syslog_alert`");
if ($truncate) {
syslog_db_execute("DROP TABLE IF EXISTS `" . $syslogdb_default . "`.`syslog_alert`");
}

syslog_db_execute("CREATE TABLE IF NOT EXISTS `" . $syslogdb_default . "`.`syslog_alert` (
`id` int(10) NOT NULL auto_increment,
`hash` varchar(32) NOT NULL default '',
Expand Down Expand Up @@ -1049,6 +1055,7 @@ function syslog_config_arrays () {
'messagec' => __('Contains', 'syslog'),
'messagee' => __('Ends with', 'syslog'),
'host' => __('Hostname is', 'syslog'),
'program' => __('Program is', 'syslog'),
'facility' => __('Facility is', 'syslog'),
'sql' => __('SQL Expression', 'syslog')
);
Expand Down
51 changes: 37 additions & 14 deletions syslog_process.php
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,11 @@
$syslog_xferred = $syslog_items['xferred'];

/* send out the alerts */
$query = syslog_db_fetch_assoc('SELECT * FROM `' . $syslogdb_default . "`.`syslog_alert` WHERE enabled='on'");
$syslog_alerts = sizeof($query);
$query = syslog_db_fetch_assoc('SELECT *
FROM `' . $syslogdb_default . "`.`syslog_alert`
WHERE enabled='on'");

$syslog_alerts = sizeof($query);

if (read_config_option('syslog_html') == 'on') {
$html = true;
Expand Down Expand Up @@ -307,30 +310,36 @@
$th_sql = '';

if ($alert['type'] == 'facility') {
$sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming`
$sql = 'SELECT *
FROM `' . $syslogdb_default . '`.`syslog_incoming`
WHERE ' . $syslog_incoming_config['facilityField'] . ' = ' . db_qstr($alert['message']) . '
AND status = ' . $uniqueID;
} else if ($alert['type'] == 'messageb') {
$sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming`
$sql = 'SELECT *
FROM `' . $syslogdb_default . '`.`syslog_incoming`
WHERE ' . $syslog_incoming_config['textField'] . '
LIKE ' . db_qstr($alert['message'] . '%') . '
AND status = ' . $uniqueID;
} else if ($alert['type'] == 'messagec') {
$sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming`
$sql = 'SELECT *
FROM `' . $syslogdb_default . '`.`syslog_incoming`
WHERE ' . $syslog_incoming_config['textField'] . '
LIKE ' . db_qstr('%' . $alert['message'] . '%') . '
AND status = ' . $uniqueID;
} else if ($alert['type'] == 'messagee') {
$sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming`
$sql = 'SELECT *
FROM `' . $syslogdb_default . '`.`syslog_incoming`
WHERE ' . $syslog_incoming_config['textField'] . '
LIKE ' . db_qstr('%' . $alert['message']) . '
AND status = ' . $uniqueID;
} else if ($alert['type'] == 'host') {
$sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming`
$sql = 'SELECT *
FROM `' . $syslogdb_default . '`.`syslog_incoming`
WHERE ' . $syslog_incoming_config['hostField'] . ' = ' . db_qstr($alert['message']) . '
AND status = ' . $uniqueID;
} else if ($alert['type'] == 'sql') {
$sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog_incoming`
$sql = 'SELECT *
FROM `' . $syslogdb_default . '`.`syslog_incoming`
WHERE (' . $alert['message'] . ')
AND status=' . $uniqueID;
}
Expand Down Expand Up @@ -617,42 +626,56 @@
$sql = '';
$reptext = '';
if ($syslog_report['type'] == 'messageb') {
$sql = 'SELECT sl.*, sh.host FROM `' . $syslogdb_default . '`.`syslog` AS sl
$sql = 'SELECT sl.*, sh.host
FROM `' . $syslogdb_default . '`.`syslog` AS sl
INNER JOIN `' . $syslogdb_default . '`.`syslog_hosts` AS sh
ON sl.host_id = sh.host_id
WHERE message LIKE ' . db_qstr($syslog_report['message'] . '%');
}

if ($syslog_report['type'] == 'messagec') {
$sql = 'SELECT sl.*, sh.host FROM `' . $syslogdb_default . '`.`syslog` AS sl
$sql = 'SELECT sl.*, sh.host
FROM `' . $syslogdb_default . '`.`syslog` AS sl
INNER JOIN `' . $syslogdb_default . '`.`syslog_hosts` AS sh
ON sl.host_id = sh.host_id
WHERE message LIKE ' . db_qstr('%' . $syslog_report['message'] . '%');
}

if ($syslog_report['type'] == 'messagee') {
$sql = 'SELECT sl.*, sh.host FROM `' . $syslogdb_default . '`.`syslog` AS sl
$sql = 'SELECT sl.*, sh.host
FROM `' . $syslogdb_default . '`.`syslog` AS sl
INNER JOIN `' . $syslogdb_default . '`.`syslog_hosts` AS sh
ON sl.host_id = sh.host_id
WHERE message LIKE ' . db_qstr('%' . $syslog_report['message']);
}

if ($syslog_report['type'] == 'host') {
$sql = 'SELECT sl.*, sh.host FROM `' . $syslogdb_default . '`.`syslog` AS sl
$sql = 'SELECT sl.*, sh.host
FROM `' . $syslogdb_default . '`.`syslog` AS sl
INNER JOIN `' . $syslogdb_default . '`.`syslog_hosts` AS sh
ON sl.host_id = sh.host_id
WHERE sh.host = ' . db_qstr($syslog_report['message']);
}

if ($syslog_report['type'] == 'facility') {
$sql = 'SELECT sl.*, sf.facility FROM `' . $syslogdb_default . '`.`syslog` AS sl
$sql = 'SELECT sl.*, sf.facility
FROM `' . $syslogdb_default . '`.`syslog` AS sl
INNER JOIN `' . $syslogdb_default . '`.`syslog_facilities` AS sf
ON sl.facility_id = sf.facility_id
WHERE sf.facility = ' . db_qstr($syslog_report['message']);
}

if ($syslog_report['type'] == 'program') {
$sql = 'SELECT sl.*, sp.program
FROM `' . $syslogdb_default . '`.`syslog` AS sl
INNER JOIN `' . $syslogdb_default . '`.`syslog_programs` AS sp
ON sl.program_id = sp.program_id
WHERE sp.program = ' . db_qstr($syslog_report['message']);
}

if ($syslog_report['type'] == 'sql') {
$sql = 'SELECT * FROM `' . $syslogdb_default . '`.`syslog`
$sql = 'SELECT *
FROM `' . $syslogdb_default . '`.`syslog`
WHERE (' . $syslog_report['message'] . ')';
}

Expand Down

0 comments on commit 4475bae

Please sign in to comment.