Getting Victoria Logs running on FreeBSD

This post is only about getting Victoria Logs running on FreeBSD. A future post will go over configuration and getting logs in. I’m hoping Victoria Logs can fill the role which ElasticSearch once tried to fill, but failed; it was too finicky and fragile for my use.

In this post:

  • FreeBSD 15.0
  • victoria-logs-1.50.0_2
  • mkjail-0.0.8

Jail creation

I’m going to run this in a jail, like most things. You don’t have to. I’m using sysutils/mkjail for this.

[19:08 r730-01 dvl ~] % sudo mkjail create -a amd64 -v 15.0-RELEASE -j logs
Creating data02/jails/logs...
Extracting base into /jails/logs...
Extracting lib32 into /jails/logs...
Copying in default flavor...
Updating logs jail...

src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 15.0-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.
The following files will be removed as part of updating to
...
/usr/share/zoneinfo/Europe/Tiraspol
/usr/share/zoneinfo/Mexico/BajaNorte
/usr/share/zoneinfo/tzdata.zi
/usr/share/zoneinfo/zone.tab
/usr/share/zoneinfo/zone1970.tab
Installing updates... done.

Now put something like the following in /etc/jail.conf:

exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown jail";
exec.clean;
mount.devfs;
path = /jails/$name;
securelevel = 2;

logs {
    host.hostname = "logs";
    ip4.addr = 127.1.0.201;
    ip6.addr = 2001:0db8::141;
    persist;
}

and then you can start the jail like so:

# service jail start logs

That’s not the jail configuration I used. I used this:

[19:57 r730-01 dvl /usr/local/etc/jail.conf.d] % cat logs.conf 
logs {


    ip4.addr = "$bridge|10.55.0.18";
}

Separate file system

I created a separate file system for Victoria Logs. Because I can. You don’t have to. However, this will let me snapshot, backup, etc.

I discovered the directory name in the rc.d script (/usr/local/etc/rc.d/victoria_logs).

[19:40 r730-01 dvl /usr/local/etc/jail.conf.d] % sudo zfs create -o mountpoint=/jails/logs/var/db/victoria-logs -o recordsize=128K -o compression=zstd data04/victoria-logs
[19:42 r730-01 dvl /usr/local/etc/jail.conf.d] % 
[19:42 r730-01 dvl /usr/local/etc/jail.conf.d] % ls -ld /jails/logs/var/db/victoria-logs
drwxr-xr-x  2 root wheel 2 2026.06.14 19:42 /jails/logs/var/db/victoria-logs/

And here it is from within the jail:

[19:47 logs dvl ~] % ls  -ld /var/db/victoria-logs
drwxr-xr-x  2 root wheel 2 2026.06.14 19:42 /var/db/victoria-logs/

Looking in /usr/local/etc/rc.d/victoria_logs, I see we have a user and a group defined. Let’s adjust the permissions on that directory:

[19:47 logs dvl ~] % sudo chown victoria-logs:victoria-logs /var/db/victoria-logs
[19:48 logs dvl ~] % id victoria-logs                                                       
uid=363(victoria-logs) gid=363(victoria-logs) groups=363(victoria-logs)
[19:48 logs dvl ~] % ls -ld /var/db/victoria-logs                                          
drwxr-xr-x  2 victoria-logs victoria-logs 2 2026.06.14 19:42 /var/db/victoria-logs/
[19:48 logs dvl ~] % 

Enable, and start:

[19:38 logs dvl ~] % sudo sysrc victoria_logs_enable="YES"       
victoria_logs_enable:  -> YES
[19:48 logs dvl ~] % sudo service victoria_logs start 
Starting victoria_logs.
[19:49 logs dvl ~] % ps auwwxd | grep victoria                                              
dvl           96808  0.0  0.0   14164  2680  4  S+J  19:50   0:00.00     `-- grep victoria
victoria-logs 92857  0.0  0.0   14184  2556  -  SsJ  19:49   0:00.00 daemon: victoria_logs[92858] (daemon)
victoria-logs 92858  0.0  0.0 1274348 14292  -  SJ   19:49   0:00.05 - /usr/local/bin/victoria-logs -storageDataPath=/var/db/victoria-logs -retentionPeriod=1 -httpListenAddr=:9428
[19:50 logs dvl ~] % ls -l /var/db/victoria-logs 
total 1
-rw-r--r--  1 victoria-logs victoria-logs 0 2026.06.14 19:49 flock.lock
drwxr-xr-x  2 victoria-logs victoria-logs 2 2026.06.14 19:49 partitions/
[19:50 logs dvl ~] % ls -l /var/db/victoria-logs/partitions 
total 0

Where is it listening?

[20:06 logs dvl ~] % sockstat -4 | grep vict
victoria-logs victoria-l 92858  5 tcp4  10.55.0.18:9428       *:*                  

The logs

The app logs are over here:

[20:07 logs dvl ~] % sudo ls -l /var/log/victoria_logs
total 9
-rw-------  1 victoria-logs victoria-logs 1663 Jun 14 19:49 victoria_logs.log
[20:07 logs dvl ~] % sudo tail /var/log/victoria_log/victoria_logs.log
tail: /var/log/victoria_log/victoria_logs.log: No such file or directory
[20:07 logs dvl ~] % sudo tail /var/log/victoria_logs/victoria_logs.log
2026-06-14T19:49:51.937Z	info	VictoriaMetrics/lib/logger/flag.go:13	command-line flags
2026-06-14T19:49:51.937Z	info	VictoriaMetrics/lib/logger/flag.go:20	  -httpListenAddr=":9428"
2026-06-14T19:49:51.937Z	info	VictoriaMetrics/lib/logger/flag.go:20	  -retentionPeriod="1"
2026-06-14T19:49:51.937Z	info	VictoriaMetrics/lib/logger/flag.go:20	  -storageDataPath="/var/db/victoria-logs"
2026-06-14T19:49:51.938Z	info	/wrkdirs/usr/ports/net-mgmt/victoria-logs/work/VictoriaLogs-1.50.0/app/victoria-logs/main.go:43	starting VictoriaLogs at "[:9428]"...
2026-06-14T19:49:51.938Z	info	/wrkdirs/usr/ports/net-mgmt/victoria-logs/work/VictoriaLogs-1.50.0/app/vlstorage/main.go:145	opening storage at -storageDataPath=/var/db/victoria-logs
2026-06-14T19:49:52.007Z	info	/wrkdirs/usr/ports/net-mgmt/victoria-logs/work/VictoriaLogs-1.50.0/app/vlstorage/main.go:151	successfully opened storage in 0.069 seconds; smallParts: 0; bigParts: 0; smallPartBlocks: 0; bigPartBlocks: 0; smallPartRows: 0; bigPartRows: 0; smallPartSize: 0 bytes; bigPartSize: 0 bytes
2026-06-14T19:49:52.008Z	info	/wrkdirs/usr/ports/net-mgmt/victoria-logs/work/VictoriaLogs-1.50.0/app/victoria-logs/main.go:55	started VictoriaLogs in 0.070 seconds; see https://docs.victoriametrics.com/victorialogs/
2026-06-14T19:49:52.009Z	info	VictoriaMetrics/lib/httpserver/httpserver.go:146	started server at http://10.55.0.18:9428/
2026-06-14T19:49:52.009Z	info	VictoriaMetrics/lib/httpserver/httpserver.go:148	pprof handlers are exposed at http://10.55.0.18:9428/debug/pprof/
[20:08 logs dvl ~] % 

This seems ready to go.

I’ll push this to the website and get on with the next post covering configuration and pushing logs into the tool.

Leave a Comment

Scroll to Top