Log Management

A log is a record of the events occurring within an organization’s systems and networks. Logs are composed of log entries. Each entry contains information related to a specific event that has occurred within a system or network.

FintechOS logs contain records related to computer security (which are generated by sources such as antivirus software, firewalls, and intrusion detection and prevention systems), as well as logs generated by operating systems (on servers, workstations, and networking equipment) and applications.

Security Logs

Irrespective of the device or application, it is imperative that log data has accurate time stamps. In FintechOS, logs are generated at the following levels:

Operating System Logs and Application Logs

FintechOS operating system logs and application logs typically hold a variety of information, including computer security-related data.

Enable Telemetry

Up until Platform version 24.4.0, logs and traces can be saved in Azure Application Insights or the file system. Starting with version 24.4.1, the Platform introduces support for Open Telemetry, enabling logs and traces to be collected and viewed in observability tools compliant with the Open Telemetry protocol. Find below instructions for configuring integration with either Open Telemetry or (default) Azure App Insights.

NOTE  
You can only use either Application Insights or Open Telemetry, not both. Open Telemetry integration does not support metrics, only logs and traces.

Open Telemetry

  1. In Configuration Manager on your environment, go to Studio > App Settings.

  2. Configure the otel-logging key and add the following: enabled=1; logLevel=Debug; sdkLogLevel=Information; endpoint=http://example; tracing=1;

    • logLevel - the level for logs generated by the platform, for example when a job in the job server starts or ends;

    • sdkLogLevel - the logging level for the ftos.logging.log server SDK method;

    • endpoint - where telemetry data is sent (logs and traces);

    • tracing - keep track of requests and operations across services. It can have the following values:

      • 0 - log data is recorded only;

      • 1 - data on incoming HTTP requests received by the FintechOS component (Portal, Studio, product factory), for example using Client SDK;

      • 2 - records detailed information on dependencies, such as SQL queries, HTTP calls to other systems, the time it took for each server-side SDK method to execute, etc.).

  3. Redo the steps for enabling Open Telemetry for Product Factory. Go to PF API > App Settings.

  4. To check that the logs will be recorded, in Azure, navigate to App Insights > Investigate tab > Transaction search.

  5. Click the Filter and select Cloud role name. The list of components is displayed: studio-platform, jobserver-platformservices, pfapi, b2cportal-platform, openapi, pfbff, portal-platform, jobservice-serverscripts, async-engine.

  6. From the Filter, select Cloud role instance. Check that the list is similar to the one above.

The logs are visible in Azure Application Insights.

Default Azure App Insights Logging

  1. In Configuration Manager on your environment, go to Portal > App Settings.

  2. Configure the azure-appinsights-logging key and add the following: enabled=1; apiKey=[apikey]; sdkLogLevel=Information; logLevel=Warning; flushInterval=10s;

    • sdkLogLevel - the logging level for the ftos.logging.log server SDK method;

    • logLevel - the level for logs generated by the platform, for example when a job in the job server starts or ends.

  3. Enable the azure-appinsights-logging key.

  4. Configure the azure-appinsights-telemetry-logging key, and add one of the following values:

    • 0 - log data is recorded only;

    • 1 - data on incoming HTTP requests received by the Portal/Studio, such as a call action;

    • 2 - records detailed information on dependencies, such as SQL queries, HTTP calls to other systems, the time it took for each server-side SDK method to execute, etc.

Anonymize Logs

The log entries that contain sensitive information, such as usernames, passwords, credit card numbers, personal identification numbers, can be anonymized in the platform, thus assuring compliance with GDPR standards. You can anonymize the properties when a JSON object or array is logged using the log SDK method. The sensitive information is replaced with N/A in anonymized logs.

Enable or Disable Log Anonymization

Log anonymization is enabled by default on environments, and you can check in the Configuration Manager.

  1. Go to App Features in Configuration Manager on your environment.

  2. Add the value 1 to the feature-log-anonymization-enabled to enable anonymization. Add 0 to disable it.

Define Logs to be Anonymized

Once the log anonymization feature was enabled in Configuration Manager, you must now define which logs to be anonymized.

  1. In FintechOS Studio, go to System Parameters.

  2. Double click on sys-log-anonymization-settings to open this system parameter.

  3. In the Paramenter Value field, add the logs to be anonymized, eg.: username, password, credit card number. Make sure to separate parameters with a comma.

  4. Click Save and close when done.

NOTE  
The message can be string, object, or json format.

Filter SDK logs

You can set a different level for SDK logs so that you can view certain logs on development environments. In this way, you can differentiate between logs at platform level and logs from server automation scripts. You can filter logs by automation script, digital asset, machine name, user ID, correlation ID.

Enable Filters for Logs

Follow the steps below to enable or disable the filters for logs:

  1. In Configuration Manager, go to Studio > App Settings.

  2. Add sdkLogLevel: Info; to the azure-appinsights-logging entry. You can change the value from Info to any other log level that you need, such as Debug or Error.

The log levels are the same as log levels for Microsoft Azure.

Define Filters

You need to add some settings for the logs. Follow the steps below to define which property you want to filter out:

  1. In Configuration Manager, go to Studio > App Settings.

  2. Edit sdk-log-filters to add {"automationscript":["automation_script_name"], "digital-asset":["digital_asset_name"]}. Keep in mind that by adding more than one property, the filtering method is either/or.

  3. Changes will take effect without restarting, in no more than 20 seconds.

NOTE  
Automation scripts part of digital assets are displayed if the digital asset is specified in sdk-log-filters.