In this article, we’ll explore how to monitor Redis databases using two powerful tools: Prometheus and Grafana. Together, they give you deep insights into your database’s performance, health, and resource usage. Monitoring Redis is essential for spotting issues early, improving performance, and keeping your Redis setup running smoothly. With Prometheus collecting data and Grafana visualizing it, you can easily create custom dashboards to see important metrics in real-time. This helps you stay on top of your infrastructure and take proactive steps to keep it healthy.
Table of Contents
Prerequisites
AWS Account with Ubuntu 22.04 LTS EC2 Instance.
Basic knowledge of AWS services, Prometheus and Grafana.
Step #1:Install Redis on Ubuntu
Update the system before starting the installation.
sudo apt update
After this add the repository to the apt index and then update it.
and if everything works fine and your service is running properly then run grafana by running your Public IP:3000 which is default port of grafana in searchbar.
you will see the login page of grafana (UI) user interface
Grafana has admin as default username and password.
it will ask for changing the password you can change it or skip it.
then you will see the welcome page of grafana.
Step #4:Create User Group and User for Prometheus
Now after the installation of Prometheus and grafana is done lets create User Group and User for Prometheus.
Step #7:Configuring Redis Exporter Endpoint in Prometheus Configuration
Navigate to the directory containing the Prometheus configuration file.
cd prometheus-2.30.0.linux-amd64
Edit the prometheus.yml file.
nano prometheus.yml
add the block into it.
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
#Redis Servers
- job_name: "redis"
static_configs:
- targets: ["localhost:9121"]
save the file and close it.
restart the Prometheus service.
sudo systemctl restart prometheus.service
Now go to Prometheus dashboard and click on status, select target, you can see our exporter are up and running.
You can run the Public IP:9121 To see redis web page
click on the metric and you will see the following output.
Step #8:Setting up Grafana Dashboards for Redis Metrics
Now go back to the Grafana welcome page. Go to the Home in the left top corner.
Then go to the Connections and select the Data sources option.
Search for Prometheus in the search bar and select it.
In connection, in Prometheus server URL, give the server url on which our prometheus is running.
after this click on save and test button. You will see the message for prometheus being successfully queried.
now go to the ‘+‘ icon from up-right corner and select the New dashboard option
Here you can start your own new dashboard by adding a visualization.
So click on + Add visualization option button.
Here you can also import dashboards.
Select the Prometheus as Data source.
You will see the edit panel page
Now in the Query section add the A query
go_gc_duration_seconds_sum
instance: localhost:9090
then add the B query
Metric: redis_cpu_user_seconds_total
job: redis
Click on run queries You will see the following output.
It’s in the Gaugevisualization, but there are many visualization option like time series, stats, bar graph etc.
Conclusion:
In conclusion, implementing a monitoring solution for Redis databases using Prometheus and Grafana is essential for maintaining the health, performance, and reliability of your Redis environment. By following the steps outlined in this guide, you can effectively set up and configure Prometheus to collect metrics from Redis instances, visualize these metrics in Grafana dashboards, and proactively manage your Redis infrastructure.