Logging and Auditing
The server and proxy containers, by default, send all auditing and logging information to the console of the container in JSON format.
- Logging
- By default all error and informational messages for the server and proxy containers are logged
to the console of the container in JSON format. A standard message contains the following
fields.
Table 1. Logging Fields Field Description instance.epochSecond The number of seconds since Unix epoch at which the message was generated. instance.threadId The identifier of the thread that generated the message. instance.level The level of the generated message (for example, Information).instance.loggerName The name of the component that generated the message (for example, ISVD Bootstrapper).instance.message.id An identifier for the generated message. This identifier corresponds to a message from the Messages reference. instance.message.text The text that is associated with the generated message. An example message is:{ "instance": { "epochSecond": 1663559882 }, "threadId": "0x26aac880", "level": "Information", "loggerName": "ISVD Bootstrapper", "message": { "id": "GLPBOO002I", "text": "Bootstrapping the container." } }Note: To make the example more readable, the JSON is formatted across multiple lines. In a containerized environment, the JSON message is collapsed into a single line.Thegeneral.json-loggingBoolean configuration entry, when set tofalse, disables the JSON based logging, and changes the message format to a simple text string. - Auditing
- By default, the generation of auditing records for LDAP requests is disabled. If auditing is
needed, set the
general.audit.enabledBoolean configuration entry totrue. This setting causes audit records to be generated and sent to the console in JSON format.Table 2. Auditing Fields Field Description instance.epochSecond The number of seconds since Unix epoch at which the auditing record was generated. instance.threadId The identifier of the thread that generated the auditing record. instance.level The level of the auditing record (always Audit).instance.loggerName The name of the component that generated the auditing record (always: audit.event).instance.event The details of the auditing event. The details vary based on the type of audit record that was generated. The following code is an example audit record.{ "instance": { "epochSecond": 1663561058 "threadId": "0xd445a700", "level": "Audit", "loggerName": "audit.event", "event": { "id": "", "version": 4, "start": { "secs": 1663561058, "msecs": 261 }, "end": { "secs": 1663561058, "msecs": 263 }, "sslProtocol": "", "auth": "unauthenticated ", "preOperation": "", "operation": "Bind", "bindDn": "cn=root", "client": { "address": "127.0.0.1", "port": 50356, "id": 1 }, "admin": "N", "transactionId": "", "result": "Invalid credentials", "controls": [ { "type": "1.3.6.1.4.1.42.2.27.8.5.1", "critical": false } ], "opDetails": { "type": "bind", "name": "cn=root", "choice": "simple", "status": "Not Locked" } } }Note: To make the example more readable, the JSON is formatted across multiple lines. In a containerized environment, the JSON auditing record is collapsed into a single line.The
general.audit.json-formatBoolean configuration entry, when set tofalsedisables the JSON based auditing, and changes the audit record format to a simple text string. Thegeneral.audit.log-to-fileBoolean configuration entry, when set totrue, sends auditing records to the /var/isvd/logs/audit.log file on the container file system, instead of sending the records to the console of the container.