Date: Fri, 29 Mar 2024 06:24:12 +0000 (UTC) Message-ID: <1278719724.7545.1711693452866@ip-10-10-7-29.ec2.internal> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_7544_635957340.1711693452864" ------=_Part_7544_635957340.1711693452864 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
This page presents suggestions for ongoing Grouper administration tasks,= including:
Pruning logs and registry<=
/a>
Monitoring Grouper F=
unctions
Setting up N=
otifications
change log
daemon logs
user audit logs
point in time logs
registry
When updates are made in Grouper (group add, membership add, etc), updat= es are also made to the temp change log (grouper_change_log_entry_temp) as = part of the same transaction. The Grouper Daemon later (by default every mi= nute), moves these changes to grouper_change_log_entry with sequence number= s and also adds flattened notifications and permission notifications.
By default, change log entries are retained for 14 days in grouper_chang= e_log_entry. This is configurable in grouper-loader.properties. Note that t= his option doesn't exist before Grouper 2.0.
# numbe= r of days to retain db rows in grouper_change_log_entry. -1 is forever. d= efault is 14 loader.retain.db.change_log_entry.days=3D14
When the Grouper Daemon runs jobs, logs are kept in the grouper_load= er_log table with information about the job, such as when it started, ended= , and status. Note that these logs don't just get created for the jobs that= load data into Grouper, but also for the other jobs that are run by the Gr= ouper Daemon, such as the job to populate grouper_change_log_entry which ru= ns every minute.
By default, these logs are retained for 7 days. This is also configurabl= e in grouper-loader.properties.
# numbe= r of days to retain db logs in table grouperloader_log. -1 is forever. de= fault is 7 loader.retain.db.logs.days=3D7
User Audit logs are crea= ted when updates are made in Grouper. These logs are stored in the grouper_= audit_entry table. For Grouper 2.0, I think the only option for pruning the= se logs are by deleting them directly from the database.
Here's an example to delete rows based on time. Note that created_on is = milliseconds from epoch.
delete = from grouper_audit_entry where created_on < '1318599550575'
Grouper has several tables that have names starting with "grouper_pit_" = that are used to store point in time data. These tables are populated by th= e Grouper Daemon. If an object has been deleted from Grouper, the object re= mains in the point in time tables with an end date. Using GSH, you can dele= te objects in the point in time tables that have end dates. See Point in Time Auditing.
You may need to delete old groups, e.g. if you don't need to keep course= groups with unlimited history. At Penn we only need courses for the = current semester, next semester, and previous semester. This might be= as easy as an obliterate GSH command (note you can generate a report first= ), or a SQL query that generates a GSH script. See the GSH documentation for details
Here are tips for monitoring Grouper functions:
log4j.a= ppender.grouper_mail=3Dorg.apache.log4j.net.SMTPAppender log4j.appender.grouper_mail.To=3Daddress@school.edu log4j.appender.grouper_mail.From=3Dnoreply@school.edu log4j.appender.grouper_mail.SMTPHost=3Dsmtp.server.edu log4j.appender.grouper_mail.Threshold=3DERROR log4j.appender.grouper_mail.BufferSize=3D100 log4j.appender.grouper_mail.Subject=3DGrouper <at:var at:name=3D"envName= " /> Error log4j.appender.grouper_mail.layout=3D org.apache.log4j.PatternLayout log4j.appender.grouper_mail.layout.ConversionPattern =3D %d{ISO= 8601}: [%t] %-5p %C{1}.%M(%L) - %m%n # Loggers ## Default logger; will log *everything* log4j.rootLogger =3D WARN, grouper_error log4j.logger.edu =3D ERROR, grouper_mail log4j.logger.com =3D ERROR, grouper_mail log4j.logger.org =3D ERROR, grouper_mail