diff options
author | nico <nico@magicbroccoli.de> | 2020-06-10 00:56:43 +0200 |
---|---|---|
committer | nico <nico@magicbroccoli.de> | 2020-06-10 00:56:43 +0200 |
commit | 893f68497de1ace6abfede0de4f70d11f6801a8b (patch) | |
tree | fa1b3f9a74330bd53d231dabb2a2f1adb4323d8c | |
parent | 331adaf820c3f9c37457be667bd1fc775802cb99 (diff) |
further documentation
+ add systemd service documentation
-rw-r--r-- | README.md | 45 | ||||
-rw-r--r-- | contrib/init/linux-systemd/ejabberd-influxdb.service | 2 |
2 files changed, 39 insertions, 8 deletions
@@ -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 |