Skip to content

K8s: Add log collector options #1873

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 24, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 24 additions & 9 deletions content/operate/kubernetes/logs/collect-logs.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,44 @@ weight: 89

The Redis Enterprise cluster (REC) log collector script ([`log_collector.py`](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/log_collector/log_collector.py)) creates and fills a directory with the relevant logs for your environment. These logs will help the support team with troubleshooting.

As of version 6.2.18-3, the log collector tool has two modes:
The log collector tool has two modes:

- **restricted** collects only resources and logs created by the operator and Redis Enterprise deployments
- This is the default for versions 6.2.18-3 and later
- **all** collects everything from your environment
- This is the default mode for versions 6.2.12-1 and earlier

{{<note>}} This script requires Python 3.6 or later. {{</note>}}

1. Download the latest [`log_collector.py`](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/log_collector/log_collector.py) file.

1. Ensure your `kubectl` or `oc` CLI is configured to access the Kubernetes cluster you want to collect logs from.

1. Have a K8s administrator run the script on the system that runs your `kubectl` or `oc` commands.
- Pass `-n` parameter to run on a different namespace than the one you are currently on
- Pass `-m` parameter to change the log collector mode (`all` or `restricted`)
- Run with `-h` to see more options

```bash
python log_collector.py
python log_collector.py
```

{{< note >}} If you get an error because the yaml module is not found, install the pyYAML module with `pip install pyyaml`.
{{< /note >}}
## Options

You can run `log_collector.py` with the following options:

| Option | Description |
|--------|-------------|
| `-n`, `--namespace` | Sets the namespace(s) to collect from. Can be set to a single namespace, or multiple namespaces (comma-separated). When left empty, will use the current context's namespace from kubeconfig. |
| `-o`, `--output_dir` | Sets the output directory. Defaults to current working directory. |
| `-a`, `--logs_from_all_pods` | Collect logs from all pods in the selected namespace(s), and otherwise collect only from the operator and pods run by the operator. |
| `-t`, `--timeout` | Time to wait for external commands to finish execution (Linux only). Defaults to 180s. Specify 0 to disable timeout. |
| `--k8s_cli` | The K8s cli client to use (kubectl/oc/auto-detect). Defaults to auto-detect (chooses between 'kubectl' and 'oc'). Full paths can also be used. |
| `-m`, `--mode` | Controls which resources are collected. In 'restricted' mode, only resources associated with the operator and have the label 'app=redis-enterprise' are collected. In 'all' mode, all resources are collected. Defaults to 'restricted' mode. |
| `--collect_istio` | Collect data from istio-system namespace to debug potential problems related to istio ingress method. |
| `--collect_empty_files` | Collect empty log files for missing resources. |
| `--helm_release_name` | Collect resources related to the given Helm release name. |
| `--collect_rbac_resources` | Temporary development flag. Collect all role based access control related custom resources. |
| `-h`, `--help` | Show help message and exit. |

{{< note >}} If you get an error because the yaml module is not found, install the pyYAML module with `pip install pyyaml`.
{{< /note >}}

1. Upload the resulting `tar.gz` file containing all the logs to [Redis Support](https://support.redislabs.com/).