Hello everyone,
I monitor Bareos via Zabbix. However, after upgrading to Bareos 23.0.3 (Debian 12), sometimes only
When returned empty, Zabbix was considered a bad value backup. And that several times a day.
I was then able to identify the problem as the Python script that queried the status.
https://github.com/IvanBayan/Zabbix-bareos/blob/master/bareos.job.pyTo further narrow down the problem, I wrote a little script.
#! /bin/bash
RED='\033[0;31m'
NC='\033[0m' # No Color
while true; do
#zabbix_get -s 127.0.0.1 -k bareos.job[last_status,"SRV-File01_DriveE"]
WERT=$(/etc/zabbix/scripts/
bareos.job.py last_status SRV-File01_DriveE)
if [[ "$WERT" != "T" ]]; then
echo -e "${RED}Wert stimmt nicht: $WERT ${NC}"
else
echo -e "$WERT"
fi
done
It returns the last job status, normally T.
In this case there is also a Python error and the job status remains empty, which is why Zabbix gives a backup error.
The output then looks like this:
T
T
T
T
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 112, in call_fullresult
data = json.loads(resultstring.decode("utf-8"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/etc/zabbix/scripts/
bareos.job.py", line 99, in <module>
args.func(args)
File "/etc/zabbix/scripts/
bareos.job.py", line 26, in last_status
console = create_console()
^^^^^^^^^^^^^^^^
File "/etc/zabbix/scripts/
bareos.job.py", line 19, in create_console
console = bareos.bsock.DirectorConsoleJson(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 59, in __init__
super(DirectorConsoleJson, self).__init__(*args, **kwargs)
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsole.py", line 203, in __init__
self._init_connection()
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 65, in _init_connection
self.logger.debug(self.call(".api json"))
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 87, in call
json = self.call_fullresult(command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 117, in call_fullresult
raise bareos.exceptions.JsonRpcInvalidJsonReceivedException(data)
bareos.exceptions.JsonRpcInvalidJsonReceivedException: Expecting value: line 1 column 1 (char 0): b'.api: is an invalid command.\n'
Wert stimmt nicht nicht:
T
T
T
T
T
T
Traceback (most recent call last):
File "/etc/zabbix/scripts/
bareos.job.py", line 99, in <module>
args.func(args)
File "/etc/zabbix/scripts/
bareos.job.py", line 26, in last_status
console = create_console()
^^^^^^^^^^^^^^^^
File "/etc/zabbix/scripts/
bareos.job.py", line 19, in create_console
console = bareos.bsock.DirectorConsoleJson(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 59, in __init__
super(DirectorConsoleJson, self).__init__(*args, **kwargs)
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsole.py", line 203, in __init__
self._init_connection()
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 66, in _init_connection
self.logger.debug(self.call(".api json compact=yes"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/bareos/bsock/directorconsolejson.py", line 93, in call
raise bareos.exceptions.JsonRpcErrorReceivedException(json)
bareos.exceptions.JsonRpcErrorReceivedException: failed: .api: is an invalid command.
Wert stimmt nicht nicht:
T
T
T
An update to 23.0.4 didn't help either.
Since I don't know anything about Python, I hope you could help me.
Thank you
Robert