Monitoring

Once you have grouper installed and the grouper-loader daemon running, you will need to ensure that the service keeps running, and monitor operations within Grouper.  Grouper provides a diagnostics URL on Grouper WS and UI that can provide:

  • Memory health on the node
  • Connection status to Grouper database and subject sources
  • Daemon job status


Monitoring services can use this URL to track Grouper's services and raise alerts if there are interruptions in service.  Grouper Diagnostics provides more details on its setup and use.  Here is an example using zabbix.

Reporting

Setup the SMTP external system

You should also set up the daily report which will be generated by the Grouper daemon process. To run it you will need to configure the following in the configuration UI

Config fileProperty nameDescription
grouper-loader.propertiesdaily.report.quartz.cronquartz cron-like schedule for daily grouper report
grouper-loader.propertiesdaily.report.emailTocomma separated email addresses to email the daily report
grouper-loader.properties daily.report.saveInDirectory Optional. The daily reports will be saved here

The daily report will now be generated as long as the grouper-loader is running.

Sample Report

Grouper daily report

----------------
OVERALL:
----------------
environment:           DEV
memberships:           1,973,454
groups:                40,914
members:               320,828
folders:               2,195
unresolvable subjects: 0

----------------
WITHIN LAST DAY:
----------------
new memberships:       170,175
new groups:            0
updated groups:        0
new folders:           0

----------------
LOADER SUMMARY WITHIN LAST DAY
----------------
jobs:                  46,541
started:               9
subject problems:      846
warnings:              1
errors:                70
unresolvable subjects: 949,985
inserts:               1,108
updates:               0
deletes:               15
total loader mships:   1,779,688
processing time:       0d, 10h, 38m, 19s, 557ms

----------------
LOADER JOBS WITH NON-SUCCESS (max 50 of them)
----------------

job:               CHANGE_LOG_consumer_findBadMemberships
status:            STARTED, started: 2024-03-07 07:00:02.0 ()
ins/upd/del/tot:   0/0/0/2000
error:             null

job:               MAINTENANCE__enabledDisabled
status:            STARTED, started: 2024-03-07 07:00:05.0 ()
ins/upd/del/tot:   0/0/0/0
error:             null

job:               OTHER_JOB_findBadMemberships
status:            STARTED, started: 2024-03-07 07:00:00.0 ()
ins/upd/del/tot:   0/0/0/0
error:             null

----------------
LOADER JOBS SUCCESS (max 50 of them)
----------------

job:               CHANGE_LOG_consumer_syncGroups
status:            SUCCESS, started: 2024-03-07 07:00:26.0 (165ms)
ins/upd/del/tot:   0/0/0/3218

job:               CHANGE_LOG_consumer_findBadMemberships
status:            STARTED, started: 2024-03-07 07:00:02.0 ()
ins/upd/del/tot:   0/0/0/2000

job:               CHANGE_LOG_consumer_stemViewPrivileges
status:            SUCCESS, started: 2024-03-07 07:00:24.0 (142ms)
ins/upd/del/tot:   0/0/0/3218

----------------
GROUPER INFO
----------------
version: 4.10.3, build date: 2024/01/09 07:06:20 +0000, env: DEV
os.name: Linux
os.arch: amd64
os.version: 3.10.0-1160.108.1.el7.x86_64
java.version: 17.0.9
java.vendor: Amazon.com Inc.
java.class.path: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/commons-daemon.jar:/opt/tomcat/bin/log4j-api-2.17.1.jar:/opt/tomcat/bin/log4j-core-2.17.1.jar:/opt/tomcat/bin/log4j-jul-2.17.1.jar:/opt/tomcat/bin/tomcat-juli.jar:/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
heapSize: 4 GB
heapMaxSize: 7 GB
heapSizeFree: 3 GB

privileges.access.cache.interface:
privileges.naming.cache.interface:
groups.wheel.use: true
groups.wheel.group: etc:sysadmingroup

source: id=g:isa name=Grouper: Internal Source Adapter class=InternalSourceAdapter
source: id=uncg-person name=UNCG iSpartan ID class=GrouperJndiSourceAdapter
source: id=g:gsa name=Grouper: Group Source Adapter class=GrouperSourceAdapter
source: id=grouperEntities name=Grouper: Entity Source Adapter class=EntitySourceAdapter
source: id=grouperExternal name=grouperExternal class=ExternalSubjectAutoSourceAdapter
source: id=jdbc name=Example JDBC Source Adapter class=GrouperJdbcSourceAdapter
source: id=uncg-computer name=UNCG Domain-Joined Computer class=GrouperJndiSourceAdapter

hibernate.dialect:
hibernate.connection.driver_class: oracle.jdbc.driver.OracleDriver
hibernate.cache.provider_class: