From 7268921a4ad7a903f27f6acd5d3e5c78235cd390 Mon Sep 17 00:00:00 2001 From: elong Date: Tue, 28 Jun 2016 13:55:56 -0400 Subject: [PATCH] 0002547: Notification of system event problems --- .../src/asciidoc/configuration.ad | 5 +- .../src/asciidoc/configuration/monitors.ad | 47 ++++++++++++++++++ .../asciidoc/configuration/notifications.ad | 40 +++++++++++++++ .../images/manage/manage-monitors.png | Bin 0 -> 63651 bytes symmetric-assemble/src/asciidoc/manage.ad | 2 + .../src/asciidoc/manage/monitors.ad | 28 +++++++++++ 6 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 symmetric-assemble/src/asciidoc/configuration/monitors.ad create mode 100644 symmetric-assemble/src/asciidoc/configuration/notifications.ad create mode 100644 symmetric-assemble/src/asciidoc/images/manage/manage-monitors.png create mode 100644 symmetric-assemble/src/asciidoc/manage/monitors.ad diff --git a/symmetric-assemble/src/asciidoc/configuration.ad b/symmetric-assemble/src/asciidoc/configuration.ad index dc50e2012f..49ab640212 100644 --- a/symmetric-assemble/src/asciidoc/configuration.ad +++ b/symmetric-assemble/src/asciidoc/configuration.ad @@ -43,6 +43,9 @@ include::configuration/parameters.ad[] ifdef::pro[] include::configuration/users.ad[] include::configuration/ldap.ad[] -include::configuration/mail-server.ad[] include::configuration/license-key.ad[] endif::pro[] + +include::configuration/mail-server.ad[] +include::configuration/monitors.ad[] +include::configuration/notifications.ad[] diff --git a/symmetric-assemble/src/asciidoc/configuration/monitors.ad b/symmetric-assemble/src/asciidoc/configuration/monitors.ad new file mode 100644 index 0000000000..ba9040ddb3 --- /dev/null +++ b/symmetric-assemble/src/asciidoc/configuration/monitors.ad @@ -0,0 +1,47 @@ + +=== Monitors + +A monitor watches some part of the system for a problem, checking to see if the monitored value exceeds a threshold. +(To be notified immediately of new monitor events, configure a notification.) + +Monitor ID:: The monitor ID is a unique name to refer to the monitor. + +ifndef::pro[] +Node Group ID:: The node group that will run this monitor. Use "ALL" to match all groups. +External ID:: The external ID of nodes that will run this monitor. Use "ALL" to match all nodes. +endif::pro[] +ifdef::pro[] +Target Nodes:: The group of nodes that will run this monitor. +endif::pro[] + +Monitor Type:: The monitor type is one of several built-in or custom types that run a specific check and return a numeric value that can +be compared to a threshold value. + +[cols="<2,<7", options="header"] +|=== +|Type +|Description + +|cpu|Percentage from 0 to 100 of CPU usage for the server process. + +|disk|Percentage from 0 to 100 of disk usage (tmp folder staging area) available to the server process. + +|memory|Percentage from 0 to 100 of memory usage (tenured heap pool) available to the server process. + +|batchError|Number of incoming and outgoing batches in error. + +|batchUnsent|Number of outgoing batches waiting to be sent. + +|dataUnrouted|Number of change capture rows that are waiting to be batched and sent. + +|dataGaps|Number of active data gaps that are being checked during routing for data to commit. + +|=== + +Threshold:: When this threshold value is reached or exceeded, an event is recorded. +Run Period:: The time in seconds of how often to run this monitor. The monitor job runs on a period also, so the monitor can only run as often +as the monitor job. +Run Count:: The number of times to run the monitor before calculating an average value to compare against the threshold. +Severity Level:: The importance of this monitor event when it exceeds the threshold. +Enabled:: Whether or not this monitor is enabled to run. + diff --git a/symmetric-assemble/src/asciidoc/configuration/notifications.ad b/symmetric-assemble/src/asciidoc/configuration/notifications.ad new file mode 100644 index 0000000000..8dc881468e --- /dev/null +++ b/symmetric-assemble/src/asciidoc/configuration/notifications.ad @@ -0,0 +1,40 @@ + +=== Notifications + +A notification sends a message to the user when a monitor event records a system problem. +First configure a monitor to watch the system and record events with a specific severity level. +Then, configure a notification to match the severity level and write to the log or send an email. + +Notification ID:: The notification ID is a unique name to refer to the notification. + +ifndef::pro[] +Node Group ID:: The node group that will run this monitor. Use "ALL" to match all groups. +External ID:: The external ID of nodes that will run this monitor. Use "ALL" to match all nodes. +endif::pro[] +ifdef::pro[] +Target Nodes:: The group of nodes that will run this monitor. +endif::pro[] + +Notification Type:: The notification type is either a built-in or custom type that is given the list of monitor events to send. + +[cols="<2,<7", options="header"] +|=== +|Type +|Description + +|log|The monitor events are written to the log using the same severity level. +ifdef::pro[] +The web console will indicate WARN and ERROR level notifications in the top-right corner, which are also displayed on the main Dashboard screen. +endif::pro[] + +|email|The monitor events are sent in an email to a list of recipients. Use the expression for the comma-separated list of email addresses. +ifdef::pro[] +Use the Configure->Mail Server screen to configure a mail server to use for sending emails. +endif::pro[] + +|=== + +Expression:: Additional information to configure the notification type. +Severity Level:: Find monitor events that occur at this severity level or above. +Enabled:: Whether or not this notification is enabled to run. + diff --git a/symmetric-assemble/src/asciidoc/images/manage/manage-monitors.png b/symmetric-assemble/src/asciidoc/images/manage/manage-monitors.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4bec6c5048f7c25a6e988807fe2b4d41d02e8d GIT binary patch literal 63651 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 BMf3mw literal 0 HcmV?d00001 diff --git a/symmetric-assemble/src/asciidoc/manage.ad b/symmetric-assemble/src/asciidoc/manage.ad index 735f591217..0def81a27b 100644 --- a/symmetric-assemble/src/asciidoc/manage.ad +++ b/symmetric-assemble/src/asciidoc/manage.ad @@ -74,5 +74,7 @@ include::manage/jvm-properties.ad[] include::manage/jvm-threads.ad[] endif::pro[] +include::manage/monitors.ad[] + include::manage/logging.ad[] diff --git a/symmetric-assemble/src/asciidoc/manage/monitors.ad b/symmetric-assemble/src/asciidoc/manage/monitors.ad new file mode 100644 index 0000000000..53ef3307fb --- /dev/null +++ b/symmetric-assemble/src/asciidoc/manage/monitors.ad @@ -0,0 +1,28 @@ +=== Monitors + +ifdef::pro[] + +The Monitors screen allows you to view events of system problems recorded by both local and remote nodes. +The list of events can be filtered to limit the number of events displayed, event type, severity level, and node ID. +Filtering by severity level will match the level you choose and any level above it. +Events are listed in descending order by event time, but the order can be changed by clicking column headings. +The remove button will clear the event from the table on the current node. Events are purged automatically each night +using the `purge.retention.minutes` parameter to remove by event time. + +image::manage/manage-monitors.png[] + +endif::pro[] + +When a <<_monitors,Monitor>> is configured, it is run periodically to check the current value of a system metric and compare it to a threshold value. +Different monitor types can check the CPU usage, disk usage, memory usage, batch errors, outstanding batches, unrouted data, and number +of data gaps. +Custom monitor types can be created using <<_extensions,Extensions>> that use the IMonitorType interface. +When the value returned from the check meets or exceeds the threshold value, a <<_monitor_event>> is recorded. +The <<_monitor_event>> table is synchronized on the heartbeat channel, which allows a central server to see events from remote nodes, +but this behavior can be disabled by setting the `monitor.events.capture.enabled` parameter to false. + +To be immediately notified of a monitor event, use <<_notifications,Notifications>> to match on the severity level. +Different notification type can send a message by writing to the log or sending an email. +Custom notification types can be created using <<_extensions,Extensions>> that use the INotificationType interface. +In order to send email, the <<_mail_server,Mail Server>> should be configured. +