Journal

Your application logs contain very rich information that should be leveraged to optimize your platform engagement. This plugin transparently collects all logs in a single Elasticsearch instance and make them accessible in a Kibana frontend, all running locally of course.

A demo of this plugin is available at https://journal.demo.openedx.overhang.io (login: admin, password: admin).

Warning

This plugin is not yet compatible with Kubernetes deployment.

Installation

This plugin is available to subscribers of a Tutor Long Term Support (LTS) license. To install this plugin, run:

tutor lts install tutor-journal

Usage

The plugin must first be enabled with:

tutor plugins enable journal

Then, launch your platform as usual with:

tutor local quickstart

To access the Kibana user interface in production, go to http(s)://journal.<LMS HOST>. In development, this interface is accessible at http://journal.localhost. The interface is password-protected: the user name is "admin" and the password can be obtained by running:

tutor config printvalue JOURNAL_ADMIN_PASSWORD

All Elasticsearch indices are periodically cleaned ("curated") to ensure that data does not accumulate indefinitely. See the CURATOR_*_MAX_AGE_DAYS configuration parameters below to adjust the frequency at which data is deleted. To run the curator manually, run:

tutor local run journal-curator curator --config=/etc/curator/config.yml /etc/curator/actions.yml

Configuration

The following Tutor configuration settings are defined for this plugin:

  • JOURNAL_VERSION: (default: __version__)
  • JOURNAL_ADMIN_USER: (default: "admin")
  • JOURNAL_ADMIN_PASSWORD: (default: "{{ 12|random_string }}")
  • JOURNAL_CURATOR_VERSION: (default: "5.8.1")
  • JOURNAL_CURATOR_DOCKER_IMAGE: (default: "overhangio/openedx-curator:{{ JOURNAL_VERSION }}")
  • JOURNAL_CURATOR_APPS_MAX_AGE_DAYS: (default: 7)
  • JOURNAL_CURATOR_OPENEDX_TRACKING_MAX_AGE_DAYS: (default: 6*31)
  • JOURNAL_CURATOR_NGINX_ACCESS_MAX_AGE_DAYS: (default: 31)
  • JOURNAL_CURATOR_NGINX_ERROR_MAX_AGE_DAYS: (default: 31)
  • JOURNAL_ENABLE_CURATOR: (default: True)
  • JOURNAL_ENABLE_ELASTICSEARCH: (default: True)
  • JOURNAL_HOST: (default: "journal.{{ LMS_HOST }}")
  • JOURNAL_HOST_DOCKER_SOCK: (default: "/var/run/docker.sock")
  • JOURNAL_HOST_DOCKER_LOGS_ROOT: (default: "/var/lib/docker/containers")
  • JOURNAL_ELASTIC_VERSION: (default: "7.6.1")
  • JOURNAL_ELASTICSEARCH_HEAP_SIZE: (default: "1g")
  • JOURNAL_ELASTICSEARCH_SCHEME: (default: "http")
  • JOURNAL_ELASTICSEARCH_HOST: (default: "journal-elasticsearch")
  • JOURNAL_ELASTICSEARCH_PORT: (default: 9200)
  • JOURNAL_ELASTICSEARCH_USERNAME: (default: "")
  • JOURNAL_ELASTICSEARCH_PASSWORD: (default: "")

Each setting can be modified by running:

tutor config save --set SETTING_NAME=settingvalue

For instance, to modify the Kibana administrator username and password, run:

tutor config save --set JOURNAL_ADMIN_USER=johndoe \
    --set JOURNAL_ADMIN_PASSWORD=passw0rd

License

This software is licensed under the terms of the AGPLv3.