**✅ Debian 13(Trixie)服务状态 + 日志巡检完整指南** Debian 13 使用 **systemd** 作为初始化系统,以下是运维日常**服务巡检**和**日志巡检**的标准做法。 ### 1. 服务状态巡检(最常用命令) #### **核心命令** ```bash # 1. 查看所有服务状态(推荐) systemctl list-unit-files --type=service | grep -E 'enabled|disabled|running' # 2. 查看正在运行的服务(最常用) systemctl --type=service --state=running # 3. 查看所有失败/异常的服务(重点关注!) systemctl --failed # 4. 查看某个具体服务的状态(示例) systemctl status nginx systemctl status docker systemctl status mysql systemctl status redis-server ``` #### **常用快捷组合** ```bash # 一条命令看关键信息 systemctl list-units --type=service --state=running,failed # 查看开机自启动的服务 systemctl list-unit-files --type=service | grep enabled # 重启/启动/停止服务 systemctl restart nginx systemctl start docker systemctl stop redis systemctl enable nginx # 开机自启 systemctl disable nginx # 取消开机自启 ``` --- ### 2. 日志巡检(journalctl) Debian 13 默认使用 **journalctl** 管理日志(比传统 `/var/log/` 更强大)。 #### **常用日志查看命令** ```bash # 1. 查看最近的系统日志(最常用) journalctl -xe # 最后几行重要日志 + 错误提示 # 2. 查看某个服务的日志(重点!) journalctl -u nginx -xe journalctl -u docker -xe journalctl -u mysql -xe # 3. 实时跟踪日志(类似 tail -f) journalctl -u nginx -f journalctl -u frappe-bench -f # 你的 Frappe 项目 # 4. 查看今天/昨天的日志 journalctl --since "today" journalctl --since "yesterday" journalctl --since "2026-05-12 08:00" --until "2026-05-12 12:00" # 5. 只看错误和更严重的日志 journalctl -p 3 -xe # priority 3 及以上(error + crit + alert + emerg) # 6. 清空旧日志(释放空间) journalctl --vacuum-time=2weeks # 保留2周日志 journalctl --vacuum-size=500M # 限制日志总大小 ``` #### **传统日志文件补充查看** ```bash tail -n 100 /var/log/syslog tail -n 50 /var/log/auth.log # 登录相关 tail -f /var/log/nginx/error.log # Nginx 错误日志 ``` --- ### 3. 完整巡检流程(推荐每天执行顺序) ```bash # ==================== 日常巡检 Checklist ==================== # 1. 系统基本信息 uptime free -h df -hT who # 2. 服务状态检查 systemctl --failed # ← 重点!有输出就要处理 systemctl --type=service --state=running | head -30 # 3. 重要服务单独检查 for svc in nginx docker mysql redis mariadb supervisor; do echo "=== $svc ===" systemctl is-active $svc && echo "OK" || echo "FAILED" done # 4. 日志检查 journalctl --failed -xe # 失败服务的日志 journalctl -p 3 -xe --no-pager # 最近错误日志 # 5. 资源占用前10的进程 ps aux --sort=-%cpu | head -11 ps aux --sort=-%mem | head -11 ``` 你可以把上面内容保存成一个脚本 `check.sh`,每天执行一次。 --- ### 4. 实用技巧(Debian 13 专用) - **查看开机启动耗时**: ```bash systemd-analyze systemd-analyze blame # 哪个服务启动最慢 ``` - **查看服务依赖**: ```bash systemctl list-dependencies nginx ``` - **重置失败状态**: ```bash systemctl reset-failed ``` --- **针对你当前环境(Frappe + Docker + Nginx)的重点巡检命令**: ```bash systemctl status nginx systemctl status docker journalctl -u nginx -xe journalctl -u docker -xe --no-pager journalctl -u supervisor -xe # Frappe worker 通常由 supervisor 管理 ``` --- **需要我给你**: 1. 一键巡检 Shell 脚本(带颜色输出 + 自动告警) 2. 针对 Frappe/ERPNext 的专项巡检命令 3. 如何把日志推送到企业微信/钉钉/邮件 **✅ 好的,我来逐张给你详细解释这些命令的输出含义,以及实际运维意义。** --- ### **第一张图:`systemctl --type=service --state=running`** ```bash 1panel-agent.service loaded active running 1Panel(开源服务器面板) 1panel-core.service loaded active running 1Panel 主服务 avahi-daemon.service loaded active running mDNS 服务(局域网发现) bluetooth.service loaded active running 蓝牙服务 ``` **解读**: - 当前系统**正在运行**的几个服务。 - **1Panel** 是你安装的服务器管理面板(类似宝塔面板的开源替代品),它有两个服务在运行,这是正常的。 - `avahi-daemon` 和 `bluetooth` 在服务器上通常**不需要**,属于多余服务(尤其蓝牙)。 **建议**: - 如果是纯服务器,推荐禁用蓝牙和 avahi: ```bash systemctl disable --now bluetooth avahi-daemon ``` --- ### **第二张图:`systemctl --failed`** ```bash ● snap.headscale.headscaled.service loaded failed failed Service for snap application headscale.headscaled ``` **解读**: - 系统目前**存在一个失败的服务**:`snap.headscale.headscaled.service` - **headscale** 是 Tailscale(内网穿透工具)的开源服务端。 - 这个服务因为某种原因启动失败了(可能是配置问题、依赖缺失、端口冲突等)。 **处理建议**: ```bash # 查看具体失败原因(最重要) systemctl status snap.headscale.headscaled.service -xe # 查看日志 journalctl -u snap.headscale.headscaled.service -xe # 如果不需要这个服务,可以直接禁用 systemctl disable --now snap.headscale.headscaled.service snap remove headscale # 如果完全不用 ``` --- ### **第三张图:`systemctl list-unit-files --type=service | grep enabled`** ```bash 1panel-agent.service enabled 1panel-core.service enabled accounts-daemon.service enabled anacron.service enabled zerotier-one.service enabled ← 你的 Zerotier 内网穿透服务 ``` **解读**: - 这些服务**开机自动启动**(enabled)。 - 你目前启用了 **1Panel**、**Zerotier**(zerotier-one)、定时任务(anacron)等。 **运维意义**: - 定期检查这个列表,可以发现哪些服务在开机自启。 - 如果看到不认识的服务,建议调查一下。 --- ### **第四张图:混合命令输出** #### 1. `systemctl list-unit-files --type=service | grep -E 'enabled|disabled|running' | tail -2` - 显示最后两个服务:`zerotier-one` 和 `zabbix-agent`?(zerotier-one 已启用) #### 2. `tail -n 10 /var/log/syslog` 和 `/var/log/auth.log` - 尝试查看传统日志,但 `auth.log` 不存在(Debian 13 很多日志已整合到 journal 中)。 #### 3. `tail -f /var/log/nginx/error.log` **重要发现**: ```bash 2026/05/12 00:38:01 [error] 978#978: *153 directory index of "/var/www/letsencrypt/" is forbidden ``` - **Nginx 报错**:有人(IP: 192.168.31.x)访问 `/.well-known/acme-challenge/` 或 letsencrypt 目录时,被禁止列出目录。 - 这通常是 **Let's Encrypt 证书续期** 时出现的正常或半正常错误。 #### 4. `systemd-analyze` - 系统启动总耗时 **8.043 秒**(kernel + userspace),属于**非常快**的水平,启动性能良好。 #### 5. `systemctl list-dependencies nginx` - 显示 nginx 依赖的几个底层服务(mount、swap 等),用于排查 nginx 启动问题。 --- ### **当前系统服务 & 日志总体评估** **优点**: - 1Panel 运行正常 - 系统启动快 - Zerotier 正常启用 **存在的问题**: 1. **snap.headscale 服务失败**(需处理) 2. Nginx 有 letsencrypt 目录索引禁止的错误(可优化) 3. 部分不必要服务(如 bluetooth)在运行 --- **推荐你接下来执行的命令**(复制粘贴执行): ```bash # 1. 查看失败服务的详细原因 systemctl status snap.headscale.headscaled -xe # 2. 查看最近所有错误日志 journalctl -p 3 -xe --no-pager # 3. Nginx 详细状态 systemctl status nginx journalctl -u nginx -xe # 4. 清理不必要服务(可选) systemctl disable --now bluetooth avahi-daemon ``` --- 想让我帮你**重点分析某个服务**(比如 headscale 或 nginx),还是需要我给你一个**完整的每日服务+日志巡检脚本**?直接告诉我下一步怎么做!