Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
None
-
AIX Storage Subsystem
Description
Although AIX does return storage data in the Host Resources MIB, it is not particularly useful due to the portion of AIX's LVM that is returned in the Host Resource Storage (Logical Volume focused instead of Filesystem focused). As a result, I would like to work on one or more storage submodules (modeled after the existing hrstorage submodule) that are able to return more useful data about the AIX LVM status (physical volume usage, volume group usage, logical volume usage, and filesystem usage). I have already started working on this and have made a decent amount of headway with capturing the LVM data returned by AIX's IBM-AIX-MIB.
I have two concerns with how the storage model currently works and would like to bounce some ideas off of you on how to approach it. First, the data returned by the AIX MIBs is significantly more comprehensive than what it returns in the Host Resources. As a result, I would like to disable the hrstorage storage submodule completely for my AIX systems (which will always return useful LVM data in the AIX MIBs). I'm thinking an OS config element which, if it exists, disables the specified storage submodule. If the config element does not exist, no storage submodules would be ignored. In order to do this, you would probably need a new version of include-dir.inc.php or an alternate that allows the specification of an array of "ignore" modules.
Ex. (forgive my rudimentary PHP knowledge)
(includes/definitions.inc.php)
...
$config['os'][$os]['storage']['ignore'] = array("hrstorage");
...
(includes/discovery/storage.inc.php)
...
$include_dir = "includes/discovery/storage";
$include_ignores = $config['os'][$device['os']]['storage']['ignore'];
include("includes/include-dir.inc.php");
...
(includes/include-dir.inc.php)
...
if(!in_array($file, $include_ignores))
{
... //perform the include
My second concern is that the storage module creates a single aggregate graph for all of the storage submodules' data. I think it would be useful to have the storage submodule create a graph per storage submodule that is discovered for a device. With respect to the device overview, perhaps an aggregate is used for the device banner at the top and then the individual graphs in the storage section on the right are just grouped by submodule. Alternatively/Additionally, it would maybe be nice to have a separate storage submodule tab underneath the Device Health -> Disk Usage tab in addition to the aggregate.
I have not yet delved into the UI code in Observium, so I don't have a good feel for how difficult it would be to do some of UI work. I am confident that I could create a storage submodule patch that ignores the module on an os basis, but I wanted to open the discussion with you to make sure that it would fit in with your vision before I started on that.
Ability to blacklist modules/mibs by OS was added some time ago.