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图标:
选择“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
我们可以看到 Redis 的 overview:
安装 Metribeat
我们可以使用 Metricbeat 的 Redis 模块周期性地从redis服务器来收集数据。
Metricbeat由模块和指标集组成。 Metricbeat模块定义了从特定服务(例如Redis,MySQL等)收集数据的基本逻辑。 该模块指定有关服务的详细信息,包括如何连接,收集度量的频率以及收集哪些度量。
每个模块都有一个或多个指标集。 度量集是模块的一部分,用于获取和构建数据。 指标标准集不是将每个指标标准收集为单独的事件,而是在对远程系统的单个请求中检索多个相关指标标准的列表。 因此,例如,Redis模块提供了一个信息指标集,该信息指标集通过运行INFO命令并解析返回的结果来从Redis收集信息和统计信息。
接下来我们来安装Metricbeat。我们先打开Kibana:
选择“Add metric data”,按照截图中下信息做操作:
我们可以按照图中显示的命令安装 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 的指标信息。
总结
Redis 是许多企业体系结构的重要组成部分,确保平稳运行是DevOps工程师优先考虑的事情。 而从Redis日志中获得的相关指标分析,可以提高问题解决能力(例如,通过配置解决警告),但是更重要的是,它们可以帮助员工轻易的了解影响应用程序稳定性的关键问题。
当存在影响应用程序稳定性的关键问题时,将日志传送到阿里云Elastic Stack 做快速分析,对于快速找到相关问题,并以最小的中断代价,将系统恢复到正常运行至关重要。
声明:本文由“Beats:使用Elastic Stack对Redis监控”基于阿里云服务环境授权改编
原文作者:Elastic 中国社区布道师——刘晓国
合作编辑:Lettie/大禹
出处链接:
https://elasticstack.blog.csdn.net/.【
阿里云Elastic Stack】100%兼容开源ES,独有9大能力
相关活动
更多折扣活动,请
访问阿里云 Elasticsearch 官网 阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费 阿里云 Logstash 2核4G首月免费