Skip to content

Configure from scratch

Do these steps in order. Each step unlocks the next in the UI.

  1. License / onboarding
  2. Servers (SSH)
  3. Regex patterns (recommended before directories if you want structured columns)
  4. Directories (paths on a server)
  5. Presets (optional groups of directories)
  6. Verify targets appear under Search in

UI labels below match the English application strings.


1. License / onboarding

Field / controlPurpose
Hardware key (Desktop)Machine-bound identifier. Copy it and send it to an administrator to generate a desktop .logswarm.lic.
Installation key / fingerprint (Docker / server)Installation-bound SHA-256 style identifier for server licenses.
Import licenseAdmin uploads a .logswarm.lic file. Valid license enables Search.

Without a valid license, Search stays disabled and shows a renewal / missing-license message.


2. Servers (Settings → Servers)

Add each SSH host you will search.

FieldPurpose
NameFriendly label shown in directory lists and search targets (prod-app-01).
HostHostname or IP for SSH.
PortSSH port (default 22).
UsernameSSH login user.
Authentication typePassword or Private key.
PasswordUsed when auth type is password. Leave blank when editing to keep the stored secret.
Private keyPEM / OpenSSH private key when auth type is private key. Leave blank when editing to keep the stored key.
Host key (advanced / optional)Known host key material when you pin the remote host identity.

After saving, use Test connection to verify SSH before adding directories.


3. Regex patterns (Settings → Regex)

Define how a log line splits into named columns. Full examples: Regex patterns.

FieldPurpose
NameLabel for this pattern (Java Log4j, Nginx access).
Extraction regexRegex with capturing groups. Each group becomes a result column. Non-capturing (?:...) groups are ignored.
Timestamp date formatJava-style tokens describing the timestamp group, e.g. yyyy-MM-dd HH:mm:ss,SSS.
Boundary regex (optional)Helps detect where one multi-line record ends and the next begins.
Capture groups → Group NHuman-readable column name for each capturing group (timestamp, level, message, …).
Timestamp (radio per group)Mark exactly one group as the timestamp used for chronological sorting.

Save the pattern before assigning it to directories or presets.


4. Directories (Settings → Directories)

A directory is a named search target on one server. It can contain several file locations.

FieldPurpose
ServerWhich SSH server this directory belongs to (fixed after create).
NameLabel shown in Search in as Server / Name.
File locationsOne or more path definitions on that server.

Per location

FieldPurpose
Directory pathRemote directory to search, e.g. /var/log/nginx/ or /opt/app/logs/.
File filter (regex, optional)Limits which filenames are searched, e.g. `.log$
Regex pattern (optional)Extraction pattern for lines in this location. Prefer a real pattern over None (legacy parser) for column filters and Complex mode.
Search methodAuto, ripgrep, zgrep, or grep — which remote tool searches files (Auto picks a suitable tool, including gzipped logs when needed).

Use Add location when one logical directory spans multiple paths.


5. Presets (Settings → Presets)

A preset groups several directories into one Search in target (search many places at once).

FieldPurpose
NamePreset label in Search in.
Optional descriptionNotes for operators.
Regex pattern (optional)Pattern associated with the preset when applicable.
DirectoriesCheckboxes for which directories belong to this preset (at least one required).

6. Verify in Search

Open the main search dashboard:

  1. Search in should list your presets and/or Server / Directory entries.
  2. Select a target that has a regex pattern with named groups → Complex mode becomes available.
  3. Run a simple query such as ERROR with a recent File modified from / to range.

If the target list is empty, go back and ensure the directory is saved on a reachable server.

Next steps