Grafito: Systemd Journal Log Viewer with a Beautiful Web UI

Grafito is a sleek, systemd journal viewer that makes reading system logs easy, with live streaming, powerful filters, and a clean web-based UI.

I’ve always had a soft spot for simple applications that stick to the classic UNIX philosophy: do one thing and do it well. That’s exactly why I think the app I’m about to introduce deserves a lot more attention and is worth checking out. Meet Grafito – a simple yet powerful systemd web-based UI log viewer.

For system administrators and Linux enthusiasts alike, keeping tabs on system logs can sometimes feel complex, with all those terminal commands and endless journal entries. Fortunately, Grafito arrives as a breath of fresh air—an elegant, self-hosted, web-based viewer designed to make systemd journal logs effortlessly accessible, readable, and shareable.

At its core, the software offers a clean and intuitive interface that runs on your server. The best part is that Grafito eliminates the traditional need to wrestle with journalctl in the terminal for everyday log monitoring tasks. Instead, users are greeted with a modern and visually pleasant responsive web UI, supporting light and dark modes.

One of Grafito’s standout features is its powerful, dynamic filtering capability. I mean, users can quickly pinpoint relevant logs by typing search queries that filter by systemd unit, syslog tag, time range (like “last 15 min” or “last week”), and log priority. As filters update in real-time while typing, it provides immediate feedback, helping users to zoom in on the exact events they need without delay.

Grafito: Systemd Journal Log Viewer
Grafito: Systemd Journal Log Viewer

Another practical addition is the “Live View” mode, which streams logs in real-time with automatic updates. Thus, there’s no need to refresh the page during active debugging sessions. Plus, a feature that truly bridges the gap between web-based convenience and command-line transparency is Grafito’s ability to show the equivalent journalctl command for any active filter.

For collaborative or recurring use cases, the tool allows sharing and bookmarking filtered views via URLs containing all current filter settings. Additionally, exporting filtered logs as plain text files is straightforward, enabling offline analysis or archival.

In distributed environments, Grafito’s utility extends even further. Combined with “systemd-journal-remote” and “systemd-journal-upload” services, it enables centralization of logs from multiple hosts into one consolidated journal on the Grafito server. Thanks to the “Hostname” filter, you can effortlessly isolate logs from specific clients within this unified interface.

How to Install the Grafito Systemd Log Viewer

Installation is a breeze. Start by downloading the latest precompiled binary for your Linux architecture from the project’s GitHub releases page. After downloading, set the executable permission with:

chmod +x grafito-static-linux-amd64 Code language: JavaScript (javascript)

Make sure your user is added to the “systemd-journal” group to grant log access:

sudo usermod -aG systemd-journal your_userCode language: Bash (bash)

Then, just run the binary:

./grafito-static-linux-amd64Code language: JavaScript (javascript)

And open your browser at “http://localhost:3000” to access the interface.

For production use, create a systemd service file “/etc/systemd/system/grafito.service” with content similar to:

[Unit]
Description=Grafito Log Viewer
After=network.target

[Service]
Type=simple
User=your_user
Group=systemd-journal
ExecStart=/full/path/to/grafito-static-linux-amd64 -b 0.0.0.0 -p 1111
Restart=on-failure

[Install]
WantedBy=multi-user.targetCode language: Bash (bash)

Finally, reload systemd and enable the service:

sudo systemctl daemon-reload
sudo systemctl enable grafito.service
sudo systemctl start grafito.serviceCode language: Bash (bash)

Now, Grafito will run in the background and start automatically on boot. Access it via “http://<server-ip>:1111“.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *