服务器架构

服务器系统为Centos7

首先需要知晓系统的对外的架构

一般架构:

1.域名—>云服务器(ECS)

2.域名—>CDN—>云服务器(OSS)

3.域名—>CDN—>云服务器ECS+数据库RDS+缓存Redis

4.域名—>CDN—>负载均衡—>云服务器ECS+数据库RDS(主从)+缓存Redis

5.域名—>CDN–>WAF防火墙—>负载均衡—>云服务器ECS+数据库RDS(主从)+缓存Redis

再根据实际情况出现的问题,一步步排查。

发现问题

一、发现问题

首先发现问题,及时确定哪个服务出现问题,以便方便快速定位问题。查找对应的域名和设备

Zabbix监控发钉钉告警

阿里云监控告警短信

【阿里云】尊敬的***,云监控-云数据库RDS版<华南1(深圳)-*****-只读>于<09:54>发生报警,CPU使用率(91.88>=80),持续时间4分钟

3.shell脚本邮件告警

4.其他同事

客服、市场同事等钉钉、电话报告出现的问题

二、快速定位问题

网络带宽(CDN是否异常)

域名是否解析到源站

登录阿里云CDN后台查看相应流量

负载均衡

检查负载均衡是否正常运行,是否流量异常

应用层服务器

ECS服务器负载是否正常、cpu、内存负载是否过高,硬盘使用率是否达到100%等

缓存服务器

redis服务器负载是否正常、内存使用率如何

数据库服务器

数据库连接数是否正常

列出当前用户的所有连接信息;

show full processlist;

杀进程,时长消耗太长的sql进程

select concat('kill ', id, ';') from information_schema.processlist where command != 'Sleep' and time > 2*60 order by time desc;

让将sql语句发给后端研发分析

远程连接服务器

问题:CPU高,负载高,访问慢(数据库正常)

系统层面

查看负载

查看负载、CPU、内存、上线时间、高资源进程

# top
安装: yum -y install htop
# htop

查看top服务器负载,内存消耗,df -h查看硬盘

top
df

查看nginx日志

如果有nginx日志,进入nginx日志目录

按照日志大小排列

判断日志访问、相应时长,url等

cd /data/wwwroot/log
ll -Srh
tail -f XXX.XXX.COM-access.log
分析日志,找出最多的IP日志、最多的URL等
GoAccess 、ELK后台查看日志

查看磁盘使用情况

df -h

查看磁盘当前情况

iostat -x -k 3 3
avg-cpu:  %user   %nice %system %iowait  %steal   %idle3.70    0.00    2.25    0.41    0.00   93.64Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.01     0.83    0.30    1.48    11.34    12.13    26.30     0.01    6.15    7.41    5.89   0.24   0.04
vdb               0.00     0.17    0.02    0.28     0.08     2.75    19.15     0.00    3.22    2.01    3.29   0.26   0.01
vdc               0.10     0.84    3.09    0.56   105.22    20.57    68.94     0.02    7.96    3.29   33.74   1.33   0.49如果发现当前磁盘忙碌,则查看是哪个 PID 在忙碌:
安装 yum install -y iotop
# iotop -o -P -k -d 5

查看对外服务和端口

# netstat -tunpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:62920           0.0.0.0:*               LISTEN      29177/vsftpd
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      4393/httpd
tcp        0      0 0.0.0.0:7300            0.0.0.0:*               LISTEN      4697/php-fpm: maste

查看 PID 具体在

安装  yum install lsoflsof -p PID
lsof -p 29177
lsof -p 4697

查看系统日志

tail -400f /var/log/messages
tail -f /var/log/messages
tail -n100 /var/log/messages
head -n100 /var/log/messages

查看简化线程树

pstree -a >> /root/pstree.log

网络问题

ping域名

ping www.XXX.com

查看网络节点情况

安装: yum install -y  traceroutetraceroute www.baidu.com

问题:CPU 低,负载高,访问慢(数据库)

判断的数据库

1.慢查询

检查慢查询日志,可能是慢查询引起负载高,根据配置文件查看存放位置:log_slow_queries

2.是否有系统瓶颈

升级系统cpu、内存、硬盘,

优化架构增加主从,一主多从等。

3.sleep连接是否过多

show full processlist;

4.查看最大连接数

查看设置的最大连接数
show variables like 'max_connections';
重新设置最大连接数
set GLOBAL max_connections=300

Nginx防护基本命令

如果有一些异常访问,可以加入配合阿里云的WAF。

访问最多真实用户的IP

cat www.XXXX.com-access.log |awk '{print $5}'| awk -F":" '{print $NF}' |sort|uniq -c|sort -nr|head -10

查看访问排行前10的url

cat  www.XXX.com-access.log | awk '{print $10}' | sort | uniq -c | sort -nr | head -n 10

执行时间最长10条

cat  www.XXX.com-access.log | sort -nr | head -n 10

查看http_referer来路:

cat www.XXX.com-access.log | awk -F"from:" '{print $NF}' |sort|uniq -c|sort -nr|head -10

封IP,查看特定的referer来源地址

服务器防火墙封ip

封IP段

/sbin/iptables -I INPUT -s 61.37.80.0/24 -j DROP
#屏蔽单个IP的命令是deny 123.45.6.7#封整个段即从123.0.0.1到123.255.255.254的命令deny 123.0.0.0/8

禁止特定用户代理(User Agents)访问

if ($http_user_agent ~* (wget|curl|Firefox) ) {
return 404;
}

特定的地址攻击做跳转

rewrite ^/accounts/\+\$str\+ http://127.0.0.1/ redirect;

根据 user_agent 控制客户端访问

location / {if ($http_user_agent ~ 'bingbot/2.0|MJ12bot/v1.4.2|Spider/3.0|YoudaoBot|Tomato|Gecko/20100315'){return 403;}}

图片防盗链

valid_referers none blocked *.XXX.com server_names ~\.google\. ~\.baidu\.;if ($invalid_referer) {# return 403;rewrite ^/ http://www.XXX.com/daoling.png;}

不允许host为localhost访问

if ($host = 'localhost') {return 403;}

不允许agent为空

if ($http_user_agent ~ ^$){return 403;}

不允许绑定host主机访问

if ($http_x_forwarded_for ~ ^$){return 402;}

Linux服务器故障排查基本方案相关推荐

  1. linux服务器无网络确认,Linux服务器故障排查实用指南

    [2013年3月25日 51CTO外电头条]由于造成网络问题的因素多种多样,因此网络故障排查技能就成了每位服务器或网络服务负责人必不可少的重要素质.Linux为我们提供了大量网络故障排查工具,在本文中 ...

  2. linux服务器网络不稳定,Linux服务器故障排查指南7:网络缓慢状况

    网络缓慢状况的故障排查 从某种角度来说,网络无法工作的问题更容易解决.当一台主机无法访问,我们可以执行前面讨论过的故障排查步骤直到一切恢复正常.但如果仅仅是网络缓慢,追查其根本原因往往变得更为棘手.本 ...

  3. 转:PHP网站在Linux服务器上安全设置方案

    PHP网站在Linux服务器上安全设置方案 本文总结了PHP网站在Linux服务器上一些安全设置(ps:还有一些设置给忘了),在<lnmp一键安装包>大多数参数已经包含,如果有什么更多的设 ...

  4. 如何在 Linux 服务器上更改分区方案?

    在 Linux 服务器上,分区方案对于数据存储和系统管理至关重要.当服务器的存储需求发生变化或者需要重新组织分区时,更改分区方案是一个常见的任务. 本文将详细介绍如何在 Linux 服务器上更改分区方 ...

  5. Linux启动故障排查和修复技巧

    一个执着于技术的公众号 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应对单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解此类问题的解 ...

  6. linux服务器指示灯,【转】明明白白你的Linux服务器——故障篇 | 旺旺知识库

    在Linux/unix服务器的维护过程中,遇到各种各样的问题:有的严重,有的很好解决,有的解决过程我就记录下来与大家分享下,希望能给大家带来帮助. 故障一. 今天早上来的第一件事,就是检查昨天晚上刚刚 ...

  7. Linux 系统启动故障排查和修复

    我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应用单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解此类问题的解决. (一)单用户模式 ...

  8. Linux网络故障排查

    1.网卡工具,服务器有多个网卡并且已经配置好运行当中,你却没记得eth0.eth1.eth2-分别对应的是哪个物理的网卡,此时可以使用如下命令: ethtool eth0 此时就会看到 eth0 对应 ...

  9. linux内存故障排查

    上周五,在测试的一台服务器上频繁出现系统内存不够,进程被kill的现象.原以为是开源软件或自研软件内存泄漏导致的,可查看内存信息发现很奇怪,一台16GB的机器,进程总共就占了不到6GB,但memfre ...

最新文章

  1. 基于FPGA系统合成两条视频流实现3D视频效果
  2. python数据结构与算法:队列与双端队列
  3. Theano3.3-练习之逻辑回归
  4. python项目-python项目
  5. python简单代码加法-Python tkinter实现简单加法计算器代码实例
  6. 打印图片的属性和实现另存图片功能以及使用numpy
  7. 2020 最烂密码 TOP 200 大曝光,一不小心就中枪了
  8. CSDN又力推一优秀开源项目jeecg,跨时代重构精华版发布
  9. 使用 jQuery Mobile 与 HTML5 开发 Web App (八) —— jQuery Mobile 工具栏
  10. 计算机多媒体专业是什么专业,什么是计算机多媒体技术
  11. 联创宽带上网助手协议的简单分析(一)start包和off包
  12. 根据前序序列创建二叉树
  13. 一位38岁被裁技术经理的忠告:在职场,这5件事越早做越好
  14. 用关键词搜索店铺列表详情
  15. pdf文件转换成jpg格式
  16. 台式机安装ubuntu 双系统(踩坑)
  17. java javascript数组_浅谈javascript和java中的数组
  18. 双向长短期记忆网络模型_基于深度双向长短期记忆网络的空气质量预测方法与流程...
  19. 静态代码分析工具汇总
  20. 大事件!全球顶级院士科学家齐聚阿里巴巴

热门文章

  1. 【转】Google 的秘密- PageRank 彻底解说 中文版
  2. javaSE常用类(二)—— 日期类
  3. 【微信小程序】提示框、选择框、选择菜单
  4. 中小企业ERP——“想说爱你不容易”
  5. 【白乔原创】写二十年的代码是一种什么样的体验?
  6. matlab.mat文件读取,matlab中mat文件的生成和读取
  7. springboot增加XSS跨站脚本攻击防护功能
  8. 《财经》2021“新奖”揭晓 奈雪的茶、元气森林、腾讯共获殊荣
  9. 【微信小程序支付功能】uniapp实现微信小程序支付功能
  10. Mysql异构数据方案Canal