Skip to main content

Redis

Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability.

Metrics

Using Otel

Clone the Redis Exporter Repository

Open your terminal and run the following command:

git clone https://github.com/oliver006/redis_exporter.git

Build the Redis Exporter

cd redis_exporter
go build .

Configure Redis Password (if not already set)

  1. Locate your Redis configuration file, redis.conf.
  2. Open the file in a text editor.
  3. Find the line #requirepass.
  4. Uncomment it and replace the line with a secure password of your choice.
  5. Save the file.
  6. Restart Redis to apply the new configuration.
note

For detailed instructions, refer to this guide: Change Redis Password.

Run the Redis Exporter

./redis_exporter --redis.password=<<your_secure_password>>

Replace <<YOUR_SECURE_PASSWORD>> with the password you set.

Verify Redis Exporter Functionality

  1. Open a web browser and navigate to http://localhost:9121/metrics.
  2. Check if metrics are being displayed.

Set up Otel Collector

Create a configuration file for the Otel Collector. This file should contain the following components:

  • Receivers: Define the Prometheus receiver with your specific job name and scrape interval.
  • Exporters: Set up the Prometheus Remote Write exporter with the endpoint and necessary headers.
  • Processors: Configure resource detection with system detectors.
  • Service: Define the telemetry logs level and setup pipelines that tie receivers, exporters, and processors together.

Example configuration:

receivers:
prometheus:
config:
scrape_configs:
- job_name: '<<job_name>>'
scrape_interval: 10s
static_configs:
- targets: ['localhost:9121']

exporters:
prometheusremotewrite:
endpoint: "https://listener.logz.io:8053"
headers:
Authorization: "Bearer <<PROMETHEUS-METRICS-SHIPPING-TOKEN>>"
resource_to_telemetry_conversion:
enabled: true

processors:
resourcedetection/system:
detectors: ["system"]
system:
hostname_sources: ["os"]

service:
telemetry:
logs:
level: debug
pipelines:
metrics:
receivers: [prometheus]
exporters: [prometheusremotewrite]
processors: [resourcedetection/system]

include file not found: ../../_include/general-shipping/replace-prometheus-token.html --> /opt/build/repo/docs/_include/general-shipping/replace-prometheus-token.html

Replace <<job_name>> with a suitable job name for your setup.

Start the collector

Run the following command:

<path/to>/otelcol-contrib --config ./config.yaml
  • Replace <path/to> with the path to the directory where you downloaded the collector. If the name of your configuration file is different to config, adjust name in the command accordingly.
Check Logz.io for your metrics

Give your data some time to get from your system to ours, then log in to your Logz.io Metrics account, and open the Logz.io Metrics tab.

Using Telegraf

To send your Prometheus-format Redis metrics to Logz.io, you need to add the inputs.redis and outputs.http plug-ins to your Telegraf configuration file.

Configure Telegraf to send your metrics data to Logz.io

Set up Telegraf v1.17 or higher

For Windows

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.27.3_windows_amd64.zip

After downloading the archive, extract its content into C:\Program Files\Logzio\telegraf\.

The configuration file is located at C:\Program Files\Logzio\telegraf\.

For MacOS

brew install telegraf

The configuration file is located at /usr/local/etc/telegraf.conf.

For Linux

Ubuntu & Debian

sudo apt-get update && sudo apt-get install telegraf

The configuration file is located at /etc/telegraf/telegraf.conf.

RedHat and CentOS

sudo yum install telegraf

The configuration file is located at /etc/telegraf/telegraf.conf.

SLES & openSUSE

# add go repository
zypper ar -f obs://devel:languages:go/ go
# install latest telegraf
zypper in telegraf

The configuration file is located at /etc/telegraf/telegraf.conf.

FreeBSD/PC-BSD

sudo pkg install telegraf

The configuration file is located at /etc/telegraf/telegraf.conf.

Add the inputs.redis plug-in

First you need to configure the input plug-in to enable Telegraf to scrape the Redis data from your hosts. To do this, add the following code to the configuration file:

[[inputs.redis]]
## specify servers via a url matching:
servers = [<<PROTOCOL>>://][:<<PASSWORD>>]@<<ADDRESS>>[:<<PORT>>]
## e.g.
## tcp://localhost:6379
## tcp://:password@192.168.99.100
## servers = ["tcp://20.77.110.14:6379","tcp://20.77.110.32:6379"]
  • Replace <<PROTOCOL>> with the name of your shipping protocol (tcp protocol recommended).
  • Replace <<PASSWORD>> with the password for your Redis database.
  • Replace <<ADDRESS>> with the address of your Redis database host. This is localhost if installed locally.
  • Replace <<PORT>> with the address of your host port allocated to Redis database.
note

The full list of data scraping and configuring options can be found here.

Add the outputs.http plug-in

After you create the configuration file, configure the output plug-in to enable Telegraf to send your data to Logz.io in Prometheus-format. To do this, add the following code to the configuration file:

[[outputs.http]]
url = "https://<<LISTENER-HOST>>:8053"
data_format = "prometheusremotewrite"
[outputs.http.headers]
Content-Type = "application/x-protobuf"
Content-Encoding = "snappy"
X-Prometheus-Remote-Write-Version = "0.1.0"
Authorization = "Bearer <<PROMETHEUS-METRICS-SHIPPING-TOKEN>>"

Replace the placeholders to match your specifics. (They are indicated by the double angle brackets << >>):

  • Replace <<LISTENER-HOST>> with the Logz.io Listener URL for your region, configured to use port 8052 for http traffic, or port 8053 for https traffic. For example, listener.logz.io if your account is hosted on AWS US East, or listener-nl.logz.io if hosted on Azure West Europe.
  • Replace <<PROMETHEUS-METRICS-SHIPPING-TOKEN>> with a token for the Metrics account you want to ship to.
    Here's how to look up your Metrics token.

Start Telegraf

On Windows:
telegraf.exe --service start
On MacOS:
telegraf --config telegraf.conf
On Linux:

Linux (sysvinit and upstart installations)

sudo service telegraf start

Linux (systemd installations)

systemctl start telegraf

Check Logz.io for your metrics

Give your metrics some time to get from your system to ours.

Log in to your Logz.io account and navigate to the current instructions page inside the Logz.io app. Install the pre-built dashboard to enhance the observability of your metrics.

To view the metrics on the main dashboard, log in to your Logz.io Metrics account, and open the Logz.io Metrics tab.

Logs and metrics

Using Otel

Clone the Redis Exporter Repository

Open your terminal and run the following command:

git clone https://github.com/oliver006/redis_exporter.git

Build the Redis Exporter

cd redis_exporter
go build .

Configure Redis Password (if not already set)

  1. Locate your Redis configuration file, redis.conf.
  2. Open the file in a text editor.
  3. Find the line #requirepass.
  4. Uncomment it and replace the line with a secure password of your choice.
  5. Save the file.
  6. Restart Redis to apply the new configuration.
note

For detailed instructions, refer to this guide: Change Redis Password.

Configure Redis Logfile

  1. Locate your Redis configuration file, redis.conf.
  2. Open the file in a text editor.
  3. Locate the entry loglevel and choose the level you want.
  4. Locate the entry logfile and replace “” with the directory you want to write the logs to.
  5. Save the file.
  6. Restart Redis to apply the new configuration.

Run the Redis Exporter

./redis_exporter --redis.password=<<your_secure_password>>

Replace <<YOUR_SECURE_PASSWORD>> with the password you set.

Verify Redis Exporter Functionality

  1. Open a web browser and navigate to http://localhost:9121/metrics.
  2. Check if metrics are being displayed.

Set up Otel Collector

Create a configuration file for the Otel Collector. This file should contain the following components:

  • Receivers: Define the Prometheus receiver with your specific job name and scrape interval.
  • Exporters: Set up the Prometheus Remote Write exporter with the endpoint and necessary headers.
  • Processors: Configure resource detection with system detectors.
  • Service: Define the telemetry logs level and setup pipelines that tie receivers, exporters, and processors together.

Example configuration:

receivers:
prometheus:
config:
scrape_configs:
- job_name: '<<job_name>>'
scrape_interval: 10s
static_configs:
- targets: ['localhost:9121']
filelog/redis:
include: [<<logfile directory>>]
include_file_path: true
operators:
- type: move
from: attributes["log.file.name"]
to: attributes["log_file_name"]
- type: move
from: attributes["log.file.path"]
to: attributes["log_file_path"]
attributes:
type: agent-mac
source: redis

exporters:
logging:
logzio/logs:
account_token: "<<LOG-SHIPPING-TOKEN>>"
region: "us"
prometheusremotewrite:
endpoint: "https://listener.logz.io:8053"
headers:
Authorization: "Bearer <<PROMETHEUS-METRICS-SHIPPING-TOKEN>>"
resource_to_telemetry_conversion:
enabled: true


processors:
resourcedetection/system:
detectors: ["system"]
system:
hostname_sources: ["os"]


service:
pipelines:
logs:
receivers: [filelog/redis]
processors: [resourcedetection/system]
exporters: [logzio/logs]
metrics:
receivers: [prometheus]
exporters: [prometheusremotewrite]
processors: [resourcedetection/system]

include file not found: ../../_include/general-shipping/replace-prometheus-token.html --> /opt/build/repo/docs/_include/general-shipping/replace-prometheus-token.html

Replace <<LISTENER-HOST>> with the host for your region. For example, listener.logz.io if your account is hosted on AWS US East, or listener-nl.logz.io if hosted on Azure West Europe. The required port depends whether HTTP or HTTPS is used: HTTP = 8070, HTTPS = 8071.

Replace <<job_name>> with a suitable job name for your setup.

Replace <<logfile directory>> with your logfile directory

Start the collector

Run the following command:

<path/to>/otelcol-contrib --config ./config.yaml
  • Replace <path/to> with the path to the directory where you downloaded the collector. If the name of your configuration file is different to config, adjust name in the command accordingly.
Check Logz.io for your logs and metrics

Give your data some time to get from your system to ours, then log in to your Logz.io account.

Logs

Using Otel

Clone the Redis Exporter Repository

Open your terminal and run the following command:

git clone https://github.com/oliver006/redis_exporter.git

Build the Redis Exporter

cd redis_exporter
go build .

Configure Redis Logfile

  1. Locate your Redis configuration file, redis.conf.
  2. Open the file in a text editor.
  3. Locate the entry loglevel and choose the level you want.
  4. Locate the entry logfile and replace “” with the directory you want to write the logs to.
  5. Save the file.
  6. Restart Redis to apply the new configuration.

Set up Otel Collector

Create a configuration file for the Otel Collector. This file should contain the following components:

  • Receivers: Define the Prometheus receiver with your specific job name and scrape interval.
  • Exporters: Set up the Prometheus Remote Write exporter with the endpoint and necessary headers.
  • Processors: Configure resource detection with system detectors.
  • Service: Define the telemetry logs level and setup pipelines that tie receivers, exporters, and processors together.

Example configuration:

receivers:
filelog/redis:
include: [<<logfile directory>>]
include_file_path: true
operators:
- type: move
from: attributes["log.file.name"]
to: attributes["log_file_name"]
- type: move
from: attributes["log.file.path"]
to: attributes["log_file_path"]
attributes:
type: agent-mac
source: redis


exporters:
logging:
logzio/logs:
account_token: "<<LOG-SHIPPING-TOKEN>>"
region: "us"


processors:
resourcedetection/system:
detectors: ["system"]
system:
hostname_sources: ["os"]


service:
pipelines:
logs:
receivers: [filelog/redis]
processors: [resourcedetection/system]
exporters: [logzio/logs]

Replace <<LISTENER-HOST>> with the host for your region. For example, listener.logz.io if your account is hosted on AWS US East, or listener-nl.logz.io if hosted on Azure West Europe. The required port depends whether HTTP or HTTPS is used: HTTP = 8070, HTTPS = 8071.

Replace <<logfile directory>> with your logfile directory

Start the collector

Run the following command:

<path/to>/otelcol-contrib --config ./config.yaml
  • Replace <path/to> with the path to the directory where you downloaded the collector. If the name of your configuration file is different to config, adjust name in the command accordingly.
Check Logz.io for your logs

Give your data some time to get from your system to ours, then log in to your Logz.io Logs account, and open the Dashboard.