FusionReactor Observability & APM

Troubleshoot

Blog / Info

Customers

About Us

Installation

Configure

Troubleshoot

Blog / Info

Customers

About Us

How to store FusionReactor logs persistently with Docker volumes

How to store FusionReactor logs

How to store FusionReactor logs persistently with Docker volumes

As a CFML developer using FusionReactor, ensuring your logs are accessible and secure is crucial. When running FusionReactor in a Docker container, storing logs in a persistent location becomes essential. This guide will walk you through using Docker volumes to ensure your FusionReactor logs are safely stored outside the ephemeral container environment and show you how to store FusionReactor logs.

Understanding the challenge

By default, FusionReactor stores its logs within the container. This poses a problem for ephemeral instances, as the logs disappear when the container is removed. The solution? Docker volumes.

Benefits 

Storing FusionReactor (FR) logs persistently with Docker volumes offers several important benefits. Here’s an overview of the key advantages:

  1. Data persistence:  – Logs are preserved even when containers are stopped, removed, or replaced. 
  2. More accessible log analysis:  – Logs can be accessed and analyzed without entering the container.
  1. Improved backup and recovery:  – Logs can be easily backed up along with other persistent data.
  2. Debugging and troubleshooting:- Persistent logs make it easier to debug issues across container restarts or updates.
  3. Resource optimization: – Prevents unnecessary storage usage inside containers.

By leveraging Docker volumes for FR log storage, you create a more robust, flexible, and maintainable logging infrastructure for your CFML applications.

Step-by-step guide

1. Locate default log folders

First, identify the default locations for your instance’s logs and archives:

– Check the Log Engine Settings for the default log folder

 

– Review the Log Archive Settings for the archive folder location

 

> Info: These folders are located within the container for ephemeral instances, so they cannot be changed to a location outside of the container via these fields.

2. Use Docker volume

Docker volumes allow you to specify persistent local folders for logs and archives in your `docker-compose.yaml` file. Here’s how it works:

– Define volume mappings in your `docker-compose.yaml`

– Docker will check if the local folders you specify exist when you run the file

– If the folders don’t exist, Docker will create them for you

– This allows you to create uniquely named local log and archive folders for each container

> Note: If necessary, you can manually create and name the local folders you wish to use for persistent log storage.

3. Configure your docker-compose.yaml

Here’s an example of how to set up your `docker-compose.yaml`:

```yaml
app:
  image: app
  stdin_open: true
  tty: true
  links:
     - mysql
  ports:
     - "8089:8088"
     - "8080:8080"
     - "8182:8888"
  volumes:
     - "./logs:/opt/fusionreactor/instance/app/log"
     - "./archive:/opt/fusionreactor/instance/app/archive"

In this example, local `logs` and `archive` folders have been specified under `volumes`. These folders will be created in the same directory as the `docker-compose.yaml` file.

4. Launch your Container

With your `docker-compose.yaml` file configured, bring up your container:

```bash
docker-compose up -d
```

FusionReactor will now write logs and archives to the persistent local folders outside the container.

Important considerations

> Warning: You must ensure that each instance is written to unique log and archive folders. If multiple instances are pointing to the same log and archive folders, this can cause logging issues.

– This method works for both logs and archived logs

– The specified local folders will be created if they don’t already exist

– You can create uniquely named folders for each container to avoid conflicts

Conclusion – how to store FusionReactor logs

By following these steps, you’ll have a robust logging setup for your FusionReactor instances running in Docker, ensuring no valuable data is lost when containers are cycled.