记一次混合监控的反思

当前位置: 钓虾网 > 圈子 > 记一次混合监控的反思

记一次混合监控的反思

2024-11-12 作者:钓虾网 3

一、背景

记一次混合监控的反思

作为底层技术人员,我们面临着混合架构的挑战,公有云上使用了产品级别的Redis数据库,同时在云服务器和Kubernetes容器的环境中也有Redis数据库的运行。对于这样的混合模式数据库,监控工作尤为重要。Redis作为一种key-value存储系统,具有多种数据存储类型,支持数据持久化、主从同步和集群搭建,同时提供发布订阅机制,大大增强了数据操作的扩展性和数据冗余安全性。无论是公有云还是私有云、自建集群还是Docker容器,监控方式都在不断地发展和完善。

二、监控方式

在当前SaaS应用的背景下,对于数据库产品的监控方式多种多样。针对Redis数据库的监控,我们可以从云平台监控、第三方监控工具和开源监控工具等多个角度进行考虑和实施。

2.1 云平台监控

对于公有云上的SaaS产品级别数据库,我们采用云平台提供的监控功能作为基础。由于云服务可能存在的故障和数据无价的重要性,我们需要多方面进行数据备份。云平台提供的监控指标可能有限,监控频率也不一定满足需求。我们可以考虑使用自定义监控来扩展监控指标,并联系云服务提供商缩短监控频率等。例如,在阿里云等云平台中,可以通过自定义监控来增强对Redis数据库的监控能力。展示腾讯云和阿里云的Redis监控图以供参考。

2.2 第三方监控工具

除了云平台提供的监控功能外,还有许多成熟的第三方监控工具可供选择。例如安畅网络的SmartEye和监控宝等。这些工具提供了丰富的服务监控类型,包括常用应用和数据库监控。它们为运维人员提供了完善的服务监控指标,并具有多种安装方式、监控模式和告警策略。这些工具可以帮助我们更全面地了解Redis数据库的运行状态。

2.3 开源监控工具

服务器信息

当前Redis版本为3.2.10,运行在Linux 3.10.0-514.26.2.el7.x86_64操作系统上。服务器的标识信息是run_id: 0ee1ada5aa030118000d991c39564e41d504a3a5。Redis以独立(standalone)模式运行,监听端口为6379。服务器的运行时长已经超过了惊人的5095759秒,相当于约58天。LRU管理使用的时钟已运行了7308631分钟。Redis服务器进程ID为1755,使用gcc版本为4.8.5编译。配置文件的路径是/etc/redis.conf。

客户端信息

当前有4个客户端与Redis服务器连接。其中,没有客户端的输出列表过长或输入缓存过大的情况。如果有任何阻塞调用被阻塞的连接,我们会收到告警。

内存信息

Redis分配的内存总量为惊人的1366580712字节(约等于人类可读的格式下的约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于1.27G)。包括内存碎片在内的总内存使用量约为人类可读的格式下的约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于约等于 约等于 约等于是基于 Redis 内存的分配器的数据使用,实际峰值已经达到了人类可读的格式下的 约等于是基于 Redis 内存的分配器的数据使用峰值(即人类可读的格式下的 约等于是基于 Redis 内存的分配器的数据使用)。整个系统的内存总量约为人类可读的格式下的 约等于是基于系统的内存总量(即人类可读的格式下的 约等于是基于系统的内存总量)。Lua引擎使用的内存非常小,只有大约人类可读的格式下的 约等于是基于 Lua引擎使用的内存大小。Redis的内存策略是noeviction,内存碎片率为1.17,表示Redis已使用swap分区,需要注意。Redis使用的内存分配器是jemalloc-3.6.0。深入了解Redis持久化与性能统计信息

持久化状态概览

RDB持久化:

+ `loading`: 标志值,表示服务器是否正在载入持久化文件。当前值为0,说明没有载入操作。

+ `rdb_changes_since_last_save`: 自上次成功创建持久化文件以来,经过了多少秒。当前值为5270,意味着在这段时间内有许多数据变更。

+ `rdb_bgsave_in_progress`: 标志值,表示服务器是否正在创建RDB文件。当前为0,表示没有后台保存操作正在进行。

+ `rdb_last_save_time`: 最近一次成功创建RDB文件的UNIX时间戳,为1534035237。

+ `rdb_last_bgsave_status`: 记录最近一次创建RDB文件的结果,当前为“ok”,表示成功。

+ `rdb_last_bgsave_time_sec` 与 `rdb_current_bgsave_time_sec`: 分别记录最近一次创建RDB文件所耗费的时间以及当前创建操作已耗费的时间。

AOF持久化:

+ `aof_enabled`: 标识Redis是否开启了AOF日志。

+ `aof_last_rewrite_time_sec` 与 `aof_current_rewrite_time_sec`: 记录创建AOF文件所耗费的时间。

+ `aof_last_bgrewrite_status` 与 `aof_last_write_status`: 记录最近一次AOF文件创建或写操作的结果,当前均为“ok”,表示成功。

性能统计信息深度解析

连接与命令处理:

+ `total_connections_received`: 服务器已接受的连接请求数量,为14133。

+ `total_commands_processed`: 服务器已执行的命令数量,高达7477479089次。

+ `instantaneous_ops_per_sec`: 每秒钟服务器执行的命令数量,当前为271。

网络流量:

+ `total_net_input_bytes` 与 `total_net_output_bytes`: 分别表示Redis的网络入口和出口流量字节数。

+ `instantaneous_input_kbps` 与 `instantaneous_output_kbps`: 表示Redis网络入口和出口的实时KBPS速率。

拒绝的连接请求:

+ `rejected_connections`: 因为最大客户端数量限制而被拒绝的连接请求数量,当前为0。

键的命中与过期:

+ `expired_keys`: 因为过期而被自动删除的数据库键数量,高达61703692个。

+ `keyspace_hits` 与 `keyspace_misses`: 分别表示请求键的命中与未命中次数。这对于评估缓存命中率至关重要。

其他统计信息: 包括pubsub频道数、模式数以及fork操作的耗时等,都为管理员提供了关于Redis性能的深入洞察。

数据监控与Redis状态报告:从细节洞察性能表现

一、监控基础指标概览

对于运行中的Redis服务器,了解其关键性能指标至关重要。这些指标不仅揭示了服务器的运行状态,还为我们提供了优化和调整的依据。以下是关键指标的简要概述:

复制信息:了解主从复制的状态,如角色(master或slave)、连接的slave数量以及复制偏移量等。这对于分布式系统尤为重要。

CPU使用情况:系统CPU和用户CPU的使用情况,以及子进程的CPU消耗。这些指标能反映Redis服务器的负载和性能表现。

集群状态:是否启用了集群功能,这对于高可用性、可扩展性和容错性至关重要。

数据库状态:键的数量、有过期时间的键的数量以及平均TTL(生存时间)。这些指标帮助我们了解数据库的健康状况和负载情况。

二、脚本截取与监控实现

为了更有效地监控这些指标,我们可以编写脚本进行自动化监控。以下是一个简单的bash脚本示例,用于获取特定Redis指标的监控数据:

```bash

!/bin/bash

-------------------------------------------------------------------------------

REDIS监控脚本示例

REDIS_CLI_COMMAND="redis-cli"

REDIS_HOST="172.x.x.x"

REDIS_PORT="6379"

ARGS=1

if [ $ -ne "$ARGS" ]; then

echo "请输入一个参数:"

exit 1

fi

case $1 in

connected_clients)

result=$( $REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "connected_clients" | awk -F':' '{print $2}' )

echo "当前连接的客户端数量: $result" ;;

used_memory_rss)

result=$( $REDIS_CLI_COMMAND -h $REDIS_HOST -p $REDIS_PORT -a 'password' info | grep -w "used_memory_rss" | awk -F':' '{print $2}' | awk -F'G' '{print $1}' )

echo "Redis内存占用: $result ..."

可以根据需求添加更多监控项,如CPU使用情况、复制状态等...;;

文章来自《钓虾网小编|www.jnqjk.cn》整理于网络,文章内容不代表本站立场,转载请注明出处。

本文链接:https://www.jnqjk.cn/quanzi/162830.html

AI推荐

Copyright 2024 © 钓虾网 XML 币安app官网

蜀ICP备2022021333号-1