Active Backup for Business
We use Synology Active Backup for business as a backup solution for our Hyper-v hypervisors.
It works really well, but Synology hasn’t exposed any way to monitor it from SNMP or anything else.
I have seen many people asking how to monitor it, and the best solution I have seen requires connecting to the NAS unit using SSH, as root and running a script to read the ABB sqlite database.
I noticed that in ABB there is a configuration option to ship logs to a syslog server, which is easily monitored using Zabbix.
Using a syslog-ng server in docker container, I set up everything to receive the logs:
---
version: "3.7"
services:
syslog-ng:
image: linuxserver/syslog-ng
environment:
- PUID=1000
- PGID=4
- TZ=Europe/Brussels
volumes:
- /srv/syslog-ng/config:/config
- /srv/syslog-ng/log:/var/log
ports:
- 514:5514/udp
- 601:6601/tcp
- 6514:6514/tcp
The syslog-ng configuration file is very simple and to the point:
#############################################################################
# Default syslog-ng.conf file which collects all local logs into a
# single file called /var/log/messages tailored to container usage.
@version: 3.35
@include "scl.conf"
source s_local {
internal();
};
source s_network_tcp {
syslog(transport(tcp) port(6601));
};
source s_network_udp {
syslog(transport(udp) port(5514));
};
destination d_local {
file("/var/log/messages" perm(0640));
file("/var/log/messages-kv.log" template("$ISODATE $HOST $(format-welf --scope all-nv-pairs)\n") frac-digits(3) perm(0640));
};
log {
source(s_local);
source(s_network_tcp);
source(s_network_udp);
destination(d_local);
};#
The log arrive in real time:
Snapshot Replication
In the Snapshot replication app, there is not option to configure log shipping.
However, in the background, the apps uses the same mechanism as ABB for log management: an instance of syslog-ng on the Synology NAS.
The logs end up in: /var/log/synolog/synodr.log (it seems that snapshot replication is called Disaster Recovery internally at Synolog)
We just need to push a configuration file to in the syslog-ng patterndb.d folder (/etc/syslog-ng/patterndb.d/snapreplication.conf) with the appropriate permissions (owner “system”, group “log”, mode 644) which contains this: (replace {{ HOSTNAME }} with the hostname of your syslog-ng destination server)
@version: 3.34
source snapshot_replication {
file("/var/log/synolog/synodr.log");
};
destination docker {
network(
"{{ HOSTNAME }}"
port(514)
transport(udp)
ip-protocol(4)
log_fifo_size(50000)
keep_alive(no)
);
};
log {
source(snapshot_replication); destination(docker);
};
You juste need to restart the syslog-ng server on the NAS and you’re good to go:
systemctl restart syslog-ng
Logs will then start to appear in the syslog-ng docker container:
Zabbix
You can use the templates here to monitor the logfile using Zabbix.
It uses Zabbix Active check so you need to make sure that is set up correctly.