Logging and monitoring
Logging
In Nexeed IAS all logs are logged by our application to stdout and then saved in dockers log directory on the host machine (=VM, […]).
Filebeat collects these, parses them (JSON, when Logging guidelines are implemented in all IAS Modules) and forwards them to elasticsearch.
LogLevel configuration
Notification Service uses the standard ASP.NET Core logging configuration path Logging:LogLevel.
The default logger levels are:
-
Default → Warning (guideline level: WARN)
-
SECURITY → Information (guideline level: INFO)
-
LIFE-CYCLE → Information (guideline level: INFO)
The SECURITY and LIFE-CYCLE logger levels are explicitly configured in appsettings and aligned with the logging guideline requirement for these logger categories.
Example:
"Logging": {
"LogLevel": {
"Default": "Warning",
"SECURITY": "Information",
"LIFE-CYCLE": "Information"
}
}
At service startup, the Foundation logging component validates the configured levels for SECURITY and LIFE-CYCLE. If one of these critical loggers is configured to a value other than INFO, a warning is written to the SECURITY logger with event UNSECURE_LOG_CONFIG and this message pattern:
Configured LogLevel for <LOGGER> is <CURRENT_LOGLEVEL>; expected INFO to ensure that security-relevant events are always recorded.
Database migration logging
Database migration logs are now managed through lifecycle logging, ensuring structured and consistent tracking of migration events. These logs provide visibility into the migration process, helping to confirm successful updates or diagnose failures. The following lifecycle log events are recorded:
DATA_MIGRATION_STARTED: Logged at the start of the migration process. DATA_MIGRATION_SUCCESSFUL: Logged upon successful completion of the migration. DATA_MIGRATION_FAILED: Logged when a migration fails, including error details.
Application Performance Monitoring (APM)
Application Performance Monitoring possibilities need to be activated during deployment to be able to make use of it.
Notification Service’s HELM chart references Nexeed global configuration values for configuration of APM. These are described in the IAS operations manual.
Metrics
A metric is a single measurement at a specific point in time. It can be enriched with more information but quickly turnes then more into an event than in a metric.
Examples for metrics are:
-
CPU Load (load: 5%)
-
Memory consumption (memory.used: 500mb)
-
Disk usage (disk.usage: 90%)
-
Network usage (network.usage : 5000bytes/s)
Notification Service provides following metrics:
-
HTTP Server metrics (via System.Net.Http)
-
Runtime Metrics (via OpenTelemetry.Instrumentation.Runtim)