Like as MQTT2RRD and it's forks, MQTToRRD create round robin database files from MQTT messages.
Tool daemon is based on poho-mqtt
and python-daemon
packages. All dependencies are listed in requirements.txt
file. As Python 2.x is deprecated, tool is write for Python 3.5 or more only. For example signal.Signals
class is use.
usage: $(prog)s [options] command
Create round robind database files form MQTT.
positional arguments:
command Daemon action (start|stop|restart|status)
optional arguments:
-h, --help show this help message and exit
-c <file>, --config <file>
Path to config file.
-f, --foreground Run as script on foreground
~# pip3 install mqttorrd
- data_dir
Directory to store round robin database files. Default value is
/var/lib/mqttorrd
.- pid_file
Path of file with pid. Default value is
/var/run/mqttorrd.pid
.- user
Daemon user, default
nobody
.- group
Daemon group, default
nogroup
.
Data directory must be writer with user or group as pid file. Each value from MQTT broker is store to it's rrd file with path from topic. For example: /var/lib/mqttorrd/garden/pool/temperature.rrd
.
- handler
Python logging handler. Possible values are
file
orsyslog
. When tool is run at foreground,stderr
handler is use. On UNIX like systems, WatchedFileHandler is used. Defaults tosyslog
.- syslog
Syslog connection,
/dev/log
by default.LOG_DAEMON
facility is used.- file
Path to log file if
file
handler is used. Defaults to/var/log/mqttorrd.log
.- level
One of Python logging level:
DEBUG, INFO, WARNING, ERROR, CRITICAL
. Default value isERROR
.- format
Logging format. Default value is
%(asctime)s %(levelname)s: %(name)s: %(message)s "{%(funcName)s():%(lineno)d}
.
- client_id
MQTT client id. If is not defined, it is generate automatically.
- hostname
Broker hostname,
localhost
by default.- port
Broker port,
1883
is allways default.- keepalive
The keepalive timeout value for the client. Defaults to
60
seconds.- tls
TLS connection, default
False
.- ca_certs
Path to the Certificate Authority certificate. If is not set, system certs path is use.
- certfile
Client public certificate file.
- keyfile
Client primary key file.
- username
Client username
- password
Client password
- subscriptions
Coma separated topics to subscribe. Default value is
/#
.
For any topics could be defined own RRD parameters. MQTT characters like #
and +
could be use. If new topic message was received,first definition, which is matched is used. If database file is exist yet, only value are update. For more information see https://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html.
- step
Round Robin Database step. Defaults to
60
seconds.- DS
Data source definition. Default value is
DS:{topic}:GAUGE:120:U:U
, where{topic}
is replaced with file name as last topics part.- RRA
Value archive definition. Default value is
RRA:AVERAGE:0.5:2:30,
RRA:AVERAGE:0.5:5:288,
RRA:AVERAGE:0.5:30:336,
RRA:AVERAGE:0.5:60:1488,
RRA:AVERAGE:0.5:720:744,
RRA:AVERAGE:0.5:1440:265