Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

Note

New PowerHA Modern Web Interface
We recently announced a modern web interface for PowerHA on IBM i 7.4 and 7.5. This new modern web interface will provide at-a-glance health information from a web browser. Additional information on this new interface will be available in December. We recommend utilizing the new web interface built into PowerHA instead of HelpSystems Insite and Insite Analytics. The instructions below will remain for existing installations and those looking for examples of utilizing PowerHA SQL services in other monitoring products.
Planned availability: December 16th, 2022

PowerHA by design requires minimal ongoing monitoring, management, and maintenance. With PowerHA dashboards, ongoing monitoring is simplified even more. Dashboards enable administrators to see any errors or warnings that may affect their business continuity. These dashboards can be configured to show PowerHA information alongside information from other products and can be configured to show multiple PowerHA environments on one screen.

...

Expand
titleOpening Insite Analytics

Note: For general usage of Insite Analytics, see the Insite Analytics Users Guide.

  1. After logging in to the HelpSystems Insite server, the homepage is displayed.

  2. Click the Select Product button and select Insite Analytics.

  3. The Insite Analytics menu will appear.

...

  1. Add the Cluster Nodes Query with the following information:

Query Name

PowerHA Cluster Nodes

Description

A list of all cluster nodes along with their status information

SQL

Code Block
languagesql
SELECT NODE,NODE_STATUS FROM QHASM.CLUSTER_NODES

For instructions to add queries to Insite Analytics, expand this section.

...

2. Add the Administrative Domains Query with the following information:

Query Name

PowerHA Administrative Domains

Description

A list of administrative domains with their status information

SQL

Code Block
languagesql
SELECT ADMINISTRATIVE_DOMAIN,DOMAIN_STATUS
  FROM QHASM.ADMIN_DOMAIN_LIST

3. Add the Monitored Resources Query with the following information:

Query Name

PowerHA Monitored Resources Requiring Attention

Description

A list of monitored resources that are either failed or inconsistent along with additional node level information

SQL

Code Block
languagesql
SELECT DETAILS.MONITORED_RESOURCE,DETAILS.RESOURCE_TYPE,DETAILS.LIBRARY,DETAILS.GLOBAL_STATUS,DETAILS.NODE,DETAILS.LOCAL_STATUS,DETAILS.MESSAGE_ID,DETAILS.MESSAGE_TEXT 
  FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST()) LIST,
       TABLE(QHASM.ADMIN_DOMAIN_MRE_DETAILS(MONITORED_RESOURCE => LIST.MONITORED_RESOURCE, RESOURCE_TYPE => LIST.RESOURCE_TYPE, LIBRARY => LIST.LIBRARY)) DETAILS
  WHERE (LIST.GLOBAL_STATUS = '*INCONSISTENT' OR LIST.GLOBAL_STATUS = '*FAILED') AND
        DETAILS.LOCAL_STATUS != 'CURRENT'
Info

Note: Since the Monitored Resources Requiring Attention query only returns monitored resources that require attention, it is likely that when previewing this query, no data will be returned.

4. Add the Unmonitored Resources Query with the following information:

Query Name

PowerHA Unmonitored Resources

Description

A list of resources not currently monitored by the administrative domain that could be monitored by the administrative domain

SQL

Code Block
languagesql
SELECT JOBD.OBJNAME AS "Unmonitored Resource", '*JOBD' as "Resource Type", JOBD.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALL','*JOBD','*ALLSIMPLE')) JOBD
    WHERE JOBD.OBJLONGSCHEMA != 'QSYS' AND JOBD.OBJLONGSCHEMA != 'QINSYS' AND JOBD.OBJLONGSCHEMA != 'QINPRIOR' AND JOBD.OBJLONGSCHEMA != 'QINMEDIA' AND
        NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*JOBD')) MRE
        WHERE MRE.MONITORED_RESOURCE = JOBD.OBJNAME)
UNION
SELECT SBSD.OBJNAME AS "Unmonitored Resource", '*SBSD' as "Resource Type", SBSD.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALL','*SBSD','*ALLSIMPLE')) SBSD
    WHERE SBSD.OBJLONGSCHEMA != 'QSYS' AND SBSD.OBJLONGSCHEMA != 'QINSYS' AND SBSD.OBJLONGSCHEMA != 'QINPRIOR' AND SBSD.OBJLONGSCHEMA != 'QINMEDIA' AND
        NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*SBSD')) MRE
        WHERE MRE.MONITORED_RESOURCE = SBSD.OBJNAME)
UNION
SELECT USRPRF.OBJNAME AS "Unmonitored Resource", '*USRPRF' as "Resource Type", USRPRF.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('QSYS','*USRPRF','*ALLSIMPLE')) USRPRF
    WHERE NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*USRPRF')) MRE
        WHERE MRE.MONITORED_RESOURCE = USRPRF.OBJNAME)
UNION
SELECT AUTL.OBJNAME AS "Unmonitored Resource", '*AUTL' as "Resource Type", AUTL.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('QSYS','*AUTL','*ALLSIMPLE')) AUTL
    WHERE NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*AUTL')) MRE
        WHERE MRE.MONITORED_RESOURCE = AUTL.OBJNAME)
UNION
SELECT CLS.OBJNAME AS "Unmonitored Resource", '*CLS' as "Resource Type", CLS.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALL','*CLS','*ALLSIMPLE')) CLS
    WHERE CLS.OBJLONGSCHEMA != 'QSYS' AND CLS.OBJLONGSCHEMA != 'QINSYS' AND CLS.OBJLONGSCHEMA != 'QINPRIOR' AND CLS.OBJLONGSCHEMA != 'QINMEDIA' AND
        NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*CLS')) MRE
        WHERE MRE.MONITORED_RESOURCE = CLS.OBJNAME)

5. Add the Cluster Resource Groups Query with the following information:

Query Name

PowerHA Cluster Resource Groups

Description

A list of cluster resource groups along with their status

SQL

Code Block
languagesql
SELECT CLUSTER_RESOURCE_GROUP,CRG_TYPE,CRG_STATUS,PRIMARY_NODE 
  FROM QHASM.CLUSTER_RESOURCE_GROUP_LIST

6. Add the Recovery Domain Nodes Requiring Attention Query with the following information:

Query Name

PowerHA Recovery Domain Nodes Requiring Attention

Description

A list of nodes in CRG recovery domains that are inactive or ineligible

SQL

Code Block
languagesql
SELECT RCYDMN.CLUSTER_RESOURCE_GROUP, RCYDMN.NODE, RCYDMN.NODE_STATUS, RCYDMN.SITE_NAME
  FROM QHASM.CLUSTER_RESOURCE_GROUP_LIST LIST,
       TABLE(QHASM.CRG_RECOVERY_DOMAIN(LIST.CLUSTER_RESOURCE_GROUP)) RCYDMN
  WHERE NODE_STATUS != 'ACTIVE'
Info

Note: Since the Recovery Domain Nodes Requiring Attention query only returns nodes that are not eligible for a switchover, it is likely that when previewing this query, no data will be returned.

7. Add the Session Info Query with the following information:

Query Name

PowerHA Session Information

Description

A list of sessions along with current replication status

SQL

Code Block
languagesql
SELECT SESSION_INFO.SESSION_NAME,SESSION_INFO.SESSION_TYPE,SESSION_INFO.ASP_DEVICE,SESSION_INFO.SOURCE_NODE,SESSION_INFO.SOURCE_ASP_STATE,SESSION_INFO.COPY_STATUS,SESSION_INFO.TARGET_NODE,SESSION_INFO.TARGET_ASP_STATE
FROM QHASM.SESSION_LIST SESSION_LIST,
     TABLE(QHASM.SESSION_INFO(SESSION => SESSION_LIST.SESSION_NAME)) SESSION_INFO

Add the PowerHA Queries with Drilldown Query

1. Add the Count Cluster Nodes Requiring Attention Query:

Query Name

PowerHA Count Cluster Nodes Requiring Attention

Description

A count of cluster nodes that are not active

SQL

Code Block
languagesql
SELECT COUNT(*) AS COUNT FROM QHASM.CLUSTER_NODES
  WHERE NODE_STATUS != 'ACTIVE'

Drilldown Query

PowerHA Cluster Nodes

For instructions to add drilldown queries to Insite Analytics, expand this section.

...

2. Add the Count of Admin Domains Requiring Attention Query:

Query Name

PowerHA Count of Admin Domains Requiring Attention

Description

A count of administrative domains that are not active

SQL

Code Block
languagesql
SELECT COUNT(*) AS COUNT 
  FROM QHASM.ADMIN_DOMAIN_LIST
  WHERE DOMAIN_STATUS != 'ACTIVE'

Drilldown Query

PowerHA Administrative Domains

3. Add the Count of Monitored Resources Requiring Attention Query:

Query Name

PowerHA Count of Monitored Resources Requiring Attention

Description

A count of monitored resources requiring attention

SQL

Code Block
languagesql
SELECT COUNT(*) AS COUNT 
  FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST()) LIST
  WHERE LIST.GLOBAL_STATUS = '*INCONSISTENT' OR LIST.GLOBAL_STATUS = '*FAILED'

Drilldown Query

PowerHA Monitored Resources Requiring Attention

4. Add the Count of Unmonitored Resources Query:

Query Name

PowerHA Count of Unmonitored Resources

Description

A count of resources not currently monitored by the administrative domain that could be monitored by the administrative domain

SQL

Code Block
languagesql
SELECT COUNT(*) AS COUNT FROM
(SELECT JOBD.OBJNAME AS "Unmonitored Resource", '*JOBD' as "Resource Type", JOBD.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALL','*JOBD','*ALLSIMPLE')) JOBD
    WHERE JOBD.OBJLONGSCHEMA != 'QSYS' AND JOBD.OBJLONGSCHEMA != 'QINSYS' AND JOBD.OBJLONGSCHEMA != 'QINPRIOR' AND JOBD.OBJLONGSCHEMA != 'QINMEDIA' AND
        NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*JOBD')) MRE
        WHERE MRE.MONITORED_RESOURCE = JOBD.OBJNAME)
UNION
SELECT SBSD.OBJNAME AS "Unmonitored Resource", '*SBSD' as "Resource Type", SBSD.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALL','*SBSD','*ALLSIMPLE')) SBSD
    WHERE SBSD.OBJLONGSCHEMA != 'QSYS' AND SBSD.OBJLONGSCHEMA != 'QINSYS' AND SBSD.OBJLONGSCHEMA != 'QINPRIOR' AND SBSD.OBJLONGSCHEMA != 'QINMEDIA' AND
        NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*SBSD')) MRE
        WHERE MRE.MONITORED_RESOURCE = SBSD.OBJNAME)
UNION
SELECT USRPRF.OBJNAME AS "Unmonitored Resource", '*USRPRF' as "Resource Type", USRPRF.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('QSYS','*USRPRF','*ALLSIMPLE')) USRPRF
    WHERE NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*USRPRF')) MRE
        WHERE MRE.MONITORED_RESOURCE = USRPRF.OBJNAME)
UNION
SELECT AUTL.OBJNAME AS "Unmonitored Resource", '*AUTL' as "Resource Type", AUTL.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('QSYS','*AUTL','*ALLSIMPLE')) AUTL
    WHERE NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*AUTL')) MRE
        WHERE MRE.MONITORED_RESOURCE = AUTL.OBJNAME)
UNION
SELECT CLS.OBJNAME AS "Unmonitored Resource", '*CLS' as "Resource Type", CLS.OBJLONGSCHEMA as "Resource Library"
    FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALL','*CLS','*ALLSIMPLE')) CLS
    WHERE CLS.OBJLONGSCHEMA != 'QSYS' AND CLS.OBJLONGSCHEMA != 'QINSYS' AND CLS.OBJLONGSCHEMA != 'QINPRIOR' AND CLS.OBJLONGSCHEMA != 'QINMEDIA' AND
        NOT EXISTS (
        SELECT MONITORED_RESOURCE
        FROM TABLE(QHASM.ADMIN_DOMAIN_MRE_LIST(RESOURCE_TYPE => '*CLS')) MRE
        WHERE MRE.MONITORED_RESOURCE = CLS.OBJNAME))

Drilldown Query

PowerHA Unmonitored Resources

5. Add the Count of Cluster Resource Groups Requiring Attention Query:

Query Name

PowerHA Count of Cluster Resource Groups Requiring Attention

Description

A count of cluster resource groups that are not active

SQL

Code Block
languagesql
SELECT COUNT(*) AS COUNT 
  FROM QHASM.CLUSTER_RESOURCE_GROUP_LIST
  WHERE CRG_STATUS != 'ACTIVE'

Drilldown Query

PowerHA Cluster Resource Groups

6. Add the Count of Recovery Domain Nodes Requiring Attention Query:

Query Name

PowerHA Count of Recovery Domain Nodes Requiring Attention

Description

A count of cluster resource groups that are not active

SQL

Code Block
languagesql
SELECT COUNT(*) AS COUNT
  FROM QHASM.CLUSTER_RESOURCE_GROUP_LIST LIST,
       TABLE(QHASM.CRG_RECOVERY_DOMAIN(LIST.CLUSTER_RESOURCE_GROUP)) RCYDMN
  WHERE NODE_STATUS != 'ACTIVE'

Drilldown Query

PowerHA Recovery Domain Nodes Requiring Attention

7. Add the Count of Sessions Requiring Attention Query:

Query Name

PowerHA Count of Sessions Requiring Attention

Description

A count of sessions where the copy status is not active

SQL

Code Block
languagesql
SELECT COUNT(*) AS COUNT
FROM QHASM.SESSION_LIST SESSION_LIST,
     TABLE(QHASM.SESSION_INFO(SESSION => SESSION_LIST.SESSION_NAME)) SESSION_INFO
WHERE SESSION_INFO.COPY_STATUS != 'ACTIVE'

Drilldown Query

PowerHA Session Information

PowerHA Status Dashboard

This section describes how to create a HelpSystems Insite Dashboard and add various widgets to show the status of PowerHA, highlighting issues that require attention. The example dashboard defined here includes all the queries you have defined. You can choose which of these to include and adjust the layout to suit your preferences.

...

Expand
titleCreating an Insite Dashboard
  1. In the Navigation Pane, click Dashboards. If the menu is hidden, hover over the Navigation Pane to expand it.

  2. Click the green +Add Dashboard button at the upper-right of the screen

  3. Enter a unique name for the dashboard. For example: PowerHA Status Dashboard

  4. Enter a Description. For example: Status for PowerHA Environments

  5. Select a Color Theme. This theme applies to all widgets on this dashboard. In this example we used the default Light Theme.

  6. Set the Edit Rights and Share With sections as required or leave them as the default. Refer to the HelpSystems Insite User Guide for options.

  7. Click Save.

  8. From the dashboard in Edit mode, click Select Quick Layout.

  9. From the layouts panel, select the 2 widgets tile.

Tip

Tip: The layout is customizable. Choose a layout that suits your needs.

...

Expand
titleAdding PowerHA Widgets to the Dashboard

There are 7 Power HA count of widgets. This example uses Indicator Widgets to show the count of each type. These indicator widgets will be grouped using a Group Widget, allowing a single title above the widgets.

Creating the Layout

  1. Ensure Edit mode is on.

  2. Hover your mouse over the top section and select the green +Add Group.

  3. Click Edit Group.

  4. Select to Show the Header.

  5. Enter a Title such as PowerHA Status.

  6. Click the green Save button in the upper-right hand corner.

  7. Hover your mouse over the top section and select the Edit Groups Widgets button.

  8. Use the < and > arrows to split the section into 8 as shown below. If you make a mistake, click the undo button at the top of the panel.

Adding Widgets to the Layout

  1. Add the Cluster Nodes Widget

    1. Click the three dots at the top right of section 1 and select Add Widget.

    2. Select Insite Analytics for the Data Source.

    3. For the Asset select PowerHA Count of Cluster Nodes Requiring Attention.

    4. Select the cluster node to use for this connection. In this example, the data source is Prod.

    5. Enter Nodes under Name.

    6. Select Key Indicator as the Widget Type.

    7. Select the only metric that is displayed. The preview on the left will now update to display a number.

    8. In order to show the widget as green when the count is zero, and red when greater than zero, thresholds must be used. Select the Layout Tab.

    9. Select Show for Use Status Color as Widget Background and Custom for Thresholds.

    10. Click the green Add Rule button.

    11. On the first rule, set the Condition to =, leave the Value as 0, and set the status to Good. This rule causes the widget to display in green when there are no cluster node errors.

    12. On the second rule, set the Condition to >, leave the Value as 0, and set the status to Critical. This rule causes the widget to display in green when there are one or more cluster node errors.

    13. Click the green Save button in the upper-right hand corner.

  2. Repeat step 1 a-m for the remaining 6 sections in this Group:

    1. For the 2nd section:

Asset

PowerHA Count of Admin Domains Requiring Attention

Name

Admin Domains

Rules

Condition

Value

Status

=

0

Good

>

0

Warning

c. For the 3rd section:

Asset

PowerHA Count of Monitored Resources Requiring Attention

Name

MREs

Rules

Condition

Value

Status

=

0

Good

>

0

Critical

d. For the 4th section:

Asset

PowerHA Count of Unmonitored Resources

Name

Unmonitored Resources

Rules

Condition

Value

Status

=

0

Good

>

0

Warning

e. For the 5th section:

Asset

PowerHA Count of Cluster Resource Groups Requiring Attention

Name

CRGs

Rules

Condition

Value

Status

=

0

Good

>

0

Warning

f. For the 6th section:

Asset

PowerHA Count of Recovery Domain Nodes Requiring Attention

Name

Recovery Domain

Rules

Condition

Value

Status

=

0

Good

>

0

Critical

g. For the 7th section:

Asset

PowerHA Count of Sessions Requiring Attention

Name

Sessions

Rules

Condition

Value

Status

=

0

Good

>

0

Critical

3. When all widgets have been defined, click on Stop Editing Group.

...