阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

Redis 以其易用性的特性而被广泛使用,但管理Redis服务器或集群同样带来诸多挑战——如磁盘故障或内存不足,都可能导致失败,而采集、分析、监控 Redis 日志,可以更好的帮助我们管理Redis服务器。

最受好评的数据库--Redis


Redis是一个非常快速的NoSQL数据存储。 尽管它主要用作缓存,但它可以应用于各种形式,例如图形表示和搜索。 客户端库可使用所有主要的编程语言提供,并且所有*云服务提供商均将其作为托管服务提供。 在过去的几年中,Redis被Stack Overflow开发人员调查评为最受好评的数据库。如果大家对Redis想有更多的认识,请参照链接tutorialspoint

准备工作


本文将为大家介绍,如何通过阿里云Beats插件采集Redis服务器日志数据,并通过阿里云 Elasticsearch 的Kibana实现可视化监控,方便大家更好的管理并了解 Redis 的运行情况。

准备centos7.4版本 ECS 环境,关闭 selinux、firewall。
准备阿里云elasticsearch 6.7 版本环境,并使用创建的账号密码登录Kibana
• 安装 Filebeat以及Metricbeat

在阿里云 ECS环境中安装 Redis 服务器

由于 Remi 源提供了目前最新版本的 Redis,我们可以通过该源 YUM 安装目前最新版本的 Redis。

注:redis默认端口为6379,对外提供服务,请提前在ecs上开启安全组。

#####通过epel源安装remi源#####
# yum -y install epel-release
# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
#####通过指定--enablerepo安装redis
# yum --enablerepo=remi install -y redis

#####查看redis版本########
# redis-cli --version
redis-cli 5.0.9

####启动redis服务 #######
# systemctl start redis
####设置开机自启动######
# systemctl enable redis
# systemctl status redis

####测试是否正常ping###
# redis-cli ping
PONG
####查看redis进程####
# ps -ef | grep redis
redis    20777     1  0 11:18 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root     20805 20430  0 11:23 pts/0    00:00:00 grep --color=auto redis

安装/配置 Redis 采集日志目录

通过 yum 安装的 Redis,配置文件默认路径是 /etc/redis.conf,通过以下方式定义Redis日志输出文件名称。

bind 127.0.0.1
logfile /var/log/redis/redis-server.log

说明:

bind: Redis 监听的地址。
logfile:Redis 日志文件名称,指定为redis-server.log。

你可以通过以下指令重启 Redis
systemctl restart redis

你可以通过以下指令测试 Redis

# redis-cli
127.0.0.1:6379> set name dayu
OK
127.0.0.1:6379> get name
"dayu"
127.0.0.1:6379> del  name
(integer) 1

上面的示例显示了如何将名为dayu的键的值设置为1,检索该值,然后将其删除。 完成后,按Ctrl + C退出redis-cli。

安装Filebeat

Filebeat的Redis模块非常容易将Redis日志运送到Elasticsearch并在Kibana中可视化它们。 它为Filebeat设置默认配置(包括日志文件的路径和Redis服务器端点),设置摄取管道以自动将Redis日志的结构解析为Elasticsearch字段,并部署可视化和仪表板以方便日志分析 Kibana中的数据。

我们打开Kibana界面,并点击界面上左上角的Kibana图标:

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

选择“Redis日志”

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

进入安装说明流程,我们可以按照图中显示的命令安装 Filebeat

 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.7.0-x86_64.rpm
# sudo rpm -vi filebeat-6.7.0-x86_64.rpm

配置/filebeat.yml。

setup.kibana:

  # Kibana Host
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "https://es-cn-0pp19tb17****jc8p.kibana.elasticsearch.aliyuncs.com:5601"

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["es-cn-0pp19tb17****jc8p.elasticsearch.aliyuncs.com:9200"]

  # Enabled ilm (beta) to use index lifecycle management instead daily indices.
  #ilm.enabled: false

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  username: "elastic"
  password: "Elastic@432"

无需进行任何配置我们就可以完成对redis的监控, 但是如果需要自定义设置,可以通过以下指令,让Filebeat 启动并配置 Redis模块

# sudo filebeat modules enable redis
Enabled redis

在阿里云平台,我们可以通过以下指令,来启动 Filebeat

注:在安装或升级filebeat时,或在启用新模块后,必须执行setup命令。

# sudo filebeat setup
# sudo service filebeat start
Starting filebeat (via systemctl):                         [  OK  ]

我们可以在Kibana的 Dashboard 中查看 Redis 的 logs

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

我们可以看到 Redis 的 overview:

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

安装 Metribeat


我们可以使用 Metricbeat 的 Redis 模块周期性地从redis服务器来收集数据。

Metricbeat由模块和指标集组成。 Metricbeat模块定义了从特定服务(例如Redis,MySQL等)收集数据的基本逻辑。 该模块指定有关服务的详细信息,包括如何连接,收集度量的频率以及收集哪些度量。

每个模块都有一个或多个指标集。 度量集是模块的一部分,用于获取和构建数据。 指标标准集不是将每个指标标准收集为单独的事件,而是在对远程系统的单个请求中检索多个相关指标标准的列表。 因此,例如,Redis模块提供了一个信息指标集,该信息指标集通过运行INFO命令并解析返回的结果来从Redis收集信息和统计信息。

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

接下来我们来安装Metricbeat。我们先打开Kibana:

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

选择“Add metric data”,按照截图中下信息做操作:

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

我们可以按照图中显示的命令安装 Metricbeat

# curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.7.0-x86_64.rpm
# sudo rpm -vi metricbeat-6.7.0-x86_64.rpm

在完成相应安装步骤后,通常情况下,我们不需要做任何特殊,如有需求,可以通过以下指令配置 Metricbeat Redis模块。

# vim /etc/metricbeat/metricbeat.yml
setup.kibana:

   host: "https://es-cn-4591jumei****1zp5.kibana.elasticsearch.aliyuncs.com:5601"
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["es-cn-4591jumei****1zp5.elasticsearch.aliyuncs.com:9200"]

  # Enabled ilm (beta) to use index lifecycle management instead daily indices.
  #ilm.enabled: false
  #protocol: "https"
  username: "elastic"
  password: "Elastic@432"

启动 Redis 模块

# sudo metricbeat modules enable redis
Enabled redis

#####启动metricbeat服务########
# sudo metricbeat setup
# sudo service metricbeat start

进入Kibana Dashboard,我们可以看到 Redis 的指标信息。
阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

总结


Redis 是许多企业体系结构的重要组成部分,确保平稳运行是DevOps工程师优先考虑的事情。 而从Redis日志中获得的相关指标分析,可以提高问题解决能力(例如,通过配置解决警告),但是更重要的是,它们可以帮助员工轻易的了解影响应用程序稳定性的关键问题。

当存在影响应用程序稳定性的关键问题时,将日志传送到阿里云Elastic Stack 做快速分析,对于快速找到相关问题,并以最小的中断代价,将系统恢复到正常运行至关重要。

声明:本文由“Beats:使用Elastic Stack对Redis监控”基于阿里云服务环境授权改编

原文作者:Elastic 中国社区布道师——刘晓国
合作编辑:Lettie/大禹
出处链接:https://elasticstack.blog.csdn.net/.


阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

阿里云Elastic Stack】100%兼容开源ES,独有9大能力

相关活动


更多折扣活动,请访问阿里云 Elasticsearch 官网

阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费


阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

阿里云 Elasticsearch 通过 Beats 实现对 Redis 可视化监控

上一篇:26、深入理解计算机系统笔记,系统级I/O


下一篇:d2l 安装,提示 "error:Microsoft Visual C++ 14.0 or greater is required.Get it with "Microsoft C