云服务器 /var/log 目录大小评估
Linux 服务器日志管理与排查笔记
1. 云服务器 /var/log 目录大小评估
对于 2核2G 的云服务器(系统盘通常 40-50GB):
| 状态 | 占用大小 | 说明 |
|---|---|---|
| ✅ 健康 | < 500MB | 日志轮转正常 |
| ⚠️ 注意 | 500MB - 1GB | 需要关注,建议检查 |
| ❌ 危险 | > 2GB | 必须立即处理,可能服务异常 |
2. 日志分析与排序命令
按文件大小排序
# ls 方式(仅当前目录)
ls -lhS /var/log # 降序(大→小)
ls -lhSr /var/log # 升序(小→大)
ls -lhSa /var/log # 包含隐藏文件
# du + sort 方式(包含子目录)
du -sh * | sort -rh # 当前目录下所有项目
du -ah /var/log | sort -rh | head -20 # 递归查找大文件
# find 查找大文件
find /var/log -type f -size +100M -exec ls -lh {} \;journalctl 常用命令
journalctl --disk-usage # 查看 journal 占用空间
journalctl -n 100 # 查看最近100条日志
journalctl -f # 实时追踪日志
journalctl -u ssh # 查看特定服务日志
journalctl -k # 查看内核日志
journalctl --since "10 minutes ago" # 时间过滤
journalctl -p err # 只看错误级别
journalctl --vacuum-size=200M # 清理到指定大小
journalctl --vacuum-time=7d # 保留最近7天3. systemd journal 日志 (/var/log/journal)
包含的日志类型
| 类别 | 说明 |
|---|---|
| 内核日志 | 硬件识别、驱动加载、文件系统错误等 |
| 系统服务日志 | SSH、Nginx、MySQL 等服务的 stdout/stderr |
| Syslog 日志 | 传统 syslog() 函数记录的日志 |
| 核心转储与审计 | 程序崩溃记录、安全审计事件 |
| 用户日志 | 各用户的活动记录 |
journal 配置(持久限制)
编辑 /etc/systemd/journald.conf:
[Journal]
SystemMaxUse=200M # 限制最大占用 200MB重启服务:
sudo systemctl restart systemd-journald4. 传统日志与 systemd 日志的区别
| 特性 | 传统日志 | systemd日志 |
|---|---|---|
| 核心命令 | last, lastb, dmesg | journalctl |
| 存储位置 | /var/log/wtmp, /var/log/btmp | /var/log/journal/ |
| 文件格式 | 明文 | 二进制(需 journalctl 读取) |
| 主要用途 | 用户登录/注销记录 | 全面系统日志 |
注意:lastb读取的是/var/log/btmp,不从/var/log/journal读取。
5. boringproxy 日志说明
- boringproxy:内网穿透工具(类似 frp、ngrok),不是病毒
- 日志中打印大量帮助信息是因为参数错误(如
-http-port 0.0.0.0:8080应改为-http-port 8080) - 与 frps 无直接关系,两者是独立的内网穿透工具
6. 服务器日志正常状态判断
正常日志特征
- 没有
ERROR、FATAL级别日志 - CRON 定时任务正常执行
- 服务返回 200 状态码
- 容器正常创建/销毁
你服务器上的服务说明
| 服务 | 说明 |
|---|---|
lychee | 定期检查定时任务,输出 "No scheduled commands are ready to run" 属于正常 INFO |
CRON + stargate.lock | 腾讯云监控组件,正常行为 |
podman | 容器生命周期管理,正常 |
caddy | 反向代理,warn 级别可忽略 |
typecho | 博客程序,访问日志由 Web 服务器产生 |
7. Typecho 访问日志处理
Typecho 本身不产生 INFO 级别的访问日志,这些日志来自 Web 服务器(Nginx/Caddy/Apache)。
Nginx 关闭访问日志
# 在 server 块中
access_log off; # 直接关闭
# 或注释掉原有配置
# access_log /var/log/nginx/your-domain.access.log;重载配置:
sudo nginx -t
sudo systemctl reload nginxCaddy 调整日志级别
{
log {
level WARN # 过滤 INFO 级别
}
}8. Podman Compose 日志配置
logging 驱动类型
| 驱动 | 说明 | 适用场景 |
|---|---|---|
journald | (Podman 默认)发送到 systemd-journald | 统一用 journalctl 查看 |
k8s-file | JSON 格式写入普通文件 | 兼容 K8s 生态 |
json-file | Docker 默认驱动的别名 | 兼容 Docker 配置 |
none | 完全禁用容器日志 | 临时任务、无日志需求 |
passthrough | 直接传递到客户端 | 调试用途 |
配置示例
version: '3'
services:
typecho:
image: your-typecho-image
logging:
driver: journald # 或 k8s-file / json-file / none
# options: # 仅 k8s-file/json-file 支持
# max-size: "10m" # 单文件最大 10MB
# max-file: "3" # 最多保留 3 个文件查看容器日志
podman-compose logs # 查看所有日志
podman-compose logs -f typecho # 实时追踪特定服务9. 常用运维命令速查
# 磁盘使用
df -h # 查看磁盘分区使用率
du -sh /var/log # 查看日志目录总大小
# 日志查看
journalctl -n 100 # 最近100条
journalctl -f # 实时追踪
journalctl -u sshd --since today # 今日 SSH 日志
# 进程管理
ps aux | grep nginx # 查看进程
systemctl status docker # 查看服务状态
systemctl restart nginx # 重启服务
# 网络相关
ss -tlnp # 查看监听端口
netstat -i # 查看网络接口统计