Plugin Architecture for Cacti and Monitoring Module

General discussion about Plugins for Cacti

Moderators: Developers, Moderators

Post Reply
cigamit
Developer
Posts: 3363
Joined: Thu Apr 07, 2005 3:29 pm
Location: B/CS Texas
Contact:

Plugin Architecture for Cacti and Monitoring Module

Post by cigamit »

This was originally posted in the Threshold thread, but it was decided it would be best if in its own thread.

-----

Here is the beginnings of a plugin architecture for Cacti. This is basically the same plugin backend we currently use in Squirrelmail (GPL Licensed!). It makes for an excellent way to hook into almost any area of the code, just by adding a simple function call. I threw this together the other night, and it seems to work without any problems. Eventually we would want to add a ton more hooks, but the functionality is the same.

There are a few things that were taken for granted before, but can't be now. We can't be sure that the current displayed page will always be in the root of the Cacti folder, so we have to add an extra variable to the config.php for this, and modify the header images to use it, instead of just blindly saying "images/picture.gif". You basically just specifiy the root url path to cacti, like "/cacti/". We also add a $plugins variable to list the name (IE folder name) of the plugins we want to load. We could have them auto-load, but that would be a security hole waiting to happen.

The current patch is against plain v0.8.6f, without the threshold module instatlled. The patches are only 22K, so its very unintrusive.

-----

Just as a proof of concept, I have completely modified my Monitoring module to use this architecture. You can see that I easily added to the Host editting form, saving forms, permissions, and even a tab up top. Much more can be done, and I am sure will be done in the future. This plugin itself will add a Column to your Host table called "monitor" but other than that, it doesn't change a single thing.

As with anytime you are testing something new, BESURE TO BACKUP FIRST!!!! (Database and files!)

-----

Instructions are simple, apply the patch by unzipping it and then copying the diff file to your cacti directory. While you are in your cacti directory, run this command
patch -p1 -N < cacti-plugin-arch.diff

You can also use the included already patched files, by just overriding your current files (you will have to reset up your database info in config.php)

Next extract the contents of the plugin into a folder called "monitor" in the plugins folder. Edit your patched include/config.php and uncomment the $plugins[] = 'monitor'; and also set the $config['url_path'].

Thats it!

(These patches contain a few fixes that were not in patches in the other thread, please let me know if you have any issues.

You can get the Patch here
Plugin Architecture Patch
Or the Plugins here
Cacti Plugins

---
(Edit: Updated this thread with the current information)
Attachments
Picture of the Monitoring Plugin in action
Picture of the Monitoring Plugin in action
monitoring.jpg (145.26 KiB) Viewed 68781 times
Last edited by cigamit on Mon Aug 01, 2005 10:42 pm, edited 2 times in total.
cigamit
Developer
Posts: 3363
Joined: Thu Apr 07, 2005 3:29 pm
Location: B/CS Texas
Contact:

Threshold Plugin

Post by cigamit »

(Edit - Updated this with current data)

I have now converted the Threshold (Thold) Module to the plugin format. You can get it here

Threshold Plugin
Last edited by cigamit on Mon Aug 01, 2005 10:32 pm, edited 2 times in total.
cigamit
Developer
Posts: 3363
Joined: Thu Apr 07, 2005 3:29 pm
Location: B/CS Texas
Contact:

Monitoring Plugin for Cacti

Post by cigamit »

For those wondering what the Monitor Plugin actually does, this is from my post in the other thread.

The "Monitor" tab was developed to replace What's Up Gold, which displays all the Hosts you want to monitor (Simple checkbox on the device to disable monitoring). Up devices are green, Down are red, and Recovering are Blue. It throws an Audiable alert when a host is down, you are able to silence the alert, and it uses a little AI to tell when to re-enable the alert automatically. This allows our 24 hour staff to be alerted when a host goes down, and a quick glance at the screen shows which hosts are down.


Not included in this plugin is a faster version of poller.php that just checks for host up/down status and updates the database. I took the poller, and cmd.php and ripped out alot of stuff to where you can run every minute (if you normally only poll every 5). The fast poller only checks to see if the host is up, and updates the database with the info. The fast poller don't interfer with the normal poller as it runs side by side (its not a replacement) with this, you can set the Monitor window to refresh itself every 30 seconds (instead of the current 5 minutes, so to not miss something). If anyone wants this, just let me know and I will zip it up.
mgb
Cacti User
Posts: 124
Joined: Mon Jun 21, 2004 4:06 am
Location: North of the Netherlands

Post by mgb »

@cigamit

I've installed the plugin and everything looks ok but for some reason I'm not autherized for the page. I'm logged in as admin so I should be able to view that page. Any info?

Michael
cigamit
Developer
Posts: 3363
Joined: Thu Apr 07, 2005 3:29 pm
Location: B/CS Texas
Contact:

Post by cigamit »

mgb wrote:@cigamit

I've installed the plugin and everything looks ok but for some reason I'm not autherized for the page. I'm logged in as admin so I should be able to view that page. Any info?

Michael
Did you goto the User Panel and add permissions for yourself?
john le lardon
Cacti User
Posts: 52
Joined: Fri May 06, 2005 7:39 am
Location: france
Contact:

Post by john le lardon »

when i'm in monitor page i don't see tabs pics , it's a bug?
cigamit
Developer
Posts: 3363
Joined: Thu Apr 07, 2005 3:29 pm
Location: B/CS Texas
Contact:

Post by cigamit »

john le lardon wrote:when i'm in monitor page i don't see tabs pics , it's a bug?
Did you edit your include/config.php and set the $config['url_path'] to point to the proper URL for your cacti install?

Do you have thresholds installed? And if so did you use the thresholds patch instead of the other?
john le lardon
Cacti User
Posts: 52
Joined: Fri May 06, 2005 7:39 am
Location: france
Contact:

Post by john le lardon »

I edit my config.php and change URL by "http://<myipserver>/cacti/" it's the url i use for seeing my cacti server .
i use therhold apply before plugin patch and monitor apply after plungin patch.

when i try to go to graph ot thold tab i have error .
cacti search on /cacti/plugins/mointor graph_view.php and graph_thold.php
any idea ?
Attachments
my problem with monitor
my problem with monitor
probmonitor.png (12.53 KiB) Viewed 68464 times
Last edited by john le lardon on Fri May 27, 2005 7:04 am, edited 2 times in total.
mgb
Cacti User
Posts: 124
Joined: Mon Jun 21, 2004 4:06 am
Location: North of the Netherlands

Post by mgb »

@cigamit

This is the repsons from my patching

patch -p1 -N < cacti-plugin-arch.diff
patching file include/config_arrays.php
Hunk #1 FAILED at 433.
1 out of 1 hunk FAILED -- saving rejects to file include/config_arrays.php.rej
patching file include/config_form.php
patching file include/config.php
Hunk #1 succeeded at 31 with fuzz 2.
patching file include/config_settings.php
Hunk #1 succeeded at 801 (offset 17 lines).
patching file include/plugins.php
patching file include/top_graph_header.php
Hunk #1 succeeded at 92 with fuzz 1 (offset 2 lines).
Hunk #3 succeeded at 125 (offset 2 lines).
Hunk #5 succeeded at 145 (offset 2 lines).
patching file include/top_header.php
patching file lib/api_device.php
patching file lib/functions.php
patching file plugins/index.php

in config_arrays.php.rej the following text could be found


***************
*** 433,436 ****
GDC_SLASH => "/"
);

- ?>
--- 433,438 ----
GDC_SLASH => "/"
);

+ do_hook("config_arrays");
+
+ ?>


When I add the line by hand to that file cacti is not working. I did not see any file. When I leave config_arrays as is (without the patch applied by hand) I get a fourth button (monitor) but when i click on that button i receive the message:

Access Denied
You are not permitted to access this section of Cacti. If you feel that you need access to this particular section, please contact the Cacti administrator.

When i remove the authentication part of that page i get the following reply:

No Database Selected

any thoughts?

I work with thold2.1a

Michael





:(
john le lardon
Cacti User
Posts: 52
Joined: Fri May 06, 2005 7:39 am
Location: france
Contact:

Post by john le lardon »

for :
Access Denied
You are not permitted to access this section of Cacti. If you feel that you need access to this particular section, please contact the Cacti administrator.
try console / User Management / <user_who_can_monitor> / see Realm Permissions (bottom of page ) check "View Monitoring "

for the patch do you have thold ? because if thold install use patch cacti-plugin-arch-thold.zip
Attachments
add monitoring right
add monitoring right
monitor.png (70.37 KiB) Viewed 68468 times
Last edited by john le lardon on Fri May 27, 2005 6:55 am, edited 1 time in total.
mgb
Cacti User
Posts: 124
Joined: Mon Jun 21, 2004 4:06 am
Location: North of the Netherlands

Post by mgb »

@john le lardon

I do not have that option you described. It looks like the database needs some adjustment but i'm not sure how.

Michael
john le lardon
Cacti User
Posts: 52
Joined: Fri May 06, 2005 7:39 am
Location: france
Contact:

Post by john le lardon »

how u have install monitor? by plugins ? instalation is juste a unziping files .
cigamit
Developer
Posts: 3363
Joined: Thu Apr 07, 2005 3:29 pm
Location: B/CS Texas
Contact:

Post by cigamit »

mgb wrote:@cigamit

This is the repsons from my patching

patch -p1 -N < cacti-plugin-arch.diff

<snip>

I work with thold2.1a
You applied the non-thold patch to a thold installation. Restore the files patched from backup, and then apply the patch I provided for people that use thold. That should do the trick.
cigamit
Developer
Posts: 3363
Joined: Thu Apr 07, 2005 3:29 pm
Location: B/CS Texas
Contact:

Post by cigamit »

john le lardon wrote:I edit my config.php and change URL by "http://<myipserver>/cacti/" it's the url i use for seeing my cacti server .
i use therhold apply before plugin patch and monitor apply after plungin patch.

when i try to go to graph ot thold tab i have error .
cacti search on /cacti/plugins/mointor graph_view.php and graph_thold.php
any idea ?
When you were patching, did it happen to fail while applying the patches to top_header.php and top_graph_header.php?

Try these attached versions. They have both the thold patches, and the plugin patches applied.

Maybe I should include full versions of all the files for people who are having issues trying to patch.
Attachments
top_headers.zip
Drop in replacement for includes/top_headers.php and includes/top_graph_headers.php if you have thold installed.
(4.65 KiB) Downloaded 1278 times
mgb
Cacti User
Posts: 124
Joined: Mon Jun 21, 2004 4:06 am
Location: North of the Netherlands

Post by mgb »

@cigamit

I'm pretty sure I used your Thold patch. Don't know what went wrong. Is it possible to post all the patched files complete? Cacti 0.8.6d + Thold 2.1a

That would be great.

Michael
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests