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对于快速找到相关日志并以最小的中断将系统恢复到正常运行至关重要。

展开阅读全文

没有更多推荐了,返回首页

应支付0元
点击重新获取
扫码支付

支付成功即可阅读