lnmp - 线上环境故障排查流程 - 学习/实践

2023-10-28

1.应用场景

主要用于线上环境故障排查,记录整个流程,从而可以按部推进,定位问题,从而解决问题。同时也是为解决问题提供一个流程标准。

2.学习/操作

1.文档阅读

TBD

2.整理输出

环境

前端:

Web 应用

或者

App 应用

后端:
PHP -- 主要是PHP,JAVA/Python/Go应都是相同的,后端语言在提供服务方面宏观层面是没有差别的,有区别的只是微观层面。

2.1 lnmp线上环境故障排查流程

针对 lnmp(Linux + Nginx + MySQL + PHP)线上环境的故障排查流程如下:

  1. 确认故障现象:收集用户的反馈和系统告警信息,确认故障现象和发生时间,了解受影响的服务和应用。

  2. 确认系统基本信息:检查服务器的 CPU、内存、磁盘、网络等资源使用情况,确认系统版本、内核版本、软件版本等基本信息是否正常。

  3. 查看日志:通过查看系统、应用、Nginx、MySQL、PHP 等相关日志,找到异常信息并分析原因。

  4. 检查网络连通性:通过 ping、telnet、traceroute 等命令检查服务器之间的网络连通性,确认是否存在网络故障。

  5. 检查服务进程:通过 ps、top 等命令查看系统进程、服务进程的运行情况,确认服务是否正常运行。

  6. 检查服务配置:通过查看 Nginx、MySQL、PHP 等服务的配置文件,确认配置是否正确,并且是否存在被恶意修改的情况。

  7. 检查服务器安全:通过查看系统安全日志、系统用户、防火墙等信息,排查服务器是否存在安全问题。

  8. 联系供应商或者开发团队:如果以上步骤都无法解决问题,可以联系相关的供应商或开发团队,寻求专业技术支持。

  9. 解决问题并修复:根据以上步骤分析出的问题原因,采取相应的解决措施进行修复。

  10. 总结分析:将故障处理过程中的问题、解决方案、优化措施等进行总结和分析,为以后遇到类似问题提供参考。

针对开发维护人员,列出详细的故障排查流程

对于开发维护人员而言,更需要深入细致地排查故障,下面是一个详细的故障排查流程:

  1. 确认故障现象:先要明确故障现象,包括出现的时间、地点、相关应用、受影响的用户等。可以通过用户反馈、系统监控等方式进行确认。

  2. 收集数据:通过系统监控、日志分析、性能测试等方式,收集故障发生前后的各项数据,例如系统负载、网络流量、磁盘 IO、CPU 使用率、内存使用情况等等。

  3. 排查网络问题:使用 ping、traceroute、telnet 等工具检查网络连通性,确认网络是否正常。同时,检查网络设备的配置、日志等,查找可能存在的问题。

  4. 分析应用日志:通过分析应用日志,找出故障发生的原因,例如异常堆栈、报错信息、服务调用信息等等。需要注意的是,应用日志可能非常庞大,因此需要通过日志分析工具等方式进行快速定位。

  5. 检查数据库:对于涉及到数据库的应用,需要检查数据库的连接数、响应时间、慢查询等指标,同时查看数据库日志,确认数据库是否出现了异常。

  6. 检查服务进程:使用 ps、top、netstat 等命令检查服务进程是否正常运行,查找是否存在占用资源过高、异常退出等问题。

  7. 检查配置文件:检查应用程序的配置文件是否正确,特别是数据库、缓存、消息队列等配置是否与实际环境匹配,是否存在异常配置等问题。

  8. 检查环境变量:确认环境变量的设置是否正确,特别是 JAVA_HOME、PATH、CLASSPATH 等与应用运行相关的环境变量是否正确设置。

  9. 分析代码问题:如果以上步骤都无法找到问题所在,可能需要进一步分析代码问题,例如检查代码逻辑、排查线程问题、查找内存泄漏等等。

  10. 解决问题:根据以上分析,确定问题所在,采取相应的解决措施进行修复。

  11. 总结分析:对故障排查过程进行总结和分析,包括问题发现、解决方案、优化措施等,以便为以后遇到类似问题提供参考。同时,也需要将故障处理的经验和教训进行总结,提升自身的技术水平。

lnmp架构,开发维护人员 线上环境 故障排查流程详细步骤 // 还是很清楚,可操作的!!

对于开发维护人员而言,在 LNMP 架构下排查线上环境故障的步骤可以按照以下详细流程进行:

  1. 确认故障现象:明确故障的具体表现,例如网站访问异常、服务无法启动、数据不一致等等。可以通过用户反馈、系统监控等方式进行确认。

  2. 收集数据:收集故障发生前后的各项数据,例如系统负载、网络流量、磁盘 IO、CPU 使用率、内存使用情况等等,可以使用系统监控、日志分析、性能测试等方式进行数据收集。

  3. 检查 Nginx:首先检查 Nginx 是否正常运行,可以使用 systemctl 命令进行查看。如果 Nginx 异常,可以查看 Nginx 的日志文件 /var/log/nginx/error.log,找出错误原因。

  4. 检查 PHP-FPM:检查 PHP-FPM 是否正常运行,可以使用 systemctl 命令进行查看。如果 PHP-FPM 异常,可以查看 PHP-FPM 的日志文件 /var/log/php-fpm/error.log,找出错误原因。

  5. 检查 MySQL:检查 MySQL 是否正常运行,可以使用 systemctl 命令进行查看。如果 MySQL 异常,可以查看 MySQL 的日志文件 /var/log/mysql/error.log,找出错误原因。

  6. 检查代码:检查代码是否存在问题,例如 PHP 代码、MySQL 语句等等。可以通过日志分析、代码调试等方式找出问题所在,进行修复。

  7. 检查配置文件:检查配置文件是否正确,特别是 Nginx 配置、PHP-FPM 配置、MySQL 配置等。可以通过比较配置文件与实际环境的差异,找出配置问题所在,进行修复。

  8. 检查网络:检查网络是否正常,例如网络连接、DNS 解析、防火墙设置等。可以使用 ping、traceroute、telnet 等命令进行网络检查,找出问题所在,进行修复。

  9. 检查磁盘空间:检查磁盘空间是否足够,特别是 /var/log 目录下的日志文件是否过大。可以使用 df -h 命令查看磁盘使用情况,进行清理或扩容。

  10. 解决问题:根据以上步骤,确定问题所在,采取相应的解决措施进行修复。

  11. 总结分析:对故障排查过程进行总结和分析,包括问题发现、解决方案、优化措施等,以便为以后遇到类似问题提供参考。同时,也需要将故障处理的经验和教训进行总结,提升自身的技术水平。

后续补充

...

3.问题/补充

1. lnmp日志有哪些

LNMP(也称LEMP)是一种基于Linux、Nginx、MySQL/MariaDB、PHP的架构方案,一般会涉及到Nginx、PHP-FPM、MySQL/MariaDB等多个服务,这些服务都有对应的日志文件。

以下是LNMP日志的一些常见类型:

  1. Nginx日志:记录Nginx服务器的请求信息,包括访问日志(access log)和错误日志(error log)。
  2. PHP-FPM日志:记录PHP-FPM服务器的信息,包括请求信息和错误信息。
  3. MySQL日志:记录MySQL服务器的请求信息和错误信息,包括慢查询日志(slow query log)、错误日志(error log)等。
  4. 系统日志:包括系统级别的日志信息,例如调试信息、错误信息等,保存在/var/log目录下。常见的系统日志有:
    • kern.log: 记录内核消息和错误信息。
    • syslog: 记录系统级别的信息。
    • auth.log: 记录用户身份验证相关的信息。
    • messages: 记录系统事件相关的信息。

需要注意的是,日志文件的位置和设置方式会因为具体的LNMP版本和部署方式而有所不同,可参考各自软件官方文档或相关配置文件。

2. php-fpm日志与应用日志的区别

PHP-FPM 日志和应用日志是不同的,它们记录的内容和目的不同。

PHP-FPM 日志记录了 PHP-FPM 运行时产生的各种事件和错误,例如 PHP-FPM 的启动和关闭、请求的处理时间、进程池的扩展和缩减、进程崩溃等。PHP-FPM 日志可以用来诊断 PHP-FPM 的性能和健康状况,及时发现和排除 PHP-FPM 的问题,保障 PHP-FPM 的稳定运行。

应用日志记录了应用程序运行时产生的事件和错误,例如请求的处理时间、请求的参数、数据库操作、错误信息等。应用日志可以用来诊断应用程序的性能和健康状况,及时发现和排除应用程序的问题,提升用户体验和服务质量。

因此,PHP-FPM 日志和应用日志在内容和用途上存在区别,需要分别进行管理和维护。

在实际应用中,可以通过配置 PHP-FPM 和应用程序的日志路径和级别,以便更好地管理和分析日志信息。

4.参考

参见上面文档列表

后续补充

...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lnmp - 线上环境故障排查流程 - 学习/实践 的相关文章

  • java爬虫代码示例_Excel VBA 实战(8) - 巨潮资讯 VBA 爬虫

    2019年6月25日 更新 由于巨潮资讯查询API变更 此文章当中的所涉及代码也进行了相应更新 虽然原代码当前已经失效 但是爬虫的基本逻辑仍然适用 因此请没有相关基础的朋友们先行阅读此文 实战代码部分请移步至如下链接 杨风飒 Excel V
  • Spring data Jpa操作ES

    以下是使用Spring data Jpa操作ES的一些记录 在ElasticsearchRepository中我们可以使用Not Add Like Or Between等关键词自动创建查询语句 记住上面这句话 代码示例 public int
  • 【Linux】进程信号 -- 信号产生

    信号的旧识引入 信号引入 signal调用 系统调用向目标进程发送信号 模拟实现一个kill命令 raise给自己发送任意信号 abort给自己发送指定信号 6 SIGABRT 硬件异常产生信号 除0异常 野指针访问异常 软件条件产生信号
  • git: ‘remote-codecomit‘ is not a git command. See ‘git --help‘.

    git remote codecomit is not a git command See git help 是什么情况出现该错误 重复安装python后出现 做过的尝试 在谷歌百度各大网站上找寻没有发现跟我类似的情况 然后就是尝试重新安装
  • MQTT、CoAP 还是 LwM2M?主流物联网协议如何选择

    随着物联网技术的发展与普及 越来越多的智能设备具备了网络连接与数据传输能力 由于物联网场景复杂多样 设备端硬件条件 网络稳定性 流量限制 设备功耗以及设备连接数量等多方面因素造成物联网设备的消息传递与传统互联网场景有着很大不同 也因此产生了
  • SQLi LABS Less-35

    第三十五关注入点为 数值型 注入方式为 报错注入 此关卡通过 代码WAF 转义了单引号 我们使用 编译 绕过WAF 先上结果 id 1 and updatexml 1 concat 0x7e substr select group conc
  • qaz69.com forum.php,Eclipse Community Forums

    Originally posted by richkulp us NO SPAM ibm com This is a multi part message in MIME format 080707010607010307000006 Co
  • 尝试简单的Spigot插件开发, PowerItemCraft 武器增强插件 (Spigot开发笔记-2)

    文章目录 创建项目 插件功能蓝图 实现思路 1 指令模块 2 事件模块 3 插件中间层 3 1 主类的工作 3 2 如何解耦 完整插件 创建项目 根据 Spigot开发笔记 1 中的内容创建好项目 插件功能蓝图 匠魂mod中有一个随着使用会
  • 一文读懂JVM类加载机制过程及原理

    目录 一 做一个小测试 通过注释 标注出下面两个类中每个方法的执行顺序 并写出studentId的最终值 二 类的初始化步骤 三 看看你写对了没 四 类的加载过程 1 加载 2 链接 3 初始化 五 类加载器的分类 1 启动类加载器 引导类
  • CSS DIV大图片右上角叠加小图片

  • 10.使用Pandas进行数据与处理

    补充 10 1 NUMPY的基本使用方法 NUMPY是Python语言的一个扩充程序库 支持高级的数组和矩阵运算 10 1 1数组创建 import numpy as np a 1 2 3 4 5 创建简单的列表 b np array a
  • Python人脸识别考勤打卡系统

    Python人脸识别考勤打卡系统 如需安装运行环境或远程调试 可加QQ905733049 或QQ2945218359由专业技术人员远程协助 运行结果如下 主要代码 import random import cv2 import numpy

随机推荐