tlog session recording vs shellz

tlog is Red Hat's free terminal recorder, built into RHEL and managed through its identity tools. It's a good choice for recording non-root admins on RHEL. Red Hat's own docs name two limits: root can switch it off or get around it, and by default recordings are lost when the server reboots. shellz fits when root sessions are what you're audited on, when recordings must leave the server encrypted, or when your servers also run Ubuntu or Debian.

Get started freeHow shellz workslast verified

Choose shellz if

  • Recordings must survive reboots and leave the server encrypted, without building your own log pipeline.
  • You're audited on root sessions, and you want tampering reported.
  • Your servers run Ubuntu or Debian, where tlog's web player isn't packaged.
  • You want one dashboard for all servers, live view in the browser, and Slack or webhook alerts.

Stick with tlog if

  • You run RHEL with Red Hat Identity Management, and want recording to follow those users and groups.
  • Recordings must stay on your own infrastructure. shellz is SaaS only.
  • Your policy prefers tools that ship with the operating system and are supported by Red Hat.
  • You record non-root admins and are happy to review one server at a time.

At a glance

shellz vs tlog + Cockpit, checked against Red Hat docs and the tlog README on 2026-11-03
Capabilityshellztlog + Cockpit
PriceFree for 10 devices; Commercial $10 per member a month + $1/GBFree; ships with RHEL
Who gets recordedEvery login on the server, including consoles and su -The users and groups you list in the identity service's config
Root userRecorded; tampering is undone within seconds and reportedNo guarantee: Red Hat says root can disable or bypass recording
Survives rebootYes, uploaded about every secondPartial: lost on reboot unless you turn on persistent logs
Encrypted before leaving the serverYesNo; depends on how you forward logs
Tamper evidenceYes, every segment is signed and chainedPartial: optional log sealing, if you set up keys
Typed passwordsNever recordedKeystroke recording is off by default; if on, passwords are saved in plain text
Live viewYes, in the browser, about one second behindYes, in a terminal
PlayerBrowser player, transcript and exportCockpit web console on each server, or a terminal player
One view across serversYes, one dashboardPartial: one server at a time unless you run Elasticsearch
Terminals in a GNOME desktopYesNo: Red Hat says they aren't recorded
docker exec sessionsYes, as their own sessions linked to the SSH loginNot as separate sessions
AlertsEmail, Slack, webhookNone built in
Self-hostedNo, SaaS onlyYes, data stays on your servers

Red Hat documents two limits that matter in an audit

Root first. tlog can record root, but Red Hat's RHEL 10 docs say root can disable or bypass the recording, so those recordings aren't reliable evidence. If your auditor samples privileged sessions, this is the deciding issue.

Then reboots. tlog writes to the system journal, and Red Hat says the journal is kept in memory by default. A reboot erases every recording on the server. The fix is one setting: Storage=persistent in /etc/systemd/journald.conf.

How tlog works on RHEL

tlog runs as the user's login shell. It sits between the terminal and the real shell and saves everything shown on screen to the system journal. SSSD, the RHEL service that connects servers to your user directory, decides which users and groups get tlog as their shell. Cockpit, RHEL's web admin console, has a plugin to play recordings back.

Keystroke recording ships turned off because it saves typed passwords in plain text. Leave it off. For many servers, Red Hat's Ansible role for tlog does the setup for you.

  • Install it: dnf install tlog
  • Choose who to record in an SSSD config file, under [session_recording].
  • Turn it on: authselect select sssd with-tlog, then systemctl restart sssd

Three more gaps to know about

  • Terminals opened in a GNOME desktop aren't recorded.
  • A recorded user who watches the journal live ends up recording their own recordings. Red Hat's docs give a filter to avoid the loop.
  • A remote command like ssh admin@client rm -f /some/file is recorded only if recording is set up for that user on that server.

tlog leaves encryption and central storage to you

tlog's recordings are plain, unsigned JSON. Anyone who can read the journal can read them. The journal has an optional sealing feature that adds tamper evidence, but only for logs saved to disk, and you have to set up its keys.

To search recordings across servers, you forward them with rsyslog to an Elasticsearch cluster you run. Match on tlog's user ID rather than its program name, because any process can claim that name.

shellz encrypts each session on the server with its own key, signs every segment, and stores recordings so they can't be changed or deleted before retention ends. Every replay requires a fresh sign-in and is logged (security model).

Cockpit plays back one server at a time

Cockpit's player runs on each server, for admins of that server. That works for five servers and gets painful at fifty. In a terminal, tlog-play can follow a live session and change speed, but it can't rewind.

shellz shows every server in one browser view. You can follow live sessions, replay at any speed, read a transcript, and search by user, source IP, command, server or container.

Run tlog for in-house RHEL, shellz for root and mixed fleets

If you run RHEL with Identity Management, record non-root admins and must keep data in-house, run tlog. Turn on persistent journal storage and forward to a log server you control.

Choose shellz if root is the account you're audited on, if Ubuntu or Debian is in the mix, or if you'd rather not run Elasticsearch to find out who ran a command. It also records AI agents that SSH in under their own accounts. shellz has no self-hosted version and can't block commands, and it doesn't have its own SOC 2 report yet.

Related: shellz vs auditd, what replaces sudo I/O logging on Ubuntu, and shellz pricing.

Questions

Does tlog record the root user?

It can, but Red Hat's RHEL 10 docs say root can disable or bypass it, so don't rely on those recordings in an audit.

Why are my tlog recordings gone after a reboot?

The journal was kept in memory. Set Storage=persistent in /etc/systemd/journald.conf (or create /var/log/journal), then restart journald.

Is there a Cockpit session recording plugin for Ubuntu?

Not in Ubuntu's archive. tlog itself is in Ubuntu 26.04's universe archive, so you can record sessions and play them back in a terminal with tlog-play.

Can I watch a tlog session while it's happening?

Yes, from a terminal. tlog-play -f follows a live session, much like tail -f.

Is tlog safe to use with keystroke recording on?

Only if you accept plain-text passwords in the log, which is why Red Hat turns it off by default. shellz never records input at hidden prompts such as sudo and passwd.

Related comparisons

Sources

Competitor details come from public documentation and pricing pages, last checked on November 3, 2026. Products change; if something here is out of date, tell us at hello@shellz.dev and we will correct it.

  1. Red Hat: Getting started with Session Recording (RHEL 8)
  2. Red Hat: Deploying Session Recording (RHEL 8)
  3. Red Hat: Configuring session recording by using the CLI (RHEL 10)
  4. Red Hat: Session recording with the tlog RHEL system role (RHEL 10)
  5. tlog README (Scribery)
  6. cockpit-session-recording (Scribery)
  7. journald.conf(5): Storage= and Seal=
  8. Ubuntu packages: tlog (26.04)
  9. Ubuntu packages search: cockpit-session-recording (no results)
~ $ shellz --helpOne command. Two minutes. Every session recorded.