Hello,

Yes I do feel that it was never the intent but I do think it is a direction we should head in since it feels more optimal to just specify that this is a checkpoint firewall for example and then all relevant services will be checked. Of course this can be done with hostgroups but not if some checkpoint firewalls are clusters and some are not then you need two different hostgroups for that and it would add a hostgroup for each feature that might differ.

if we can help these more complex plugins from within naemon I think it is something we should do.

Thanks for the register 0 on hostgroups I didn't know that.

I can't find any information on updating the custom attributes with livestatus, what is the lql syntax for that?

Best Regards
Magnus

On 2015-04-06 11:24, Sven Nierlein wrote:
Hi Magnus,

Well, plugins are meant to be small check scripts which fetch and verify some 
numbers and things. You are creating
more something like a check framework. Thats possible, but this was never meant 
to be done by plugins. However,
a few things are possible already.

1. Templates might be a solution for this problem.
2. hostgroups with "register 0" should be invisible in the gui.
3. thats totally up to your plugins.
4. creating tmp files has always been a bad idea. You could store values in 
naemon custom attributes which can be retrieved and updated via livestatus.
     The only cavehat with that, is that the custom attribute must exist 
already if you want to update it via livestatus. But since you generate your 
config
     anyway, just create it empty.

Cheers,
  Sven


On 05/04/15 13:00, Magnus wrote:
Hello,

I am very interested in what future plans you guys have for naemon. To me 
naemon is to limited in the way plugins interact with naemon.

For example a plugin should be able to tell if a service has been acknowledged. 
I use this in my plugins. Earlier i had to parse status.dat but now I use 
livestatus for that.

Also for performance reasons (both on the naemon machine and snmp/network 
utilization) when monitoring a switch with a lot of interfaces I have written a 
plugin that fetches all the interfaces that should be monitored and creates 
services for each interface by creating cfg files and restarting naemon. There 
are a few problems with this, first creating the config files and restarting 
naemon can cause problems if someone is editing the config and the config is in 
an erranous state causes naemon to die. Also if there naemon is restarted 
(which only happens when new interfaces are discovered) then the plugins output 
is not collected by the restarted naemon process (I did find a workaround for 
this by waiting for a second and then submitting the main service results as 
passive though I don't feel very comfortable with this solution yet it works). 
For this typ of usage I envision the dynamic services doesn't even need to be 
added to the configuration files at all. A plugin should
be able to create "ghost" services that are only available when the plugin 
creates them after a restart they would be gone but would appear when the main service 
check script is run again.

Perhaps creating services could be through livestatus but I think a new 
interface might be better. Using livestatus has the drawback that you have to 
know your own hostname and the service name (when checking for example if the 
service for which this script is being run has been acknowledged). An interface 
where you could query with filters like current_host and current_service for 
example would be very useful.

I think naemon should strive to have an easy configuration and having to create 
47 services when you monitor 47 different interfaces on a switch is 
unneccessary.

I have a few more idees I would like to see in naemon.

1. Hosts that inherit hostgroups custom variables.

2. Hostgroups that are not visible in the web ui (I use hostgroups to have the 
same services for several hosts (for example in a cluster) but the hostgroup 
itself has no value and only adds more hostgroups that confuse operators).

3. Since I create a lot of passive services in my plugins I think having -c and 
-w is very limited since the same plugin could have a lot of different 
thresholds for different stuff so I use different custom variables for this, 
perhaps this should be more standardized in some way.

4. Creating the files in /tmp for storing information which a lot of plugins 
use seems less then optimal for me. I think a plugin should be able to create 
read/write variables within the naemon process of course this would need to be 
limited to a certain amount per host or something so a plugin cant create a 
memory leak we are most likely talking very small amounts of data her for 
example the last interface utilization counters and such. Naemon would store 
these in its state file so they are still there after a restart.

I will involve myself in this both code and design wise but I would like for 
you guys to at least think this is a direction you think naemon should head in.

Also my c coding skills are rusty so they might need some finishing touches by 
someone more skilled. I suck at graphics and web interfaces but I could also 
help with documentation and writing plugins.

Regards
Magnus



Reply via email to