You can ship Redis metrics using Metricbeat.

Metricbeat setup

Before you begin, you’ll need:

Download the Logz.io public certificate to your Metricbeat server

For HTTPS shipping, download the Logz.io public certificate to your certificate authority folder.

sudo curl https://raw.githubusercontent.com/logzio/public-certificates/master/AAACertificateServices.crt --create-dirs -o /etc/pki/tls/certs/COMODORSADomainValidationSecureServerCA.crt

You’ll need to run this command on the server that hosts Metricbeat.

Add Logz.io to your Metricbeat configuration

Open the Metricbeat configuration file (<<PATH_TO_METRICBEAT>>/metricbeat.yml) with your preferred text editor.

Copy and paste the code block below, overwriting the previous contents, to replace the general configuration with the following Logz.io settings:

# ===== General =====
fields:
  logzio_codec: json
  token: <<METRICS-SHIPPING-TOKEN>>
fields_under_root: true

Replace <<METRICS-SHIPPING-TOKEN>> with a token for the Metrics account you want to ship to.
Look up your Metrics token.

Set Logz.io as the output

Still in the same configuration file, check if Logz.io is already an output. If not, add it now.

# ===== Outputs =====
output.logstash:
  hosts: ["<<LISTENER-HOST>>:5015"]
    ssl.certificate_authorities: ['/etc/pki/tls/certs/COMODORSADomainValidationSecureServerCA.crt']

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.

One last validation - make sure Logz.io is the only output and appears only once. If the file has other outputs, remove them.

Add Redis module configuration

Still in the same configuration file, copy and paste the code block below:

metricbeat.modules:
- module: redis
  metricsets: ["info", "keyspace", "key"]
  enabled: true
  key.patterns:
    - pattern: '<<KEY_NAME>>'
	period: 10s

  # Redis hosts
  hosts: ["<<REDIS-HOST>>:6379"]

processors:
  - add_host_metadata: ~
  - include_fields: # Collected metrics
      fields: ['token','logzio_codec','event.module','metricset.name','host.name','agent.hostname', 'redis.info.clients.blocked', 'redis.info.clients.connected', 'redis.info.cpu.used.sys', 'redis.info.cpu.used.user', 'redis.info.memory.fragmentation.ratio', 'redis.info.memory.used.value', 'redis.info.slowlog.count', 'redis.info.stats.keys.evicted', 'redis.info.stats.keyspace.hits', 'redis.info.stats.keyspace.misses', 'redis.info.stats.net.input.bytes', 'redis.info.stats.net.output.bytes', 'redis.key.id', 'redis.keyspace.id']

fields:
  logzio_codec: json
  token: <<METRICS-SHIPPING-TOKEN>>
fields_under_root: true
ignore_older: 3hr
type: metrics
output.logstash:
  hosts: ["<<LISTENER-HOST>>:5015"]
  ssl.certificate_authorities: ['/etc/pki/tls/certs/COMODORSADomainValidationSecureServerCA.crt']

For a full list of available Metricbeat configuration options for the Redis module, including explanations about hosts and key pattern syntax, please see Metricbeat’s documentation.

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

  • Replace <<METRICS-SHIPPING-TOKEN>> with a token for the Metrics account you want to ship to.
    Look up your Metrics token.

  • 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.

  • Replace the placeholder <<REDIS-HOST>> with the URL that is used to connect to Redis. The typical formats are redis://[:password@]host[:port][/db-number][?option=value] or redis://HOST[:PORT][?password=PASSWORD[&db=DATABASE].

  • Replace the <<KEY_NAME>> patterns.

Start Metricbeat

Start or restart Metricbeat for the changes to take effect.

Check Logz.io for your metrics

Give your metrics some time to get from your system to ours, and then open Logz.io.