在第二篇大致说了四种问题处理的方案那么下面详细解释一下,排查问题并解决是一个运维工程师必备的能力,因为明明放着运行好好的可能突然就服务打出GG告诉你我死翘翘了。
1.查看服务状态确认是否运行
通过不同服务的安装方式来确认服务是否运行
(1)yum安装
一般centos系统大部分“基础“的服务都是yum安装就能实现顶多按个yum源后再安装,所以通过systemctl命令即可实现启动,停止,状态查看等操作
举例我通过yum安装了nginx后应该如何查看其的允许状态与怎么启动,重启,停止等操作
systemctl status 服务名
systemctl start 服务名
systemctl restart 服务名
systemctl stop 服务名
一般服务启动后通过systemctl status 服务名命令来查看服务运行状态即可 如果出现故障通常服务会死掉状态查看会出现dead,但是有时候你故障是服务运行中但是开发反馈服务就是不好使那么就需要更进一步排查
2.查看服务端口号确认运行的端口是否消失
netstat 命令,我一般是通过这个查看服务是否正在运行端口是否出现消失等而且也能通过这个命令来查看是否有服务正常连接到你的对应地址与端口
我一般是用 netstat -lntp 查看端口 netstat -lantp 查看地址连接
- 查看所有连接:
netstat -a - 查看监听的端口:
netstat -l - 显示 TCP 连接:
netstat -t - 显示每个连接的进程信息:
netstat -p - 显示路由表:
netstat -r - 显示详细信息:
netstat -v - 实时刷新显示:
netstat -c
-a 或 --all
显示所有的连接和监听端口(包括未建立连接的端口)。
-t
显示 TCP 协议的连接。
-u
显示 UDP 协议的连接。
-n
显示数字形式的地址和端口号,而不是尝试解析主机名和服务名。
-l
显示正在监听的端口。
-p
显示每个连接的进程ID和名称。
-r
显示路由表。
-i
显示网络接口的统计信息。
-s
显示网络统计信息,包括数据包的发送和接收情况。
-c
实时刷新显示结果(每秒更新一次)。
-v
显示详细信息,包括连接的更多细节。
-w
显示 TCP 的连接超时信息。
--tcp
显示 TCP 协议的连接。
--udp
显示 UDP 协议的连接。
3.查看服务进程确认该服务进程确实消失
上面两个都查看后通过ps 命令查看服务器的进程状态来看看你的服务进程是否死掉了,这有助于咱们对其进行问题的排查和解决。
- 查看所有进程:
ps -e或ps -A - 查看指定用户进程:
ps -u root - 查看详细信息:
ps -ef - 查看指定 PID:
ps -p 1234 -f - 自定义显示列并排序:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu
1. 显示格式相关
-e 或 -A
显示所有进程。
-f
显示完整格式,包括 UID、PPID、启动时间、命令等信息。
-l
显示长格式信息,包括优先级、进程状态等。
-o
自定义输出列,如 ps -eo pid,ppid,cmd,%mem,%cpu。
-u 用户名
显示指定用户的进程。
-p PID
显示指定 PID 的进程信息。
2. 选择与过滤
-a
显示终端上的所有进程(除会话首进程外)。
-x
显示没有控制终端的进程。
-U 用户名
显示属于某用户的进程。
--sort
按指定字段排序,如 %mem、%cpu、pid 等。
3. 进程状态相关
-u(格式化)
显示进程的用户、CPU、内存占用情况。
-r
显示正在运行的进程。
-s
显示会话信息(session)。
4.查看服务日志确认该服务是否有相关报错
这一步就是分析日志了,通过上面我们可以确认服务确实死亡了或者故障了,那么具体如何处理就需要根据日志来进行详细的查看,只有精准切入才能精准解决,这需要大量的实际问题处理经验
举例比如nginx服务 一般其的日志路径都会写在*.conf文件中会有具体路径你需要根据具体路径去查看日志的问题

被折叠的 条评论
为什么被折叠?



