Commit Graph

1678 Commits

Author SHA1 Message Date
Eric Lippmann 28e68f8f8a Fix group base 2018-07-18 15:50:37 +02:00
Eric Lippmann c3d25e1a59 Use subquery filters for service groups if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 61d325fa8a Use subquery filters for host groups if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann a3ec0df7c5 Use subquery filters for service flapping history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann c4de14eb05 Use subquery filters for host flapping history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 1d4ee7824a Use subquery filters for service comment history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 2ee0f99ed1 Use subquery filters for host comment history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann df7b5d663a Use subquery filters for service downtime history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 0ca97d191f Use subquery filters for host downtime history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 81b6b0129b Use subquery filters for service state history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann bdb73ec06e Use subquery filters for host state history if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 27f4fe82cd Use subquery filters for service notifications if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 84c6055a17 Use subquery filters for service comments if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann a84cc40aa8 Use subquery filters for host notifications if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann db50d40068 Use subquery filters for host comments if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 271a1d72f1 Use subquery filters for contact groups if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann f7f02bdc8f Use subquery filters for service downtimes if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Eric Lippmann 9f7b9edffe Use subquery filters for host downtimes if appropriate
refs #2934
2018-07-18 15:50:37 +02:00
Johannes Meyer 186ef5a5a7 Use subquery filters for services if appropriate
refs #2934

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2018-07-18 15:50:37 +02:00
Johannes Meyer 824fa870a2 Use subquery filters for hosts if appropriate
refs #2934

(EL): Alternative service group subquery filter:

```php
$this->joinVirtualTable('services');
$query->joinVirtualTable('members');
return ['sgm.service_object_id', 'so.object_id'];
```

But I think the committed solution is better.

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2018-07-18 15:50:37 +02:00
Eric Lippmann 4b80b3e7ee IdoQuery: Support & and != for subquery filters
refs #2934
2018-07-18 15:50:37 +02:00
Johannes Meyer 5c8cf64658 IdoQuery: Use subqueries to filter linked objects
refs #2934

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2018-07-18 15:50:37 +02:00
Alexander A. Klimov 0b5620d2b5 Fetch check_interval property of monitored objects, too 2018-07-18 15:42:34 +02:00
Eric Lippmann d5d336884c Fix grouping in the new contact queries
refs #3088
2018-07-18 15:20:23 +02:00
Johannes Meyer 5befab6a2b ContactQuery: Don't use a UNION query if not necessary
Speeds up the db's response time significantly in huge
environments.

refs #3088

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2018-07-18 15:20:23 +02:00
Johannes Meyer 2fbbf3da58 DataView\Contact: Make `instance_name` a static filter column
It's not queryable by its accompaniying query.

refs #3088
2018-07-18 15:20:23 +02:00
Eric Lippmann e684c6d18e Split contact query into subqueries
One can't fetch host and service contacts with a reasonable single
query.

refs #3088
2018-07-18 15:20:23 +02:00
Eric Lippmann 658cc72141
Merge pull request #3502 from Icinga/feature/plugin-output-hook
Introduce monitoring/PluginOutputHook
2018-07-18 14:18:27 +02:00
Matthias 4c9dac5fb8 Display all Grapher hooks not just the first one
refs #3473

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2018-07-18 13:49:32 +02:00
Eric Lippmann becd7d0504 Introduce monitoring/PluginOutputHook
refs #3257
2018-07-16 14:19:28 +02:00
Marian Rainer-Harbach 5e40405a12 Allow disabling MySQL server certificate validation by setting ssl_do_not_verify_server_cert
Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2018-07-16 11:41:13 +02:00
Eric Lippmann b88c6b0a6e
Merge pull request #3516 from Icinga/feature/application-state-hook
Application state hook
2018-07-10 09:14:26 +02:00
Eric Lippmann 45468b7a8e Introduce app state for the monitoring module
refs #2835
2018-07-09 16:28:28 +02:00
Eric Lippmann ea722484b0 Introduce 'problems' columns for CLI usage
refs #3512
2018-07-09 16:10:07 +02:00
Eric Lippmann 74d1c78465 Respect persistent when acknowledging over API
refs #3467
2018-06-27 09:47:08 +02:00
Alexander A. Klimov 906c1668a4 Split Json::encode() into Json::encode() and Json::sanitize()
refs #2635
2018-06-21 16:01:53 +02:00
Alexander A. Klimov 02b60633ff Auto-sanitize only in the monitoring module
refs #2635
2018-06-20 18:05:12 +02:00
Alexander A. Klimov 1a94a21263 Prefer Json::encode() over json_encode()
refs #2635
2018-06-20 18:05:11 +02:00
Eric Lippmann ca895fd5e9
Merge pull request #3451 from Icinga/feature/interpret-performance-data-threshold-ranges-8194
Interpret performance data threshold ranges
2018-05-08 02:56:36 -04:00
Eric Lippmann e74b1fc5eb
Merge pull request #3440 from Icinga/feature/secure-detailviewextensionhook-gethtmlforobject-3393
Secure DetailviewExtensionHook::getHtmlForObject()
2018-05-07 04:19:32 -04:00
Alexander A. Klimov 259bafea35 Perfdata::format(): handle ThresholdRanges
refs #8194
2018-05-03 15:12:42 +02:00
Alexander A. Klimov 392231dc81 Perfdata: return ThresholdRange from getWarningThreshold() and getCriticalThreshold()
refs #8194
2018-05-03 15:11:52 +02:00
Alexander A. Klimov bc5d3b64c4 ThresholdRange::fromString(): compare non-strictly
refs #8194
2018-05-03 15:11:52 +02:00
Alexander A. Klimov 81601e6303 ThresholdRange::fromString(): drop default
refs #8194
2018-05-03 15:11:52 +02:00
Alexander A. Klimov b706792c9b Preserve threshold ranges in ThresholdRange, not in Perfdata
refs #8194
2018-05-03 15:11:52 +02:00
Alexander A. Klimov 881267d829 ThresholdRange::fromString(): default to -∞:∞
refs #8194
2018-05-03 15:11:52 +02:00
Alexander A. Klimov 54002cb3e5 Perfdata: print warn and crit human-readable if the start is -∞
refs #8194
2018-05-03 15:11:52 +02:00
Alexander A. Klimov 2270e250d3 Perfdata: use ThresholdRange
refs #8194
2018-05-03 15:10:31 +02:00
Alexander A. Klimov cdb1db89e2 ThresholdRange: trim(floatval()) -> floatval(trim())
refs #8194
2018-05-03 15:00:48 +02:00
Alexander A. Klimov 7865db9053 Perfdata: simplify code design
refs #8194
2018-05-03 15:00:48 +02:00
Alexander A. Klimov e006902254 ThresholdRange::setInverted(): default to true
refs #8194
2018-05-03 15:00:48 +02:00
Alexander A. Klimov 7273959007 ThresholdRange: reword doc
refs #8194
2018-05-03 15:00:48 +02:00
Alexander A. Klimov 746eb07862 ThresholdRange: use substr() instead of strpos() where more performant
refs #8194
2018-05-03 15:00:48 +02:00
Alexander A. Klimov ddde4b447c ThresholdRange: trim() raw ranges
refs #8194
2018-05-03 15:00:48 +02:00
Alexander A. Klimov 5df6eeaeaf Implement ThresholdRange
refs #8194
2018-05-03 15:00:48 +02:00
Johannes Meyer 4ec783b75e IdoQuery: Use a dynamic collation when joining custom variables
refs #2508
2018-04-27 15:33:42 +02:00
Alexander A. Klimov 2da7ef0eb2 Secure DetailviewExtensionHook::getHtmlForObject()
refs #3393
2018-04-27 12:55:17 +02:00
Johannes Meyer 1c29b03b84 Revert "Merge pull request #3413 from Icinga/bugfix/filter-contacts-assigned-to-services-3088"
This reverts commit 33247237af, reversing
changes made to 37aeb83cd9.

refs #3436
2018-04-27 10:13:58 +02:00
Alexander A. Klimov bbca113adc IDO: treat contacts of services of hosts as direct contacts of the hosts
refs #3088
2018-04-06 15:16:36 +02:00
Alexander A. Klimov 4995df8336 Make host and service groups sortable by the members' severities
refs #3395
2018-04-04 10:05:27 +02:00
Michael Friedrich 6f9e046220 Send the correct 'force' attribute for 'check now' to the Icinga 2 API transport
refs icinga/icinga2#6140
2018-03-02 14:54:29 +01:00
Alexander A. Klimov c717ebeb94 Make Plugin class loadable 2018-01-24 10:21:37 +01:00
Johannes Meyer 42b685d336 Introduce class Icinga\Module\Monitoring\Web\Helper\PluginOutputPurifier 2018-01-19 16:16:35 +01:00
Johannes Meyer b07e4b409f EventHistory: Drop obsolete SUM aggregates
Not used anywhere and not working for a long time already,
at least as filter columns.

refs #2860
2018-01-17 12:41:10 +01:00
lippserd 6abb91421a
Merge pull request #3220 from Icinga/fix/filter-by-custom-variables
Fix filter by host custom variables
2018-01-11 11:40:22 +01:00
Alexander A. Klimov 196cdbe4af Implement event history detail view
refs #3191
2018-01-09 13:04:06 +01:00
Eric Lippmann 93ec798c6b Ido: Map h.host_object_id to s.host_object_id in the ServicegroupQuery
This is required to make filters work which filter by host custom variables without using any host related table.
2017-12-18 10:35:16 +01:00
Eric Lippmann b1f7923711 Ido: Allow custom variables to be mapped
If you filter by host custom variables and the query does not have the services table joined,
our query implementation calls the joinHosts method. Then, the column for the JOIN ON condition is
automatically set to h.host_object_id.
But it may be required by the query to call joinServices and use s.host_object_id instead of
h.host_object_id because the query does not use any host related table at all.

This is now possible when h.host_object_id is mapped to s.host_object_id:

class ServicesRelatedQuery
{
    protected $columnMap = array(
        'hosts' => array(
            'h.host_object_id' => 's.host_object_id'
        )
    );

    protected function joinHosts()
    {
        $this->requireVirtualTable('services');
    }
}
2017-12-18 10:23:45 +01:00
lippserd a5bf9e0175
Merge pull request #3029 from Icinga/bugfix/empty-host-and-service-groups-not-shown-2796
Bugfix/empty host and service groups not shown 2796
2017-11-27 14:24:11 +01:00
Eric Lippmann ca803e8f05 Fix monitoring health badge if programstatus has never been set 2017-11-22 11:12:24 +01:00
Johannes Meyer e4fd8d5124 Setup: Only allow to validate the API transport configuration
refs #3101
2017-11-21 13:48:29 +01:00
Markus Frosch 22c6bf75e7 Setup: Fix that the API transport validation does not work
refs #3101
2017-11-21 13:48:17 +01:00
Eric Lippmann d11519ac49 pogsql: Group by custom variables when querying them
Custom variables added via the URL parameters addColumns or sort must be added to the GROUP BY list when using PostgreSQL.

Credits to @nbuchwitz who came up with the initial fix for this.

refs #1873
2017-11-16 09:20:22 +01:00
Klaus Jrgensen fa9b2981d7 Fix PHP fatal error on monitoring/health/info when asking for JSON
Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2017-11-10 11:16:33 +01:00
Johannes Meyer 23066d2cc4 ServicegroupQuery: Use left joins instead of inner joins
refs #2796
2017-11-09 09:42:46 +01:00
Johannes Meyer 4ef085bdcd HostgroupQuery: Use left joins instead of inner joins
refs #2796
2017-11-09 09:42:46 +01:00
Eric Lippmann 121fdaadb0 Allow to search for host and servicegroups by their case insensitive names too
refs #2971
2017-11-08 15:40:43 +01:00
Eric Lippmann f4ce2a5d82 Fix code style issues 2017-11-08 11:29:33 +01:00
Eric Lippmann 73a6750489 Make phpcs and PhpStorm happy w/ intentional switch, case fall-throughs
Unfortunately, PhpStorm does not regonise PSR2 fall-through comments.
On the other hand, phpcs does not support the @noinspection phpdoc comment (/**).
The fix is a mix of PSR2 comments and @noinspection tags in code comments.
2017-11-08 10:25:28 +01:00
Markus Frosch c3ef50978a style: Fix minor styleguide issues for PHPCS 2017-11-08 10:06:45 +01:00
Johannes Meyer 37aeff7791 Respect limits and sort orders for format requests
fixes #2967
2017-10-23 15:49:12 +02:00
Mikesch-mp c17c1b876c Export JSON with .json extension
Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2017-10-18 13:47:08 +02:00
lippserd 91948a5a37 Merge pull request #2983 from Mikesch-mp/csv-export
Export CSV files with .csv extension
2017-10-18 13:21:59 +02:00
Mikesch-mp d76a18dd91 Export CSV files with .csv extension
refs #2808

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2017-10-18 13:21:19 +02:00
Eric Lippmann 8de0b80f9e Fix contact group member count
fixes #2837
2017-10-05 14:35:15 +02:00
Michael Friedrich ab364e0fc7 Remove unsupported livestatus functionality
Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2017-09-29 10:33:55 +02:00
lippserd 624fab8194 Merge pull request #2960 from Icinga/bugfix/host-severity-order-2926
Adjust host severity
2017-09-25 17:11:36 +02:00
Jennifer Mourek 0b30fbd15d Adjust host severity
refs #2926

Signed-off-by: Eric Lippmann <eric.lippmann@icinga.com>
2017-09-25 17:03:33 +02:00
Alexander A. Klimov 467fc79095 Style monitored objects' detailview extensions as expected
refs #2949
2017-09-20 14:49:14 +02:00
Alexander A. Klimov c2ee3bef06 DetailviewExtensionHook: provide the concrete implementation's module
refs #2949
2017-09-20 14:49:08 +02:00
Michael Friedrich 2c312adf94 API Commands: Only send acknowledgement expire time if not null
Icinga 2 v2.7.0 is more strict with the `expiry` attribute if sent
(cannot be null, or in the past).

While acknowledgments with expire time worked well (and do so with this patch),
the command renderer did not check whether the value is actually not null
before setting it into the data form. The boolean value from the checkbox is
not available in the command renderer unfortunately.

@lippserd: Verified working with and without expire time inside the Vagrant boxes.

fixes #2911
2017-08-08 12:53:39 +02:00
Eric Lippmann adc2f90f74 Show DOWN hosts before UNREACHABLE when sorting by host_severity
refs #2034
2017-07-27 16:08:29 +02:00
Eric Lippmann 7c88ee70d2 Remove sort rules from Programstatus
Sort is not necessary here.
2017-07-27 15:03:12 +02:00
Eric Lippmann 1621755103 Don't call UNIX_TIMESTAMP when sorting by host_severity 2017-07-27 15:03:12 +02:00
Eric Lippmann 9b7a155db2 Don't call UNIX_TIMESTAMP when sorting by service_severity 2017-07-27 15:03:12 +02:00
Eric Lippmann 8a6240fe02 Reduce service_severity order by columns
Ordering by host and service display_name too here reduces performance and is not necessary.
2017-07-27 15:03:12 +02:00
Eric Lippmann c5f2fc5aa5 Reduce service_display_names order by columns
Ordering by host_display_name too here reduces performance as it forces MySQL to use a temp table.
2017-07-27 15:03:12 +02:00
Eric Lippmann ee429f54d0 Reduce host_severity order by columns
Ordering by host_display_name too here reduces performance and is not necessary.
2017-07-27 15:03:12 +02:00
Eric Lippmann e7776d08a9 Don't call UNIX_TIMESTAMP when sorting by host_last_state_change
Else possible indices can't be used.
2017-07-27 15:03:12 +02:00
Eric Lippmann 3a1afb3511 Don't call UNIX_TIMESTAMP when sorting by service_last_state_change
Else possible indices can't be used.
2017-07-27 15:03:12 +02:00