AuditEmitterCommands (AdminTask)
We can use the Jython scripting language to configure audit service providers. Use commands in the AuditEmitterCommands group to create, manage, and remove audit service providers from the security auditing system configuration.
createBinaryEmitter
The createBinaryEmitter command creates an entry in the audit.xml file to reference the configuration of the binary file emitter implementation of the audit service provider interface.
User must have auditor role.
Target object: None.
Required parameters
- -uniqueName
- Name to uniquely identify this implementation of the audit service provider interface. (String, required)
- -className
- Class that implements the audit service provider interface. (String, required)
- -fileLocation
- Location where the system writes the audit logs. (String, required)
- -auditFilters
- Specifies a reference or a group of references to predefined audit filters. Use the following format to specify multiple references: reference,reference,reference (String, required)
- -wrapBehavior
- Specifies a string representing the customizable behavior for binary audit log wrapping. (String, required).
There are three values for this parameter: WRAP, NOWRAP and SILENT_FAIL
If we use the WRAP option, when the maximum logs are reached, the oldest audit log is rewritten; notification is not sent to the auditor.
The NOWRAP option does not rewrite over the oldest audit log. It stops the audit service, sends a notification to the SystemOut.log, and quiesces the application server.
The SILENT_FAIL option does not rewrite over the oldest audit log. It also stops the audit service, but does allow the WebSphere process to continue. Notifications are not posted in the SystemOut.log.
If we use the NOWRAP or SILENT_FAIL options, when the server is stopped as a result of the logs being maxed-out, a stopserver is performed, or because the server abends in some way, you must archive the binary audit logs before you restart the server.
(zos)
The control region (CR) and each servant region (SR) each have their own binary audit logs. The binary audit logs associated with the control region end in a _CR.log suffix, and servant region binary audit logs end with a _SR.log suffix.
The maximum number of archived binary logs applies to both the CR and the SR regions. For example, if the maximum number of archived binary logs is 10, then the CR region and each SR region also have a maximum of 10 archived binary logs.
The auditing behavior that is applied when the maximum number of archived binary logs is reached applies only to that region whose archived logs have reached their configured maximum. For example, if the SR region has reached its maximum number of archived logs, then the behavior is applied only to the SR region. If the CR region has not yet reached its maximum number of archived logs, auditing still continues in that region.
Optional parameters
- -eventFormatterClass
- Class that implements how the system formats the audit event for output. To use the default audit service provider, do not specify this parameter. (String, optional)
- -maxFileSize
- Maximum size that each log reaches before the system saves the audit log with a timestamp. Specify the size in megabytes. The default value is 10 MB. (Integer, optional)
- -maxLogs
- Maximum number of log files to create before the system rewrites the oldest audit log. The default value is 100 logs. (Integer, optional)
Return value
The command returns the shortened reference ID for the audit service provider, as the following sample output displays:
AuditServiceProvider_1184686384968
Batch mode example
- Jython string...
AdminTask.createBinaryEmitter('-uniqueName mybinaryemitter -className com.ibm.ws.security.audit.BinaryEmitterImpl -fileLocation c:\wasinstall\appserver\profiles\AppSrv01\logs\server1 -maxFileSize 20 -maxLogs 100 -wrapBehavior NOWRAP -auditFilters AuditSpecification_1173199825608')
- Jython list:
AdminTask.createBinaryEmitter(['-uniqueName', 'mybinaryemitter', '-className', 'com.ibm.ws.security.audit.BinaryEmitterImpl', '-fileLocation', 'c:\wasinstall\appserver\profiles\AppSrv01\logs\server1', '-maxFileSize', '20', '-maxLogs', '100', '-wrapBehavior', 'NOWRAP', '-auditFilters', 'AuditSpecification_1173199825608'])
Interactive mode
- Jython:
AdminTask.createBinaryEmitter('-interactive')
createSMFEmitter
The createSMFEmitter command creates an entry in the audit.xml file to reference the configuration of an SMF implementation of the audit service provider interface. The encryption and signing of audit records is not supported for SMF implementations.
User must have auditor role.
Target object: None.
Required parameters
- -uniqueName
- Name to uniquely identify this implementation of the audit service provider interface. (String, required)
- -auditFilters
- Specifies a reference or a group of references to predefined audit filters. Use the following format to specify multiple references: reference,reference,reference (String, required)
Return value
The command returns the shortened reference ID for the audit service provider, as the following sample output displays:
AuditServiceProvider_1184686384968
Batch mode example
- Jython string...
AdminTask.createSMFEmitter('-uniqueName mySMFEmitter -auditFilters AuditSpecification_1173199825608')
- Jython list:
AdminTask.createSMFEmitter(['-uniqueName', 'mySMFEmitter', '-auditFilters', 'AuditSpecification_1173199825608'])
Interactive mode
- Jython:
AdminTask.createSMFEmitter('-interactive')
createThirdPartyEmitter
The createThirdPartyEmitter command creates an entry in the audit.xml configuration file to reference the configuration of a third party emitter implementation of the audit service provider interface. The encryption and signing of audit records is not supported for third party implementations.
User must have auditor role.
Target object: None.
Required parameters
- -uniqueName
- Name to uniquely identify this implementation of the audit service provider interface. (String, required)
- -className
- Class that implements the audit service provider interface. (String, required)
- -auditFilters
- Specifies a reference or a group of references to predefined audit filters. Use the following format to specify multiple references: reference,reference,reference (String, required)
Optional parameters
- -eventFormatterClass
- Class that implements how the system formats the audit event for output. (String, optional)
- -customProperties
- Specifies any custom properties that the system might need to configure the third party implementation of the audit service provider. Use the following format to specify the custom properties: name=value,name=value (String, optional)
Return value
The command returns the shortened reference ID to the audit service provider, as the following example output displays:
AuditServiceProvider_1184686638218
Batch mode example
- Jython string...
AdminTask.createThirdPartyEmitter('-uniqueName myThirdPartyEmitter -className com.mycompany.myemitterclass -eventFormatterClass com.mycompany.myeventformatterclass -auditFilters AuditSpecification_1173199825608')
- Jython list:
AdminTask.createThirdPartyEmitter(['-uniqueName', 'myThirdPartyEmitter', '-className', 'com.mycompany.myemitterclass', '-eventFormatterClass', 'com.mycompany.myeventformatterclass', '-auditFilters', 'AuditSpecification_1173199825608'])
Interactive mode
- Jython:
AdminTask.createThirdPartyEmitter('-interactive')
deleteAuditEmitterByRef
The deleteAuditEmitterByRef command deletes the audit service provider implementation that the system references with the reference id. If an event factory is using the audit service provider, the system generates an error that indicates that the system cannot remove the audit service provider.
User must have auditor role.
Target object: None.
Required parameters
- -emitterRef
- Reference identifier of the audit service provider implementation to delete. (String, required)
Return value
Returns true if the system successfully removes the audit service provider.
Batch mode example
- Jython string...
AdminTask.deleteAuditEmitterByRef('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTask.deleteAuditEmitterByRef(['-emitterRef', 'AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.deleteAuditEmitterByRef('-interactive')
deleteAuditEmitterByName
The deleteAuditEmitterByName command deletes the audit service provider implementation that the system references with the unique name. If an event factory is using the audit service provider, the system generates an error that indicates that the system cannot remove the audit service provider.
User must have auditor role.
Target object: None.
Required parameters
- -uniqueName
- Name that uniquely identifies this implementation of the audit service provider interface to delete. (String, required)
Return value
Returns true if the system successfully deletes the audit service provider implementation.
Batch mode example
- Jython string...
AdminTask.deleteAuditEmitterByName('-uniqueName mybinaryemitter')
- Jython list:
AdminTask.deleteAuditEmitterByName(['-uniqueName', 'mybinaryemitter'])
Interactive mode
- Jython:
AdminTask.deleteAuditEmitterByName('-interactive')
getAuditEmitter
The getAuditEmitter command returns the attributes for the audit service provider of interest.
The user must have the monitor administrative role to run this command.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a audit service provider implementation. (String, required)
Return value
The command returns an attribute list for the audit service provider specified by the -emitterRef parameter, as the following example output displays:
{{auditSpecifications myfilter(cells/CHEYENNENode04Cell|audit.xml#AuditSpecification_1184598886859)} {name auditServiceProviderImpl_1} {_Websphere_Config_Data_Id cells/CHEYENNENode04Cell|audit.xml#AuditServiceProvider_1173199825608} {maxFileSize 1} {_Websphere_Config_Data_Type AuditServiceProvider} {fileLocation ${PROFILE_ROOT}/logs/server1} {className com.ibm.ws.security.audit.BinaryEmitterImpl} {properties {}} {eventFormatterClass {}} {maxLogs 100}}Batch mode example usage
- Jython string...
AdminTask.getAuditEmitter('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTask.getAuditEmitter(['-emitterRef AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.getEmitterClass('-interactive')
getBinaryFileLocation
The getBinaryFileLocation command returns the file location of the binary file audit logs.
The user must have the monitor administrative role to run this command.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a binary file audit service provider implementation. (String, required)
Return value
The command returns the file path of the audit log, as the following example displays:
$profile_root/logs/server1
Batch mode example
- Jython string...
AdminTask.getBinaryFileLocation('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTask.getBinaryFileLocation(['-emitterRef', 'AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.getBinaryFileLocation('-interactive')
getAuditEmitterFilters
The getAuditEmitterFilters command returns a list of defined filters for the audit service provider implementation of interest.
The user must have the monitor administrative role to run this command.
Target object: None.
Required parameters
- -emitterRef
- Audit service provider implementation of interest. We can specify a reference to the service provider object. (String, required)
Return value
The command returns a list of defined filters in a shortened format, as the following example output displays:
AUTHN:SUCCESS,AUTHN:INFO,AUTHZ:SUCCESS,AUTHZ:INFO
Batch mode example
- Jython string...
AdminTask.getAuditEmitterFilters('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTask.getAuditEmitterFilters(['-emitterRef', 'AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.getAuditEmitterFilters('-interactive')
getBinaryFileSize
The getBinaryFileSize command returns the maximum file size of the binary audit log defined for the audit service provider of interest in the audit.xml configuration file.
The user must have the monitor administrative role to run this command.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a binary file audit service provider implementation. (String, required)
Return value
The command returns the integer value of the maximum file size in megabytes.
Batch mode example
- Jython string...
AdminTask.getBinaryFileSize('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTask.getBinaryFileSize(['-emitterRef', 'AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.getBinaryFileSize('-interactive')
getEmitterClass
The getEmitterClass command returns the class name of the audit service provider emitter implementation.
The user must have the monitor administrative role to run this command.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a audit service provider implementation. (String, required)
Return value
The command returns the class name of the audit service provider implementation.
Batch mode example
- Jython string...
AdminTask.getEmitterClass('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTask.getEmitterClass(['-emitterRef', 'AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.getEmitterClass('-interactive')
getEmitterUniqueId
The getEmitterUniqueId command returns the unique identifier of the audit service provider implementation.
The user must have the monitor administrative role to run this command.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a service provider implementation. (String, required)
Return value
The command returns the unique ID of the audit service provider of interest.
Batch mode example
- Jython string...
AdminTask.getEmitterUniqueId('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTask.getEmitterUniqueId(['-emitterRef', 'AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.getEmitterUniqueId('-interactive')
getMaxNumBinaryLogs
The getMaxNumBinaryLogs command returns the maximum number of binary audit logs defined for the audit service provider of interest in the audit.xml configuration file.
The user must have the monitor administrative role to run this command.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a binary file audit service provider implementation. (String, required)
Return value
The command returns the integer value that represents the maximum number of binary audit logs in the configuration.
Batch mode example
- Jython string...
AdminTaskgetMaxNumBinaryLogs('-emitterRef AuditServiceProvider_1173199825608')
- Jython list:
AdminTaskgetMaxNumBinaryLogs(['-emitterRef', 'AuditServiceProvider_1173199825608'])
Interactive mode
- Jython:
AdminTask.getMaxNumBinaryLogs('-interactive')
listAuditEmitters
The listAuditEmitters command returns a list of configured audit service provider implementation objects and the corresponding attributes.
The user must have the monitor administrative role to run this command.
Target object: None.
Return value
The command returns an array list of audit service provider implementation objects and attributes, as the following example output displays:
{{auditSpecifications myfilter(cells/CHEYENNENode04Cell|audit.xml#AuditSpecifica tion_1184598886859)} {name auditServiceProviderImpl_1} {_Websphere_Config_Data_Id cells/CHEYENNENode04Cell|audit.xml#AuditServiceProvid er_1173199825608} {maxFileSize 1} {_Websphere_Config_Data_Type AuditServiceProvider} {fileLocation ${PROFILE_ROOT}/logs/server1} {className com.ibm.ws.security.audit.BinaryEmitterImpl} {properties {}} {auditSpecRef1 AuditSpecification_1184598886859} {eventFormatterClass {}} {maxLogs 100} {emitterRef AuditServiceProvider_1173199825608}} {{auditSpecifications DefaultAuditSpecification_1(cells/CHEYENNENode04Cell|audit .xml#AuditSpecification_1173199825608)} {name mythirdpartyemitter} {_Websphere_Config_Data_Id cells/CHEYENNENode04Cell|audit.xml#AuditServiceProvid er_1184686638218} {maxFileSize 0} {_Websphere_Config_Data_Type AuditServiceProvider} {fileLocation {}} {className com.mycompany.myemitterclass} {properties {}} {auditSpecRef1 AuditSpecification_1173199825608} {eventFormatterClass com.mycompany.myeventformatterclass} {maxLogs 0} {emitterRef AuditServiceProvider_1184686638218}}Batch mode example
- Jython string...
AdminTask.listAuditEmitters()
- Jython list:
AdminTask.listAuditEmitters()
Interactive mode
- Jython:
AdminTask.listAuditEmitters('-interactive')
modifyAuditEmitter
The modifyAuditEmitter command modifies the attributes of an audit service provider implementation object.
User must have auditor role.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a audit service provider implementation. (String, required)
Optional parameters
- -className
- Class name to use to identify the implementation. (String, optional)
- -eventFormatterClass
- Class that implements how the system formats the audit event for output. To use the default audit service provider, do not specify this parameter. (String, optional)
- -customProperties
- List of custom properties formatted as name and value pairs in the following format: name=value,name=value. (String, optional)
(zos) We can set the com.ibm.audit.field.length.limit custom property to specify the length at which variable-length audit data is truncated. For more information, see the documentation about the security custom properties.
- -auditFilters
- Specifies a reference or a group of references to predefined audit filters. Use the following format to specify multiple references: reference,reference,reference (String, optional)
- -fileLocation
- Location where the system writes the audit logs. (String, optional)
- -maxFileSize
- Maximum size that each log reaches before the system saves the audit log with a timestamp. Specify the size in megabytes. The default value is 10 MB. (Integer, optional)
- -maxLogs
- Maximum number of log files to create before the system rewrites the oldest audit log. The default value is 100 logs. (Integer, optional)
- -wrapBehavior
- Specifies a string representing the customizable behavior for binary audit log wrapping. (String, optional).
There are three values for this parameter: WRAP, NOWRAP and SILENT_FAIL
If we use the WRAP option, when the maximum logs are reached, the oldest audit log is rewritten; notification is not sent to the auditor.
The NOWRAP option does not rewrite over the oldest audit log. It stops the audit service, sends a notification to the SystemOut.log, and quiesces the application server.
The SILENT_FAIL option does not rewrite over the oldest audit log. It also stops the audit service, but does allow the WebSphere process to continue. Notifications are not posted in the SystemOut.log.
Return value
Returns true if the system successfully modifies the audit service provider of interest.
Batch mode example
- Jython string...
AdminTask.modifyAuditEmitter('-emitterRef AuditServiceProvider_1184686638218 -wrapBehavior NOWRAP -auditFilters AuditSpecification_1173199825608 -fileLocation c:\wasinstall\appserver\profiles\AppSrv01\mylogs -maxFileSize 14 -maxLogs 200')
- Jython list:
AdminTask.modifyAuditEmitter(['-emitterRef', 'AuditServiceProvider_1184686638218', '-wrapBehavior', 'NOWRAP' '-auditFilters', 'AuditSpecification_1173199825608', '-fileLocation', 'c:\wasinstall\appserver\profiles\AppSrv01\mylogs', '-maxFileSize', '14', '-maxLogs', '200'])
Interactive mode
- Jython:
AdminTask.modifyAuditEmitter('-interactive')
setAuditEmitterFilters
The setAuditEmitterFilters command sets the filters for an audit service provider implementation.
User must have auditor role.
Target object: None.
Required parameters
- -emitterRef
- Specifies a reference to a audit service provider implementation. (String, required)
- -filtersRef
- Specifies one or more references to defined audit filters. Use the following format to specify more than one filter reference: reference,reference,reference (String, required)
Return value
Returns true if the system successfully sets the filters for the audit service provider.
Batch mode example
- Jython string...
AdminTask.setAuditEmitterFilters('-emitterRef AuditServiceProvider_1173199825608 -filtersRef AuditSpecification_1184598886859')
- Jython list:
AdminTask.setAuditEmitterFilters(['-emitterRef', 'AuditServiceProvider_1173199825608', '-filtersRef', 'AuditSpecification_1184598886859'])
Interactive mode
- Jython:
AdminTask.setAuditEmitterFilters('-interactive')
Appendix
This topic references one or more of the application server log files. As a recommended alternative, we can configure the server to use the High Performance Extensible Logging (HPEL log and trace infrastructure instead of using SystemOut.log , SystemErr.log, trace.log, and activity.log files on distributed and IBM i systems. We can also use HPEL in conjunction with the native z/OS logging facilities. If we are using HPEL, we can access all of the log and trace information using the LogViewer command-line tool from the server profile bin directory. See the information about using HPEL to troubleshoot applications for more information on using HPEL.
AuditKeyStoreCommands (AdminTask)
AuditSigningCommands (AdminTask) AuditEncryptionCommands (AdminTask) AuditEventFactoryCommands (AdminTask) AuditFilterCommands (AdminTask) AuditNotificationCommands (AdminTask) AuditPolicyCommands (AdminTask) AuditEventFormatterCommands (AdminTask) Security custom properties