Logging Architecture Overview
10 min read
Overview
Unique AI and its deployment models generate a variety of logs to support effective monitoring, security, and operational visibility. Understanding these logs is critical to maintaining system integrity and achieving compliance with industry standards. This document provides a detailed overview of the different types of logs produced, their sources, and how Unique AI, or in some deployment scenarios, the client, utilizes these logs for auditing and analysis.
Layer Descriptions
Before diving into the specifics of each layer in the logging architecture, it is important to understand the structure of the table used to describe the logs at every layer. Each table provides a consistent framework that outlines the key aspects of the logs generated within that layer. The table format is reused across all layers for clarity and consistency, and it includes the following columns:
Type:
This column defines the type of log or the category of the activity being captured. It helps to quickly identify the nature of the log, such as security-related events, system modifications, or application-specific actions. Each layer may contain various types of logs depending on its scope and function within the system.
Description:
The description provides a brief but informative explanation of what each log type entails. This includes details on the kind of events that the log records, how the log supports auditing, compliance, or troubleshooting, and its relevance to overall system monitoring. This column helps the user understand the purpose and context behind each type of log.
Data Class:
Data classification is crucial for understanding the sensitivity and regulatory requirements related to the logged data. This column categorizes the data to help users manage it according to legal, security, or operational policies. For example, some logs may contain sensitive information subject to retention and access controls, while others may be less critical (see link )
Examples:
To further illustrate each log type, this column provides concrete examples of scenarios or events that would trigger the generation of a log. These examples help clarify how each log type functions in real-world situations. For instance, an example may detail how a user interaction or a system event creates a specific log entry.
Log Destination:
This column specifies where the logs are stored based on the deployment model. Different deployment models—such as Unique Multi-Tenant, Unique Single-Tenant, and Customer Managed Tenant—may handle log storage and management differently. This column outlines whether logs are retained in shared environments, customer-managed infrastructure, or single-tenant setups. It also provides guidance on log retention periods and access controls.
Layers
Now that we have a clear understanding of the structure and categories used to describe logs within each layer, we can dive deeper into the specific layers of the logging architecture. Each layer plays a distinct role in the overall system and provides valuable insights through its logs. Below is an overview of the different layers and the types of logs they generate.
1. Provider Layer
This is the foundation that consists of cloud infrastructure components such as Azure, AWS, or on-premises equivalents. It manages infrastructure-level resources like identity management, authentication, and privilege activities.
Key Logs :
Type | Description | Data Class | Examples | Log destination | ||
|---|---|---|---|---|---|---|
Unique Multi Tenant | Unique Single Tenant | Customer Managed Tenant | ||||
IDP | The range of Identity Providers (IDPs) is extensive, covering solutions such as Azure Entra ID, Active Directory Federation Services (ADFS), and custom implementations. In more complex environments, multiple IDPs may be deployed, including scenarios involving local Active Directory (AD) or LDAP. | C2 |
| Logs are captured by Azure Activity Logs and retained for 90 days. | Logs are highly customized for each client, with respective providers responsible for their creation, storage, and retention. Clients are accountable for the proper handling of these logs. Unique can be consulted for guidance and should be informed as necessary. | |
IDP | Security best practices, such as the Principle of Least Privilege, are integral to responsible system design. These strategies often involve Just-In-Time (JIT) access or Privilege Escalation mechanisms. It is essential to log all actions associated with these mitigations for auditing and compliance purposes. | C2 |
| |||
Industry Standard Reference: Azure Activity Logs
2. Resource Layer
This layer consists of the essential compute, network, and storage resources that support the application. It handles the infrastructure necessary to manage workload communications and operations. The Resource Layer is responsible for logging both Control Plane and Data Plane activities.
Key Logs:
Type | Description | Data Class | Examples | Log destination | ||
|---|---|---|---|---|---|---|
Unique Multi Tenant | Unique Single Tenant | Customer Managed Tenant | ||||
Control Plane | All resources provide Control Plane actions. These actions are recorded in the Activity Log, detailing which user performed the action and when it occurred | C2 |
| Logs are captured by Azure Activity Logs and retained for 90 days. | Logs are highly customized for each client, with respective providers responsible for their creation, storage, and retention. Clients are accountable for managing these logs appropriately. Unique may be consulted for support and should be notified as needed. | |
Data Plane | Not all resources support Data Plane actions. For those that do, the Activity Log captures which user performed the action and when it occurred. | C2 |
| |||
Industry Standard Reference: Azure Control and Data Plane
3. Kubernetes Layer
Kubernetes orchestrates the deployment and management of containerized applications. This layer captures logs that show how resources within the Kubernetes cluster are used and modified.
Key Logs:
Type | Description | Data Class | Examples | Log destination | ||
|---|---|---|---|---|---|---|
Unique Multi Tenant | Unique Single Tenant | Customer Managed Tenant | ||||
Kubernetes, including but not limited to Azure AKS, operates as its own ecosystem with distinct Control Plane and Data Plane components that generate dedicated audit logs. | C2 |
| Currently under discussion. | Logs are streamed to the Azure Log Analytics Workspace. Data is stored in the Analytics Table with a retention period of 31 days. | Clients utilizing Kubernetes typically have dedicated logging mechanisms for Kubernetes auditing, ensuring that these logs are directed to the client's designated logging destination. | |
Industry Standard Reference: Kubernetes Audit Logs
4. Workload Layer
The Workload Layer contains the actual applications running on Kubernetes. Logs from this layer are critical for tracking user interactions, service requests, and application performance.
Key Logs:
Type | Description | Data Class | Examples | Log destination | ||
|---|---|---|---|---|---|---|
Unique Multi Tenant | Unique Single Tenant | Customer Managed Tenant | ||||
Service | Unique AI provides a range of APIs, both public and internal. Audit logs meticulously document every request to ensure compliance with legal regulations and requirements. | C3 |
| Currently under discussion. | Data is stored in isolated Azure Blob Containers and retained for the legal hold period, which defaults to 5 years. These containers are append-only and tamper-proof. | Clients have the option to provide a dedicated disk for mounting and writing files, or they can integrate an additional logging drain, which will be implemented at the standard daily rate. |
Service | Unique AI generates standard application logs (such as debug, info, warn, and error logs, when enabled). These logs are valuable for investigating incidents and verifying application functionality. | C1 |
| Logs are streamed to Azure Disks via Logs are retained for 31 days. | Logs are streamed to the Azure Log Analytics Workspace from A basic table of logs is retained for 7 days. | Clients using Kubernetes typically have dedicated logging drains for |
IDP | Unique utilizes an existing Identity Provider (IDP) solution, which generates its own audit events to track all actions related to authentication and authorization. | C2 |
| Data is stored in the corresponding PostgreSQL database and retained for the legal hold period, which defaults to 5 years. | Data is stored in the corresponding PostgreSQL database and retained for the legal hold period, which defaults to 5 years. | Data is stored in the corresponding PostgreSQL database and retained for the legal hold period, which defaults to 5 years. Additional post-write storage or archival solutions are available at the standard daily rate. |
Industry Standard Reference: Application-specific monitoring tools like Azure Monitor.
5. DevOps Tooling Layer
This layer contains the tools and processes used during the development lifecycle, including version control, build systems, and deployment pipelines. Logs from this layer ensure that the development process is traceable and secure.
Key Logs:
Type | Description | Data Class | Examples | Log destination | ||
|---|---|---|---|---|---|---|
Unique Multi Tenant | Unique Single Tenant | Customer Managed Tenant | ||||
Source Control | Nearly all organizations, including clients and Unique, manage as much as possible through code. This includes the product, its configuration, the infrastructure configuration, and even the provider setup. As a result, access to these codebases must be properly audited. | C2 |
| Logs are sourced and managed by Unique through GitHub Enterprise and retained for 6 months | Logs are highly customized for each client, with respective providers responsible for their creation, storage, and retention. Clients are accountable for the proper management of these logs. Unique may be consulted for guidance and should be informed as needed. | |
Commit | All changes to the codebase are automatically logged by the version control system. | C1 |
| Logs generated by Git itself are retained as long as the repository exists, remaining immutable as Unique enforces a no-rewrite policy on the main branches. | ||
Test Automation | All changes to version control undergo testing in accordance with Unique's testing procedures. Logs from these tests are maintained for traceability and auditing. | C2 |
| Logs related to actions in GitHub are also sourced and managed by Unique through GitHub Enterprise and GitHub Actions, with a retention period of 90 days. | ||
Test Automation | Test executions generate logs that are informational and can be used to troubleshoot issues in case of test failures. | C1 | Log output from the test framework while testing case 'A' or 'B.' | Logs produced by GitHub Actions are retained for 90 days. | ||
Build | When a change is built (including its artifacts), the actions taken are logged for traceability and auditing purposes. | C2 |
| Sourced and managed by Unique using GitHub Enterprise and GitHub Actions, with a retention period of 90 days. | ||
Build Logs | Build processes also generate logs, which are informational and assist in debugging if a build fails. | C1 |
| Generated by Git and GitHub Actions, with a retention period of 90 days. | ||
Deployment | Whenever a system is updated, the relevant actions are logged for traceability and auditing. This applies to both deployments and releases, even in environments where these steps are separated. | C2 |
| Logs are produced by ArgoCD (the GitOps orchestrator) and are retained for the legal hold period, which defaults to 5 years. | ||
Deployment | Deployment processes generate logs that are informational and can be used to troubleshoot issues in the event of a deployment failure. | C1 |
| |||
Industry Standard Reference: GitHub Enterprise Logs for managing source control audits.
Connection Between the Layers
Each of the layers builds on the one below it, creating a hierarchy that supports full operational visibility:
Provider Layer manages the cloud infrastructure and supports the Resource Layer.
The Resource Layer provides compute, network, and storage resources for the Kubernetes Layer to orchestrate containerized applications.
Kubernetes Layer manages the lifecycle of workloads, providing infrastructure for the Workload Layer to function.
Finally, the DevOps Tooling Layer ensures traceability and control over the entire development and deployment pipeline, connecting all other layers for comprehensive monitoring.
