Beats:使用 Elastic Stack 对 Redis 监控

在今天的这篇文章中,我们将介绍如何使用 Elastic 来进行对 Redis 进行监控。

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

尽管Redis的普及程度可能与其易用性有关,但是管理 Redis 服务器或集群通常会带来很多挑战。 与所有其他系统一样,Redis 本身的问题或 Redis 涉及的其他依赖项(例如,磁盘故障或内存不足)都可能导致失败。 分析 Redis 日志可以提供有关 Redis 服务器操作的各种信息,包括其运行寿命(例如,启动或停止),警告(例如,未优化的 OS 配置),持久性(例如,从 Redis 数据库加载或保存 Redis 数据库到磁盘)和错误。

 

安装 Redis 服务器

MacOS

针对 MasOS 的安装,简单地说:

brew update
brew install redis

要立即启动 start redis,然后在登录时重新启动 redis,打入如下的命令:

sudo brew services start redis

我们可以通过如下的指令来重启 redis 服务(在你修改配置文件后),

sudo brew services restart redis

或者,如果你不希望/不需要后台服务,则可以运行:

sudo redis-server /usr/local/etc/redis.conf

测试 Redis 服务器是否正在运行。

redis-cli ping

如果回答 “PONG”,那就好了!

Redis 配置文件的位置在 /usr/local/etc/redis.conf、

卸载 Redis 及其文件。

brew uninstall redis
rm ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

Ubunut OS

你可以在一个 terminal 中打入如下的命令:

sudo apt-get install redis-server 

我们可以用如下的命令来启动 redis server

sudo service redis-server start

我们可以通过如下的命令来检查 redis 服务是否已经运行:

sudo systemctl status redis

如果我对 /etc/redis/redis.conf 有任何的改动,我们可以使用如下的指令来重新启动redis-server:

sudo systemctl restart redis.service

另外,你也可以从源代码编译 Redis。 建议你执行此过程,因为它可以确保你使用的是最新版本。 但是,如果你只是测试 Redis,则不需要此步骤。 请按照 Redis快速入门文档 中的说明从源代码编译 Redis。

收集 redis 日志

为了能够使得redis能够收集我们所需要的 log 信息,我们需要修改 redis.conf 文件,并让配置logfile。具体细节可以参阅链接。安装 Elasticsearch 的要求,我们需要把 logfile 设置为 redis-server.log。

等我们修改完上面的 redis.conf,我们需要重新启动 redis,然后,我们在如下的地址(MacOS)下找到相应的日志信息:

liuxg-2:redis liuxg$ pwd
/usr/local/var/db/redis
liuxg-2:redis liuxg$ ls
dump.rdb         redis-server.log redis.log

在上面我们可以看到 redis-server.log 及 redis.log

 

测试 redis

你可以使用 redis-cli 客户端工具将一些基本命令发送到 Redis 服务器。 该工具应该已经与 redis-server 一起安装, 要运行 redis-cli 并执行基本命令以验证 Redis 正常运行,请使用以下命令:

$ redis-cli 
127.0.0.1:6379> SET x 1
OK
127.0.0.1:6379> GET x
"1"
127.0.0.1:6379> DEL x
(integer) 1

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

 

安装 Elastic Stack

安装 Elasticsearch

我们可以按照文章 “如何在Linux,MacOS及Windows上进行安装Elasticsearch” 安装 Elasticsearch。

安装 Kibana

我们可以按照文章 “如何在Linux,MacOS及Windows上安装Elastic栈中的Kibana” 安装 Kibana。

安装 Filebeat

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

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

我们点击 “Add log data” 按钮,我们可以看到如下的界面:

再接下来选择我们操作系统并按照上面的指令进行安装和配置:

 

当我们执行完如下的命令:

./filebeat modules enable redis

我们可以在如下的目录里找到 redis 的配置文件:

无需进行任何配置我们就可以完成对 redis 的监控, 但是如果需要自定义设置,则可以更新此 redis.yml 文件。

根据不同的平台,我们按照上面的指令要求启动 filebeat。

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

 

我们可以看到 redis 的 overview:

 

安装 Metricbeat

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

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

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

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

我们点击 “Add metric data”:

点击 “Redis metrics”:

根据我们的平台,选择相应的安装步骤。在通常的情况下,我们不需要做任何的特殊配置。redis 的配值文件可以在 modules.d 目录下的 redis.yml 文件中找到:

最后,我们运行 metricbeat:

./metricbeat setup
./metricbeat -e

我们打开Kibana:

我们可以看到 redis 的指标信息:

 

总结

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

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

已标记关键词 清除标记
相关推荐