Privacy-i

Download 0
Last updated Aug 28, 2026

Install Guide

Overview

This app collects the JSON log files exported by Somansa Privacy-i into Logpresso Sonar. Sonar connects over SFTP to the host where the log files accumulate and reads them. Collecting documents directly from the Elasticsearch index that Privacy-i writes to is also supported.

The parser the app provides determines the log type, normalizes code values into their Korean display labels, and renames fields to match the schema. The log types the parser handles and the schema each one is normalized to are listed below.

Field prefixLog typeLog schema
action_Personal data file action resultprivacy-i-action
dlog_Discover personal data scan resultprivacy-i-discover-log
dfile_Discover personal data detected fileprivacy-i-discover-file
elog_Endpoint policy violation incidentprivacy-i-endpoint-log
efile_Endpoint incident file detailprivacy-i-endpoint-file
eevt_Endpoint user activity eventprivacy-i-endpoint-event

Scope

Note
Works with Logpresso Sonar 4.0.2312.0 or later.

Requirements

ItemRequirementNote
File access permissionRead permission on the log file directory and its subdirectoriesThe SFTP account for remote collection, the Sonar collection node account for local collection
Sonar permissionSystem administrator permissionAccess to Collect > Loggers and System > Connect Profiles
Network allowanceTCP/22 (Sonar collection node → log file host)Inbound allowed on the log file host, outbound allowed on the Sonar collection node. Use the actual SSH port if it was changed
Elasticsearch app (alternative)Required only when collecting directly from an Elasticsearch indexSee Collect directly from an Elasticsearch index

Logpresso collection configuration

Check the directory path where the log files accumulate and the file naming rule with your Privacy-i contact. The path depends on how log forwarding is configured, and you use it for the directory path and filename pattern inputs in the steps below.

Step 1: Add a connect profile

The SFTP loggers connect to the log file host with an SSH type connect profile. Go to System > Connect Profiles, click Add, and enter the following values.

TypeItemSetting
RequiredNameA unique name that identifies the connect profile
RequiredIdentifierA unique identifier for the connect profile, used in Logpresso queries
RequiredTypeSelect SSH
RequiredHostIP address or hostname of the log file host (e.g. 192.0.2.1)
RequiredPortSSH port. Defaults to 22
RequiredAccountAn SSH account with read permission on the log files (e.g. test_user)
RequiredAuthentication typeSelect Auth key or Password. Defaults to Auth key
OptionalPasswordEnter only when the authentication type is Password
RequiredTimeoutConnection timeout in seconds. Defaults to 30
OptionalKeep-Alive IntervalIn milliseconds. 60000 when not specified
Note
An SSH type connect profile is registered per target host and shared by several loggers. If a profile that connects to the same host is already registered, skip this step and select it in step 2.

When you choose Auth key as the authentication type, open the Set public key dialog next to the authentication type field, copy the Sonar SSH public key, and register it in the authorized_keys file of that account on the log file host. The connection test fails until the key is registered.

Once the values are entered, run the connection test and confirm that the result is a success.

Step 2: Add a logger

Go to Collect > Loggers, click Add, and enter the following values. The settings below the logger model depend on the type of the logger model.

Basic settings area of the Sonar add logger screen

TypeItemSetting
RequiredNameA unique name that identifies the logger
RequiredLogger modelSelect Privacy-i
RequiredStorage location/Collection locationSelect a node appropriate for your Logpresso platform configuration
RequiredSSH profileSelect the connect profile registered in step 1
RequiredDirectory pathAbsolute path of the directory that holds the log files
RequiredFilename patternA regular expression matching the names of the files to collect
OptionalCharsetutf-8 when not specified
OptionalFilename TagField name to record the name of the collected file
OptionalPath Date FormatFormat used to extract a date from the file path. Used with Scan Days
OptionalScan DaysCollect only files whose extracted date falls within the given days
RequiredTableEnter a table name starting with PRIVACY_I (e.g. PRIVACY_I)

Logger options area shown according to the logger model type

Note
The filename pattern is matched against the file name only, not the path.
  • This logger model collects only the files directly under the directory path and does not descend into subdirectories. Entering a parent path or a wildcard in the directory path does not make it pick up files in subdirectories. If the files accumulate across subdirectories in your environment, see "(Reference) When the log files are stored differently" below.

(Reference) When the log files are stored differently

The app provides a single logger model, of the SFTP Directory Watcher type. When the storage layout differs as shown below, add a logger model of the matching type yourself under Collect > Logger Models, select Privacy-i as its parser, and create the logger from that model. The logger settings vary with the type you choose.

Log file storage layoutLogger model typeNote
Collected in one directory on a remote hostSFTP Directory WatcherProvided by the app. Proceed with step 2 as written
Split across subdirectories, by date or a similar keySFTP Daily Rolling Directory WatcherPoint the directory path at the parent of the subdirectories. Adds the monitoring period and old log scan date settings
On the local file system of the Sonar collection nodeRecursive Directory WatcherThe connect profile in step 1 is not needed. Set Recursive to true
Caution
Recursive on the Recursive Directory Watcher defaults to false. If you leave it unset, only the files directly under the directory path are collected and no logs inside subdirectories are picked up.

(Alternative) Collect directly from an Elasticsearch index

In environments where Privacy-i stores its logs in Elasticsearch, you can fetch the documents straight from the index instead of going through files. This method requires the Elasticsearch app to be installed as well.

Note
The Elasticsearch app is installed separately from the Logpresso Store. Without it, Elasticsearch does not appear in the connect profile type list or the logger model list.

Install the Elasticsearch app, then register the following in order. For the individual settings, refer to the Elasticsearch app manual.

  1. Under System > Connect Profiles, add a connect profile of the Elasticsearch type and enter the endpoint and the credentials.
  2. Under Collect > Logger Models, add a logger model with the type set to Elasticsearch and the parser set to Privacy-i.
  3. Under Collect > Loggers, select that logger model and connect profile, then enter the index name to collect from and the sort field. Use a table name starting with PRIVACY_I.

With this method the parser determines the log type from the _type value of the document and stores it in the doc_type field.

Caution
An incorrect sort field throws off paging, which drops or duplicates logs. When several indexes are specified the collection position is tracked per index, so choose a field that exists in all of them.

Post-installation verification

Run the query below to confirm that collection is actually working.

table duration=10m PRIVACY_I*
| stats count
  • Normal: the number of records collected within 10 minutes is 1 or more.
  • Abnormal: if it is 0, recheck the file read permission of the SFTP account, the directory path, the filename pattern, and the connection test result of the connect profile. Also check whether the files are accumulating in subdirectories.

Run the query below to confirm that log types are being determined correctly. For file collection the values start with action, dlog, dfile, elog, efile, or eevt; for Elasticsearch collection they start with pi_. Either means normalization was applied.

table duration=10m PRIVACY_I*
| stats count by doc_type
Note
If there is no doc_type value and the line field still holds the raw JSON, the parser could not normalize the log. This happens when a line was cut off so the JSON never closed, or when no known field is present so the type cannot be determined. Open the affected line in the exported file and check that the JSON is intact.

References