运维工作中,遇到各种系统、网络、应用、数据库故障是常见的。为了帮助运维人员高效排查问题并快速修复,以下总结了50个常见的故障排查及修复技巧。
一、系统层面
- 检查系统日志:
-
技巧: 查看
journalctl
、/var/log
下的日志,找出问题线索。 -
修复: 根据日志内容,调整服务配置,重启服务。
- 高负载排查:
-
技巧: 使用
top
、htop
分析 CPU、内存和 I/O 的使用情况。 -
修复: 优化负载进程、调整优先级或增加资源。
- 内存泄漏排查:
-
技巧: 使用
free
、vmstat
查看内存使用,valgrind
分析进程内存使用。 -
修复: 重启进程,修复内存泄漏问题。
- 磁盘空间不足:
-
技巧: 使用
df -h
检查磁盘使用,du -sh
查找占用大量空间的文件。 -
修复: 删除不必要的文件,清理日志,扩容磁盘。
- 服务无法启动:
-
技巧: 使用
systemctl
查看服务状态,查阅相关日志。 -
修复: 检查依赖、配置文件错误,修复后重启服务。
- 内核参数调优:
-
技巧: 使用
sysctl
查看和调整系统内核参数。 -
修复: 优化 TCP 缓冲区、最大连接数等参数,提升系统性能。
- 进程崩溃:
-
技巧: 使用
dmesg
查看内核日志,分析进程崩溃原因。 -
修复: 排查资源耗尽、代码错误等问题,修复后重启进程。
- CPU瓶颈排查:
-
技巧: 使用
mpstat
、sar
检查 CPU 使用情况。 -
修复: 优化应用代码、调整负载均衡、增加 CPU 核心数。
- 文件系统问题:
-
技巧: 使用
fsck
检查文件系统错误。 -
修复: 在系统重启时运行
fsck
修复文件系统。
- 内存交换(swap)使用过高:
-
技巧: 使用
vmstat
检查 swap 使用情况。 -
修复: 增加物理内存,调整 swap 使用策略。
二、网络层面
- 网络连通性检查:
-
技巧: 使用
ping
、traceroute
检查连通性和路由问题。 -
修复: 修复网络配置,检查防火墙规则。
- 端口占用问题:
-
技巧: 使用
netstat
、ss
查看端口占用情况。 -
修复: 终止占用端口的进程或修改应用程序端口配置。
- 防火墙问题:
-
技巧: 使用
iptables
、firewalld
检查和调整防火墙规则。 -
修复: 修改防火墙规则,开放必要端口。
- DNS解析问题:
-
技巧: 使用
nslookup
、dig
查看域名解析情况。 -
修复: 检查本地 DNS 配置,更换 DNS 服务器。
- 网络拥塞:
-
技巧: 使用
iftop
、nload
分析网络流量。 -
修复: 限制大流量任务,优化网络拓扑或升级带宽。
- TCP连接超时问题:
-
技巧: 使用
netstat
或ss
检查 TCP 连接状态。 -
修复: 调整 TCP 超时参数,优化连接池配置。
- 带宽占用过高:
-
技巧: 使用
iftop
查看带宽使用情况。 -
修复: 限制带宽占用高的进程或用户,优化带宽分配。
- ARP冲突:
-
技巧: 使用
arp -a
查看 ARP 表冲突情况。 -
修复: 修正IP地址分配,避免冲突。
- MTU不匹配问题:
-
技巧: 使用
ping -M do -s
测试 MTU 配置。 -
修复: 调整 MTU 设置,匹配网络设备参数。
- SSL证书问题:
-
技巧: 使用
openssl
工具检查 SSL 证书状态。 -
修复: 更新或重新生成 SSL 证书。
三、应用层面
- 应用服务宕机:
-
技巧: 检查日志文件,查看崩溃前的记录。
-
修复: 优化服务配置或修复应用程序错误,确保服务稳定运行。
- 高并发引起的瓶颈:
-
技巧: 使用
netstat
、sar
检查并发连接数。 -
修复: 增加负载均衡节点,优化应用代码和数据库查询。
- 应用死锁:
-
技巧: 使用
strace
或gdb
调试进程,定位死锁问题。 -
修复: 修复代码逻辑,避免并发操作导致死锁。
- 应用启动慢:
-
技巧: 使用
strace
跟踪启动过程中的系统调用。 -
修复: 优化启动流程,减少加载时间。
- 应用日志过大:
-
技巧: 定期检查日志文件大小,使用
logrotate
进行日志轮转。 -
修复: 调整日志级别,定期清理日志。
- 应用端口冲突:
-
技巧: 使用
lsof
或netstat
查看端口占用情况。 -
修复: 释放被占用端口或修改应用的端口配置。
- 连接池耗尽:
-
技巧: 检查应用日志中的连接池耗尽错误。
-
修复: 调整连接池配置,增加连接数或优化数据库查询。
- 应用配置错误:
-
技巧: 检查配置文件中的参数设置,确保其正确性。
-
修复: 修正配置文件,重新加载服务。
- 应用超时问题:
-
技巧: 使用
curl
或ab
工具测试应用响应时间。 -
修复: 增加应用超时设置,优化数据库查询速度。
- 依赖服务不可用:
-
技巧: 使用
curl
或telnet
测试依赖服务的可用性。 -
修复: 检查依赖服务的运行状态,修复或重启服务。
四、数据库层面
- 数据库连接失败:
-
技巧: 检查数据库端口、用户权限和网络连通性。
-
修复: 修正权限问题或网络配置。
- 慢查询问题:
-
技巧: 使用
EXPLAIN
分析 SQL 查询的执行计划。 -
修复: 优化 SQL 查询,增加索引或进行分区。
- 数据库死锁:
-
技巧: 使用数据库的锁状态命令(如 MySQL 的
SHOW ENGINE INNODB STATUS
)。 -
修复: 优化事务处理,避免长时间锁定表。
- 数据库性能瓶颈:
-
技巧: 使用
mysqltuner
或数据库自带的性能监控工具。 -
修复: 增加数据库缓存,优化查询,升级硬件资源。
- 主从复制延迟:
-
技巧: 查看复制状态,检查主从同步情况。
-
修复: 优化主库的负载,增加从库数量或调整复制策略。
- 数据表锁定:
-
技巧: 使用
SHOW PROCESSLIST
或等效命令查看锁状态。 -
修复: 优化查询,减少大批量操作对数据库的影响。
- 数据库备份失败:
-
技巧: 检查备份日志,确认备份失败的原因。
-
修复: 增加存储空间或调整备份策略。
- 数据库磁盘 I/O 问题:
-
技巧: 使用
iostat
检查数据库的 I/O 使用情况。 -
修复: 使用 SSD 或增加 RAID 阵列,优化 I/O 性能。
- 表空间不足:
-
技巧: 使用
SHOW TABLE STATUS
查看表空间使用情况。 -
修复: 增加表空间,清理无用数据。
- 连接数过多:
-
技巧: 使用
SHOW STATUS
查看数据库连接数。 -
修复: 增加最大连接数或优化连接池管理。
五、安全与权限管理
- 权限错误导致无法访问:
-
技巧: 使用
chmod
、chown
修复文件或目录的权限。 -
修复: 调整权限设置,确保合理分配用户权限。
- SSH登录失败:
-
技巧: 检查
/var/log/auth.log
或journalctl
查看 SSH 登录失败原因。 -
修复: 检查 SSH 配置文件,调整防火墙规则。
- 系统防暴力破解:
-
技巧: 使用
fail2ban
等工具监控异常登录尝试。 -
修复: 配置自动封禁策略,保护服务器。
- 防火墙规则过于严格:
-
技巧: 使用
iptables
或firewalld
查看防火墙规则。 -
修复: 放行必要的端口,合理设置策略。
- 定期密码更换:
-
技巧: 设置定期密码策略,避免密码泄露。
-
修复: 强制用户定期更换密码。
- 日志审计:
-
技巧: 使用
auditd
审计用户操作日志。 -
修复: 定期审查日志,排查异常操作。
- 文件完整性检测:
-
技巧: 使用
tripwire
或aide
检查文件完整性。 -
修复: 发现异常后及时修复或报警。
- 应用漏洞扫描:
-
技巧: 使用
OpenVAS
或Nessus
扫描应用系统漏洞。 -
修复: 根据扫描结果修复漏洞,及时打补丁。
- 访问控制列表(ACL)管理:
-
技巧: 使用
setfacl
查看和调整文件 ACL。 -
修复: 设置合理的访问控制,防止越权访问。
- 日志轮转失败:
-
技巧: 检查
logrotate
配置文件,确保其正确性。 -
修复: 修改轮转策略,保证日志文件定期归档。
总结
这50个运维排查及修复技巧,涵盖了系统、网络、应用、数据库和安全管理等多个层面。通过熟练掌握这些技巧,运维人员可以快速定位故障,并采取有效的修复措施,确保系统的稳定性和安全性。
网络安全学习路线&学习资源
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!
本文转自 https://blog.csdn.net/Python_paipai/article/details/142548173,如有侵权,请联系删除。