ID: 5492
Title: Prefer local/lib over lib in the PYTHONPATH
Component: Other Components
Level: 1
Class: Bug fix
Version: 1.5.0i3
Locally installed Python packages under $OMD_ROOT/local/lib/python
will now be prefered over shipped packages in $OMD_ROOT/lib/python.
ID: 5356
Title: emcvnx_info,emcvnx_agent: move information from emcvnx_info into subchecks and a agent check
Component: Checks & agents
Level: 1
Class: New feature
Version: 1.5.0i1
This werk moves information from the existing emcvnx_info check into new subchecks
for configuration settings, IO statistics, management port information, and storage
processor information. Additionally, the check emcvnx_agent is added. It contains
information about the devices that the destination Unisphere agent controls.
This information was included in in emcvnx_info as well.
Furthermore the info check now returns {CRIT} if the System Fault LED is on, the
management port subcheck returns {CRIT} if the link is down, and the IO check
returns {CRIT} if there are any hard errors.
To use these new checks a service rediscovery on the affected hosts will be
necessary.
ID: 5654
Title: Fixed XSS on the site management page
Component: Multisite
Level: 1
Class: Security fix
Version: 1.5.0i3
When using the WATO configuration it was possible to create a site on
the distributed monitoring page which uses with javascript code in
it's alias. When this site was later displayed in the site tables, the
javascript code could be executed in the browsers context of the user
viewing the table.
The insertion of the javascript code is only possible for authenticated
users with the permission to configure Check_MK sites.
ID: 5556
Title: check_bi_aggr: Active Check for BI is now able to use the password store
Component: Checks & agents
Level: 2
Class: New feature
Version: 1.5.0i3
ID: 5605
Title: HW/SW Inventory: Status data can be integrated into HW/SW Inventory tree
Component: HW/SW Inventory
Level: 1
Class: New feature
Version: 1.5.0i3
The HW/SW Inventory system collects static information about hardware and
software of hosts which is displayed in the GUI as a tree below 'Inventory'
of each host which has installed the mk_inventory plugin and enabled the
rule 'Do hardware/software inventory'.
If any data changes the HW/SW Inventory system detects that and calculates
the differences which can be viewed below 'Inventory history'.
Now status data like free space of tablespace can be intergated into the
HW/SW Inventory tree. These kind of data may change after every check cycle
thus we do not calculate any differences as for the static inventory data
in order to avoid filling up inventory archive and therefore slowing down
the monitoring system.
We solve above problem by separating these two kind of data within the
inventory plugins.
- There's one tree which is filled up with inventory data and will be saved
to var/check_mk/inventory as before.
- A second tree for the status data will be created and saved to
tmp/check_mk/structured_data
Later in the web GUI both tree objects are merged and visible below 'Inventory'.
Inventory history is only calculated for the inventory data, not for the
status data.
In order to use this feature you have to enable the rule
'Do status data inventory' for a host. When it's enabled Check_MK does a
HW/Sw inventory for this host after every check cycle if and only if there's
a inventory plugin which fills up status data tree.
Notes for inventory plugin development:
Previously an inventory plugin used the functions inv_tree_list and inv_tree
for filling up the inventory tree, eg.
C+:
def inv_oracle_tablespaces(info):
node = inf_tree_list("software.applications.oracle.tablespaces:")
C-:
This behaviour will be still supported, but it's recommended to use the
new API, escpecially for new inventory plugins.
In order to use this new feature the inventory plugin takes the optional
arguments 'inventory_tree' or 'status_data_tree', eg.
C+:
def inv_oracle_tablespaces(info, inventory_tree, status_data_tree):
C-:
There are two methods for these tree objects 'get_dict' and 'get_list' which
take a path as argument. This path defines where the data should be stored, eg.
C+:
path = "software.applications.oracle.tablespaces:"
inv_node = inventory_tree.get_list(path)
status_node = status_data_tree.get_list(path)
C-:
Especially if lists are filled up with inventory and status data, there must
be a so-called identifier in the entries of these lists in order to link the
related elements, eg.:
C+:
for sid, data in tablespaces:
inv_node.append({"sid": sid, "INV-KEY": data[INV-DATA]})
status_node.append({"sid": sid, "STATUS-KEY": data[STATUS-DATA]})
C-:
Both nodes, 'inv_node' and 'status_node', use 'sid' as an identifier. Thereby
Check_MK knows which entries of both lists belong together.
If one identifier is not sufficient you can add more, eg.:
C+:
for sid, data in tablespaces:
inv_node.append({"sid": sid, "name" : name, "INV-KEY": data[INV-DATA]})
status_node.append({"sid": sid, "name": name, "STATUS-KEY": data[STATUS-DATA]})
C-:
Now Check_MK uses 'sid' and 'name' as identifier. These identifier have to exist in
all entries of both lists. Otherwise there's no possibility to link these entries.
To make Check_MK know which inventory plugins calculate status data an
additional attribute 'has_status_data' must be added which has the
value 'True'.
C+:
inv_info['oracle_tablespaces'] = {
"inv_function": inv_oracle_tablespaces,
"has_status_data": True,
}
C-:
ID: 5653
Title: New report element: Add host report for multiple hosts
Component: Reporting & Availability
Level: 2
Class: New feature
Version: 1.5.0i3
Using the new report element "Host report for multiple hosts" it is now
possible to include reports in other reports to instanciate it multiple
times.
For example you can now create a top-level "ESX host" report that
contains sub reports for each of your ESX servers.
All you need to do is to create a report that contains all the report elements
you want to see for a single ESX server. Either the whole report or at least
the single elements in that report need to have the "single host context"
configured. Then you need to create a top level report, add the element
"Host report for multiple hosts" to this report and select the previously
configured host specific report as child report. In that element you also
need to configure the "Search filters" to match the hosts you want to create
the child elements for. In the example above you need to configure e.g. the
host tag filter to select the ESX hosts.
ID: 5698
Title: Windows agent: space in MRPE plugin path resulted in wrong plugin name
Component: Checks & agents
Level: 1
Class: Bug fix
Version: 1.5.0i3
If the path of a(n included) MRPE plugin contained one or more spaces,
the plugin name was parsed incorrectly. Quotes were incorrectly
required for the whole command line including parameters within quotes,
making it impossible to distinguish between a script path containing
space(s) and space-separated script parameters. Now the MRPE plugin
path must be enclosed in double quotes (") in order to be processed
correctly. The same applies for script parameters with whitespace:
also they must be separately enclosed in quotes.
Example:
check_mk.ini:
[mrpe]
include = C:\Temp\my.cfg
C:\Temp\my.cfg:
check = Dummy "C:\Program Files (x86)\check_mk\mrpe\check_crit.bat" some parameter "with space"