further documentation

+ add systemd service documentation
This commit is contained in:
nico 2020-06-10 00:56:43 +02:00
parent 331adaf820
commit 893f68497d
Signed by: mightyBroccoli
GPG Key ID: EA7C31AAB1BDC1A2
2 changed files with 39 additions and 8 deletions

View File

@ -3,12 +3,12 @@ Repository containing various ejabberd tools.
### tools
#### metrics
The metrics class is a tool to gather and aggregate metrics data through the ejabberd rest/ xmlrpc interface.
In addition to that [Prometheus](https://prometheus.io/) and [InfluxDB](https://www.influxdata.com/) client
utilizing the metrics class.
The metrics class is a tool to gather and aggregate metrics data through the ejabberd rest/ xmlrpc interface. In
addition to that a [Prometheus](https://prometheus.io/) and [InfluxDB](https://www.influxdata.com/) client utilizing the
metrics class is provided.
### requirements
The easiest way to setup a clean Python project environment is, to use a virtual environment inside the cloned
The easiest way to setup a clean Python project environment is to use a virtual environment inside the cloned
repository directory. The following bash lines install the `python-virtualenv` module, create the virtual environment
using Python3 and finally install all dependencies listed in the requirements file.
@ -24,11 +24,42 @@ virtualenv -p python3 venv/ -r requirements.txt
```
#### ejabberd
It is required to have/ create a user account to operate the tools with. We strongly recommend to use a dedicated user
to operate the api and to secure the account with a strong password.
It is required to control a user account eligible to operate the tools with. We strongly recommend to use a dedicated
user to operate the api and to secure this account with a specifically strong password.
### configuration
#### api permissions
#### systemd service
To properly operate the metrics exporter tools, we created some systemd templates, to simplify the whole process.
If the `ejabberd-metrics.yml` file is not accessible for the user`nobody:nogroup`, it is required to update the `User`
and `Group` definitions inside the service file.
If a virtualenv is used, it is required to update the `Environment=PATH` to include the `venv/bin` directory created
earlier.
```systemd
[Unit]
Description=ejabberd influxdb exporter
[Service]
Type=simple
# this strongly depends on the ejabberd-metrics.yml permissions
User=nobody
Group=nogroup
ExecStart=/opt/ejabberd-metrics/influx.py
Restart=always
RestartSec=5s
# if the virtualenv is used PATH needs to customized
Environment=PATH=/opt/ejabberd-metrics/venv/bin:/usr/bin:/usr/local/bin
[Install]
WantedBy=multi-user.target
```
Another possible solution would be to edit the `ExecStart` paramter to include the virtualenv Python intepreter.
#### ejabberd: api permissions
These configurations options first add the `mod_http_api` listener. Additionally the user `api_user@magicbroccoli.de` is
added to the `acl` group, thus enabling him to access the `mod_http_api` configured in the `api_permissions` block.

View File

@ -1,5 +1,5 @@
[Unit]
Description=ejabberd2influxdb
Description=ejabberd influxdb exporter
[Service]
Type=simple