Cacti / plugin_syslog

Syslog Plugin for Cacti
GNU General Public License v2.0
21 stars 16 forks source link

Wrong connection in functions.php #186

Closed Tsvetk closed 1 year ago

Tsvetk commented 2 years ago

Describe the bug 2022-06-18 19:38:05 - CMDPHP SQL Backtrace: (/plugins/syslog/syslog_process.php[156]:syslog_preprocess_incoming_records(), /plugins/syslog/functions.php[1678]:db_fetch_cell_prepared(), /lib/database.php[484]:db_execute_prepared()) 2022-06-18 19:38:05 - CMDPHP ERROR: A DB Cell Failed!, Error: SELECT command denied to user 'cactiuser'@'localhost' for table 'syslog_incoming' 2022-06-18 19:38:05 - DBCALL ERROR: A DB Cell Failed!, Error: 1142, SQL: 'SELECT COUNT(seq) FROM syslog.syslog_incoming WHERE status = ?' 2022-06-18 19:38:05 - POLLER: Poller[Main Poller] PID[23904] NOTE: Registering process! (syslog, master, 1, 23904)

To Reproduce Steps to reproduce the behavior: Different databases with different credential for cacti and syslog

Fix At /plugins/syslog/functions.php[1675]: db_fetch_cell_prepared() change to syslog_db_fetch_cell_prepared()

TheWitness commented 2 years ago

This is a setup problem and not a bug. Watch Sean Mancini's @bmfmancini video on the YouTube page.

Tsvetk commented 1 year ago

$syslog_incoming = db_fetch_cell_prepared('SELECT COUNT(seq) FROM ' . $syslogdb_default . '.syslog_incoming WHERE status = ?', array($uniqueID));

We have two connections db_fetch_cell_prepared() - have access to Cacti database and do no have to syslog database syslog_db_fetch_cell_prepared() - have access to syslog database and do no have to Cacti database

How can select db_fetch_cell_prepared() from syslog_incoming from syslog database ?

/ revert if you dont use the Cacti database / $use_cacti_db = false;

And set different credentials for syslog database and Cacti database