生产监控报警一:阿里云 RDS 监控报警

前言

    早上挤地铁的时候收到了阿里云的监控报警,RDS 的 CPU 的负载达到了 90%

 

排查

    因为是昨天晚上上的线,微信公众号也是在晚上才放出活动链接,当时也是考虑了可能会到来的使用量,把后台活动负载到了 3 台服务器,可是没想到竟然是 mysql 报出了告警。

 

    查看了数据库的使用量,发现总共有 3 w 多条的插入记录,而 CPU 的使用率确一直保持在 90% 不下来,正常情况下,2核4G 的一台 mysql 数据库不可能被这点插入量就给干趴下了,而且只是 CPU 的使用率特别高,内存的使用率确很少,问题可能出在 SQL 执行上面,部分 SQL 没有优化好导致的。

    百万级别的访问量才算是大数据,需要从架构的层面去考虑,3万的访问量并不需要在架构上优化,直连可能都可以顶住。

 

    看了下阿里云自带的 RDS 监控,里面的 SQL 执行记录,发现有几条 sql 的执行特别慢,每条语句执行的时间快 3 秒了,没有优化好。

检查了表结构,发现是缺少索引导致的,添加了索引,RDS 的CPU 这才恢复了正常。

 

当一张表的数据过大的时候,添加索引需要选择半夜用户量少的时候,因为百万级别的表添加索引可能需要 7、8个小时才能建好索引。

 

    一开始也怀疑了是遭到了攻击,后台想想是错的,因为生产的数据库是添加过白名单的,没有在白名单里面的 IP 是不可能操作数据库的。

 

简单防止 SQL 注入、DDoS 等攻击

    简单来说就是通过屏蔽攻击的 IP 地址来保护服务器。

    linux中iptables屏蔽指定ip及ip段。

    屏蔽某个 IP:

    iptables -I INPUT -s xxx.xxx.xxx.xxx -j DROP

    屏蔽指定 IP 段:

    iptables -I INPUT -s 192.168.0.0/24 -j DROP

 

转载于:https://my.oschina.net/u/2470065/blog/779054

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值