redis运维:监控指标体系与性能问题分析

前言

redis 用起来简单,出问题时排查难。这篇从监控指标体系和性能问题分析两个维度整理运维要点,指标是日常巡检的眼睛,排查手段是出事时的手术刀。

一、监控指标体系

redis 的监控指标可以分为五大类。

1. 性能指标(Performance)

Name Description
latency Redis 响应一个请求的时间
instantaneous_ops_per_sec 平均每秒处理请求总数
hit rate (calculated) 缓存命中率(计算出来的)

2. 内存指标(Memory)

Name Description
used_memory 已使用内存
mem_fragmentation_ratio 内存碎片率
evicted_keys 由于最大内存限制被移除的 key 的数量
blocked_clients 由于 BLPOP、BRPOP 或 BRPOPLPUPUSH 而被阻塞的客户端

3. 基本活动指标(Basic activity)

Name Description
connected_clients 客户端连接数
connected_slaves slave 数量
master_last_io_seconds_ago 最近一次主从交互之后的秒数
keyspace 数据库中的 key 值总数

4. 持久性指标(Persistence)

Name Description
rdb_last_save_time 最后一次持久化保存磁盘的时间戳
rdb_changes_since_last_save 自最后一次持久化以来数据库的更改数

5. 错误指标(Error)

Name Description
rejected_connections 由于达到 maxclient 限制而被拒绝的连接数
keyspace_misses key 值查找失败(没有命中)次数
master_link_down_since_seconds 主从断开的持续时间(以秒为单位)

二、监控方式与工具

常用工具:redis-benchmark、redis-stat、redis-faina、redislive、redis-cli、monitor、slowlog。

……

阅读全文

Linux木马排查与入侵实战案例

前言

在日常繁琐的运维工作中,对 linux 服务器进行安全检查是一个非常重要的环节。这篇整理如何检查 linux 系统是否遭受了入侵,以及几次真实的入侵处置过程。与应急响应手册配合食用更佳。

一、是否入侵检查(排查清单)

1)检查系统日志

1
2
# 检查系统错误登录日志,统计IP重试次数(last 查看系统登录日志,比如系统被 reboot 或登录情况)
last

2)检查系统用户

……

阅读全文

redis日常使用的一些建议

前言

最近处理了几起redis不安全的阿里云服务器,总结下一些建议

1、安全建议

1.1、设置bind

默认bind 0.0.0.0是默认值,相当于不设防

1
2
3
bind 0.0.0.0
建议修改成链接端的IP,比如
bind 192.168.100.101

1.2、设置auth

默认是不设置密码,相当于不需要密码和鉴权就可以访问

1
2
3
requirepass foobared
建议开启密码访问,并且不能设置弱口令密码,比如
requirepass Admin9527#&@ekd452

1.3、设置port

默认是6937,容易被扫描到

1
2
3
port 6379
建议修改默认端口,比如
port 36379

1.4、设置config

检查config这2个文件设置的值是否自己设置的值

……

阅读全文

logrotate日志切割

前言

无意间找到nginx下的日志切割组件,比以前用脚本每日备份好多了,研究了一番用法

1、关于日志切割

  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。
  logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。

……

阅读全文

mysql实用三则:数据字典SQL、prompt配置与字符集乱码

前言

三个 mysql 日常高频小技巧:给新库整理数据字典、连接多个实例时防止在错误的库上执行 SQL、以及老库字符集不一致导致查询乱码的处理。

一、用 information_schema 生成数据字典

接手一个没有文档的数据库时,用 information_schema 可以一键导出数据字典。

1. 查询库下所有表

1
2
3
4
5
SELECT
  t.table_name 表名,
  t.table_comment 表说明
FROM information_schema.TABLES t
WHERE table_schema = 'your_db';

2. 查询字段明细

……

阅读全文

springboot cli&springcloud cli简单介绍

前言

尝试了下springboot cli和spring cloud cli 命令,整理了下参数和创建项目的介绍

1、下载

1.1 下载springboot cli安装包

官方介绍:https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.system-requirements

注意:

需要核对版本支持的jdk、maven、gradle、springboot版本,不能过于追求最新版本,比如springboot3.0.0.M1就只支持jdk17

……

阅读全文

vmstat介绍

前言

vmstat是virtual memory statistics 的缩写,它是Linux下一个非常有用的监控工具,除了内存之外,还提供 块 IO、CPU 时间 等额外的信息

1、语法

vmstat 命令的执行不需要特殊的权限,普通用户就可以执行,其语法形式如下

1
vmstat [options] [delay [count]]

delay 表示数据更新间隔,单位是秒,如果没有指定此值,表示系统启动以来的平均时间,而且此时只输出一次结果
count 表示输出次数,如果没有指定该值,但是指定了 delay 的值,则表示无限次

……

阅读全文

挖矿病毒4-容器挖矿病毒清理

前言

1月26日,运维同学收到告警邮件,告诉我某台测试服务器中了挖矿病毒,心想怎么最近挖矿这么猖狂…

1、分析准备

仍然下载是busybox

1
2
3
4
wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox 
chmod +x busybox
cp busybox /usr/bin 
busybox  top

2、按步骤排查

剩余步骤跟挖矿病毒2-分析和排查思路一样,只是所有的命令前面是 busybox command
不过这次是容器挖矿,ECS 排查步骤仍然走一遍,但是没啥收货,但是恶意进程还是可以找到的

……

阅读全文

挖矿病毒3-分析和清理过程

前言

1月23日,公司邮箱收到说阿里云报了挖矿病毒的警告

1、分析

这次思路改进了些,起初有个只是定时任务没被清理,阿里云通过定时任务关键字"pool.minexmr.com:4444"报了蠕虫病毒,但是根据关键字查看,这像挖矿
然后 top 了半天没看到结果,怀疑是top被篡改了?然后进了/usr/bin/核对下 top 的时间,发现没差异呀,但是本着稳妥起见,还是下载 busybox

……

阅读全文

OTP动态口令:原理与java实现

前言

对外网开放的后台管理系统,只用静态口令认证有几个先天问题:用户为了好记会选有特征的密码、明文传输时可被截获、内部人员能拿到密码冒用。OTP(One-Time Password,一次性密码/动态口令)是最容易落地的双因素认证增强手段,这篇整理它的原理和一套 java 实现方案。

一、静态口令的风险

  1. 便于记忆的密码往往有特征,容易被猜测和爆破
  2. 非加密传输时认证信息可被直接截获
  3. 合法授权者(包括内部人员)可以复制密码冒用,事后无法追责

静态口令从根本上无法确定「现在操作的人就是账户本人」。

……

阅读全文

最近文章

分类

标签

其它