Cacti (home)ForumsDocumentation
Cacti: offical forums and support
It is currently Mon Aug 20, 2018 10:52 pm

All times are UTC - 5 hours




Post new topic Reply to topic  [ 10 posts ] 
Author Message
 Post subject: Thold BUG 0.4.1 with View Graph
PostPosted: Thu Mar 25, 2010 11:40 am 
Offline
Cacti User

Joined: Wed May 07, 2008 10:23 am
Posts: 50
Hi together,

I just want to inform you about a bug I recognized.

If you add create a "Threshold from Template" you will find this new created Threshold under the threshold section. There you find a small icon "View Graph" to show the corosponding graph.

The link looks like the following ...
https://x.x.x.x/graph.php?local_graph_id=3180&rra_id=all

Now, if you edit this threshold and if you uncheck the "Template Propagation Enabled" checkbox and save this configuration you will see that the link graph can not be accesses anymore. The link then looks like the following ...

https://x.x.x.x/graph.php?local_graph_id=0&rra_id=all

As you can see the link looses the ID information.

Does somebody has found a fix for this?

This would be really great!

BR
Benjamin


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Tue Dec 09, 2014 4:29 pm 
Offline

Joined: Tue Dec 09, 2014 4:21 pm
Posts: 5
See the issue with Thold V0.5.0 as well.

I'm not sure there is an automatic fix, but I resolved my issue by changing the values in the database:

mysql -u root -p<mysql root password>
use cacti
#list entries in the thold_data table and note the "id" number - the graph_id will be set to "0"
select id,name,rra_id,data_id,graph_id from thold_data;

Go into Cacti GUI and find the correct graph, hover over with the cursor and look at the status bar in the browser which should show the correct id.

#Then modify the table manually back in mysql
update thold_data set graph_id = <enter graph id from above> where id=<the id number you noted> limit 1;


Then go back to Cacti, go into Thold and the correct graph should be displayed when you click the link.

Additionally, email alerts that get sent out should also be populated correctly.


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Fri Jan 05, 2018 11:57 am 
Offline

Joined: Wed Jan 03, 2018 4:35 pm
Posts: 3
Hi,
I got a similar issues when I create thresholds. Sometimes the link looks as already described by blugger:
Sometimes o.K. like:
https://x.x.x.x/graph.php?local_graph_id=3180&rra_id=all

Sometimes local_graph_id=0 like:
https://x.x.x.x/graph.php?local_graph_id=0&rra_id=all

I found a solution which is working to me. I will not say that this is the best solution and maybe it will not cover all of these issues but it's o.K. to me at the moment. By the way: Emails, which are sent out by thold, having the related graph included after this fix. So I am happy at the moment :D

Pease take care and save your config before you will perform any changes.

What I did:
1.) login as root

2.) backup thold-functions.php: # cp /var/www/html/plugins/thold/thold-functions.php /var/www/html/plugins/thold/thold-functions.php.original

3.) Open /var/www/html/plugins/thold/thold-functions.php with an editor

4.) locate line 2551
(It's the line next of /* Get the Data Template, Graph Template, and Graph */ )

5.) Comment out line 2551
//$rrdsql = db_fetch_row('SELECT id, data_template_id FROM data_template_rrd WHERE local_data_id=' . $save['rra_id'] . ' ORDER BY id');

6.) insert these 3 new lines before line 2551:
$template_rrd = db_fetch_row("select * from data_template_rrd where id=" . $_POST['data_template_rrd_id']);
$mystring = trim($template_rrd['data_source_name']);
$rrdsql = db_fetch_row('SELECT id, data_template_id FROM data_template_rrd WHERE local_data_id=' . $save['rra_id'] . ' and trim(data_source_name)="' . $mystring . '" ORDER BY id');

7.) Check your work:
Line 2550: /* Get the Data Template, Graph Template, and Graph */
Line 2551: $template_rrd = db_fetch_row("select * from data_template_rrd where id=" . $_POST['data_template_rrd_id']);
Line 2552: $mystring = trim($template_rrd['data_source_name']);
Line 2553: $rrdsql = db_fetch_row('SELECT id, data_template_id FROM data_template_rrd WHERE local_data_id=' . $save['rra_id'] . ' and trim(data_source_name)="' . $mystring . '" ORDER BY id');
Line 2554: //$rrdsql = db_fetch_row('SELECT id, data_template_id FROM data_template_rrd WHERE local_data_id=' . $save['rra_id'] . ' ORDER BY id');

8.) save your changes

9.) browser: Go to "Config"-Tab, create a new threshold or open an existing threshold and press "save"

10.)browser: Go to "Threshold"-Tab, click on the graph-Icon and check if the graph will appear

The good thing: I do not have to create the threshold again. Just open the threshold an "save" is enough to update the missing data needed to show the correct link.

One thing which is not clear to me at the moment: I have some thresholds defined for hosts which are not in service at the moment. For these hosts my solution will not work. I have to check it again after the hosts are back in service again.

Maybe my reply can help someone else.
Sorry for my bad english :oops:


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Fri Jan 05, 2018 12:44 pm 
Offline
Cacti Guru User

Joined: Sun Aug 27, 2017 12:05 am
Posts: 1337
Have you reported this on cacti's GitHub issues section? IF not, I can do that on your behalf and submit your proposed fix.

_________________
Cacti Resources:
Cacti Website
Cacti Issues
Cacti Releases

My resources:
How to submit Pull Requests
Development Wiki and How To's
Updated NetSNMP Memory template for Cacti 1.x
Cisco SFP template for Cacti 0.8.8


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Fri Jan 05, 2018 12:47 pm 
Offline
Cacti Guru User

Joined: Sun Aug 27, 2017 12:05 am
Posts: 1337
Forget that I've just realised that you are using an old version of thold. However, I will see if the same issue still applies.

_________________
Cacti Resources:
Cacti Website
Cacti Issues
Cacti Releases

My resources:
How to submit Pull Requests
Development Wiki and How To's
Updated NetSNMP Memory template for Cacti 1.x
Cisco SFP template for Cacti 0.8.8


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Fri Jan 05, 2018 2:37 pm 
Offline

Joined: Wed Jan 03, 2018 4:35 pm
Posts: 3
Hi netniV,

oh yes, sorry. I forgot to say that I am still using thold version 0.5

I think the problem is related to "data_template_rrd". In case you are using more than one or two "data_source_name" only the first entry was found every time I tried to define a threshold.

Using the additional search for the "data_source_name" will select the correct "id" and "data_template_id".
I do not know if this is still the case in newer versions of thold.

netniV, thank you for checking if this is the case in newer versions also :D


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Thu Jan 11, 2018 1:43 pm 
Offline
Cacti Guru User

Joined: Sun Aug 27, 2017 12:05 am
Posts: 1337
The only thing I will say after a few more days of thinking on this, you are using the $_POST directly in your code and worse, just appending it unchecked to the SQL string which can lead to SQL injection attacks.

If you check through the code, you'll find how the rest of the system pulls in those fields, so I would recommend using those. For cacti 1.1.30 for example, the routine is get_nfilter_request_var() if I remember rightly. There are also sanitize routines too.

_________________
Cacti Resources:
Cacti Website
Cacti Issues
Cacti Releases

My resources:
How to submit Pull Requests
Development Wiki and How To's
Updated NetSNMP Memory template for Cacti 1.x
Cisco SFP template for Cacti 0.8.8


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Sat Jan 13, 2018 5:30 am 
Offline
Cacti Guru User

Joined: Sun Aug 27, 2017 12:05 am
Posts: 1337
This does appear to have been already changed in the latest version of plugins_thold on GitHub:
Code:
   $rrdsql = db_fetch_row_prepared('SELECT id, data_template_id
      FROM data_template_rrd
      WHERE local_data_id = ?
      ORDER BY id',
      array($save['local_data_id']));
   $rrdlookup = $rrdsql['id'];
   $grapharr = db_fetch_row_prepared('SELECT local_graph_id, graph_template_id
      FROM graph_templates_item
      WHERE task_item_id = ?
      AND local_graph_id <> ""
      LIMIT 1',
      array($rrdlookup));


Not quite the same as your fix, and without your data, i'm not sure whether that means there's still an issue in the current version.

_________________
Cacti Resources:
Cacti Website
Cacti Issues
Cacti Releases

My resources:
How to submit Pull Requests
Development Wiki and How To's
Updated NetSNMP Memory template for Cacti 1.x
Cisco SFP template for Cacti 0.8.8


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Sat Jan 13, 2018 6:57 am 
Offline

Joined: Wed Jan 03, 2018 4:35 pm
Posts: 3
Hi netniV,
thank you for your replies.
I like to say that I'm not a great specialist in php and I do not know if the latest version of thold will work correctly.

Thold 0.5 will not work for me without the solution described before.

The problem I had found:
Without the solution the process is searching for local_data_id in data_template_rrd only.
In my case the search for local_data_id will result in more than one result.
As an example:
mysql> SELECT id, data_template_id, data_source_name FROM data_template_rrd WHERE local_data_id=10 ORDER BY id;
+------+------------------+---------------------+
| id | data_template_id | data_source_name |
+------+------------------+---------------------+
| 1962 | 71 | AAA |
| 1963 | 71 | BBB |
| 1964 | 71 | CCC |
| 1965 | 71 | DDD |
| 1966 | 71 | EEE |
| 1967 | 71 | FFF |
+------+------------------+---------------------+
6 rows in set (0.00 sec)

Without the changement I did the result was always
id=1962
data_template_id=71
The result, at least: local_graph_id=0
https://x.x.x.x/graph.php?local_graph_id=0&rra_id=all

This search would give you a fine result if you like to define a thold for data_source_name "AAA"
But I wanted to define thresholds for data_source_name "FFF".


My changement is only to inlude the data_source_name into the search:
mysql> SELECT id, data_template_id, data_source_name FROM data_template_rrd WHERE local_data_id=10 and trim(data_source_name)="FFF" ORDER BY id;
+------+------------------+------------------+
| id | data_template_id |data_source_name |
+------+------------------+------------------+
| 1967 | 71 | FFF |
+------+------------------+------------------+
1 row in set (0.00 sec)


Regarding the current version of thold:
If the search will work in the current version of thold I would say thats fine. But I can not verify it at the moment.

By the way: I used $_POST['data_template_rrd_id'] because it was used in the original script some lines before.
I thought it should be secure enough to use this twice. But I agree that the solution could be better / more secure :-)

netniV, thank you very much for your postings :-)
Have a nice weekend :-)


Top
 Profile  
 
 Post subject: Re: Thold BUG 0.4.1 with View Graph
PostPosted: Sat Jan 13, 2018 8:59 am 
Offline
Cacti Guru User

Joined: Sun Aug 27, 2017 12:05 am
Posts: 1337
I would stick with the version you have as that is compatible with 0.8.8, the latest thold would require a minimum of 1.0.4.

Thanks for the fuller explanation.

_________________
Cacti Resources:
Cacti Website
Cacti Issues
Cacti Releases

My resources:
How to submit Pull Requests
Development Wiki and How To's
Updated NetSNMP Memory template for Cacti 1.x
Cisco SFP template for Cacti 0.8.8


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: Google [Bot] and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Protected by Anti-Spam ACP Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group