生产监控报警一:阿里云 RDS 监控报警
生产监控报警一:阿里云 RDS 监控报警
诸葛孔明亮 发表于1年前
生产监控报警一:阿里云 RDS 监控报警
  • 发表于 1年前
  • 阅读 38
  • 收藏 2
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 早上上班还在地铁上的时候,收到阿里云的报警提醒。

前言

    早上挤地铁的时候收到了阿里云的监控报警,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

 

共有 人打赏支持
粉丝 0
博文 63
码字总数 53931
×
诸葛孔明亮
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: