aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornico <nico@magicbroccoli.de>2020-06-10 00:56:43 +0200
committernico <nico@magicbroccoli.de>2020-06-10 00:56:43 +0200
commit893f68497de1ace6abfede0de4f70d11f6801a8b (patch)
treefa1b3f9a74330bd53d231dabb2a2f1adb4323d8c
parent331adaf820c3f9c37457be667bd1fc775802cb99 (diff)
further documentation
+ add systemd service documentation
-rw-r--r--README.md45
-rw-r--r--contrib/init/linux-systemd/ejabberd-influxdb.service2
2 files changed, 39 insertions, 8 deletions
diff --git a/README.md b/README.md
index 0e13bd4..43ffb81 100644
--- a/README.md
+++ b/README.md
@@ -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.
diff --git a/contrib/init/linux-systemd/ejabberd-influxdb.service b/contrib/init/linux-systemd/ejabberd-influxdb.service
index 4ac487e..2c4c1b3 100644
--- a/contrib/init/linux-systemd/ejabberd-influxdb.service
+++ b/contrib/init/linux-systemd/ejabberd-influxdb.service
@@ -1,5 +1,5 @@
[Unit]
-Description=ejabberd2influxdb
+Description=ejabberd influxdb exporter
[Service]
Type=simple