Linux服务器日志主要有系统日志、安全认证日志、内核与启动日志、Web/数据库应用日志、计划任务日志、容器与审计日志等,常见目录是/var/log,使用systemd的机器还要看journalctl。
下面按“有哪些、怎么看、怎么查攻击、工具多少钱、保留多久”来拆,不同发行版路径有差异,但核心逻辑一致:先找日志文件,再用grep、tail、journalctl、ausearch等命令缩小范围。
Linux服务器日志有哪些?先认清六大类与默认路径
Linux日志不是只有一个文件,它分散在/var/log、/run/log、应用目录和容器目录中,先建立分类,排障时就不会乱翻。
系统通用日志
- /var/log/messages:RHEL、CentOS、Rocky Linux常见,记录系统级消息。
- /var/log/syslog:Debian、Ubuntu常见,功能类似messages。
- /var/log/kern.log:内核相关消息,驱动、硬件报错常在这里。
- /var/log/dmesg:启动时内核环形缓冲区,可用dmesg -T查看带时间戳版本。
安全认证日志
- /var/log/secure:RHEL系认证日志,SSH登录、sudo、su记录集中在此。
- /var/log/auth.log:Debian系认证日志,内容与secure对应。
- /var/log/audit/audit.log:auditd审计日志,记录系统调用、文件访问、用户登录等。
- /var/log/faillog、/var/log/lastlog:二进制登录失败与最后登录记录,用lastlog、faillog查看。
启动与计划任务日志
- /var/log/boot.log:启动过程输出,服务启动失败可先看它。
- /var/log/cron:crontab执行记录,排查定时任务是否跑过很关键。
- /var/log/anaconda/:安装器日志,系统安装异常时有用。
应用与Web日志
- /var/log/nginx/access.log、error.log:Nginx访问与错误日志。
- /var/log/httpd/access_log、error_log:Apache在RHEL系的位置。
- /var/log/apache2/access.log、error.log:Apache在Debian系的位置。
- /var/log/mysql/error.log、/var/log/mysqld.log:MySQL错误日志。
- /var/log/postgresql/:PostgreSQL日志目录。
包管理与邮件日志
- /var/log/yum.log、/var/log/dnf.rpm.log:RHEL系软件包操作记录。
- /var/log/apt/history.log、term.log:Debian系apt安装与终端输出。
- /var/log/maillog、/var/log/mail.log:邮件服务日志。
容器与Kubernetes日志
- /var/lib/docker/containers/-json.log:Docker默认容器日志。
- /var/log/pods/、/var/log/containers/:Kubernetes节点上常见路径。
- journalctl -u docker、journalctl -u kubelet:systemd管理的容器服务日志。
| 日志类型 | RHEL/CentOS/Rocky | Debian/Ubuntu |
|---|---|---|
| 系统消息 | /var/log/messages | /var/log/syslog |
| 认证安全 | /var/log/secure | /var/log/auth.log |
| 内核 | /var/log/dmesg、kern.log | /var/log/kern.log、dmesg |
| 计划任务 | /var/log/cron | /var/log/cron |
| 包管理 | /var/log/yum.log、dnf.rpm.log | /var/log/apt/history.log |
| Web | /var/log/nginx/、httpd/ | /var/log/nginx/、apache2/ |
Linux服务器日志怎么看:从/var/log到journalctl
先看文件是否存在,再看权限,最后用命令过滤,多数日志需要root或adm组权限。
- 实时查看:
tail -f /var/log/nginx/access.log - 分页跟踪:
less +F /var/log/syslog,按Ctrl+C退出跟踪 - 关键词检索:
grep -i "error" /var/log/syslog - 按时间过滤:
journalctl --since "2026-01-01" --until "2026-01-02" - 按服务过滤:
journalctl -u nginx -f - 只看错误:
journalctl -p err -b - 查看登录:
last、lastb、who、w - 内核报错:
dmesg -T | tail -n 50 - 审计查询:
ausearch -m avc -ts today - 磁盘占用:
journalctl --disk-usage - 日志轮转测试:
logrotate -d /etc/logrotate.conf
如果日志被logrotate切割,会看到access.log、access.log-20260101、access.log.1等,查历史时用zgrep "关键词" /var/log/nginx/access.log-.gz。
rsyslog和journald有什么区别?两种日志系统对比
很多新手会混淆这两个,它们不是二选一,常常同时存在。
- rsyslog:传统日志系统,写文本文件,配置文件在/etc/rsyslog.conf和/etc/rsyslog.d/,适合转发到远程日志服务器。
- systemd-journald:systemd自带,写二进制日志,用journalctl读取,配置在/etc/systemd/journald.conf。
- 关系:journald先接收内核和早期启动日志,rsyslog可以读取journal并写入/var/log,也可以让rsyslog独立接收应用日志。
- 持久化:默认可能只存在内存,设置
Storage=persistent后,日志会保存到/var/log/journal。 - 选择:单机排障优先journalctl;集中收集、长期归档常用rsyslog加远程服务器。
网站服务器被攻击后看哪些日志?安全排查场景
网站被篡改、SSH被爆破、流量异常时,不要只盯Web日志,攻击链通常跨多个文件。
先查认证日志:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | headgrep "Accepted password" /var/log/secure | tail -n 20last -a | head -n 20lastb | head -n 20
再查Web日志:
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | headgrep -E "POST|admin|.php|.jsp" /var/log/nginx/access.log | tail -n 50grep " 500 " /var/log/nginx/access.log | tail -n 50grep -i "upstream timed out|permission denied" /var/log/nginx/error.log
然后查审计与计划任务:
ausearch -m USER_LOGIN -ts todayausearch -m EXECVE -ts today | tail -n 50cat /var/log/cronls -la /etc/cron. /var/spool/cron/
业内专家指出,日志价值在于关联分析,单看一个文件容易漏掉攻击链,比如Web日志出现异常IP,认证日志同一时间出现登录成功,就要重点排查。
北京Linux服务器日志排查常用命令
北京地区企业机房、云主机和等保场景中,排查路径基本一致,重点不是地域差异,而是合规留存和远程集中。
- SSH爆破:
grep "Failed password" /var/log/auth.log | wc -l - 异常登录:
journalctl -u ssh --since today - Nginx异常:
tail -f /var/log/nginx/error.log - 系统错误:
journalctl -p err --since "1 hour ago" - 审计报告:
aureport --summary - 远程收集:在rsyslog客户端写
. @@10.0.0.10:514,服务端按来源IP分目录存储。
据《网络安全法》第二十一条,网络运营者应按照规定留存相关的网络日志不少于六个月,北京等保测评中,日志留存、访问控制、集中审计常被重点检查。
Linux服务器日志分析工具多少钱?先评估自建还是采购
价格没有统一答案,开源工具省许可费,但花服务器、存储和人力,商业服务按写入量、存储量、节点数、保留周期计费,从数千元到数十万元不等。
自建常见组合:
- ELK/EFK:Elasticsearch、Logstash/Fluentd、Kibana,适合搜索和可视化。
- Loki + Grafana:轻量,适合云原生和容器日志。
- Graylog:集中管理,告警配置较直接。
- rsyslog + logrotate + zgrep:单机或小规模最省钱。
商业日志服务:
- 云厂商日志服务:简米云日志服务、酷番云CLS、华为云LTS等。
- 安全信息与事件管理:Splunk、Datadog等,功能强但成本高。
- 计费因素:每日写入量、索引字段、热存储天数、冷存储天数、告警规则数。
行业共识认为,日志留存和轮转策略必须在上线前规划,否则磁盘写满、查询变慢、合规缺失会一起出现。
日志管理实操:轮转、权限与保留
- 配置轮转:在/etc/logrotate.d/nginx中设置daily、rotate 30、compress。
- 手动测试:
logrotate -d /etc/logrotate.d/nginx - 清理journal:
journalctl --vacuum-time=30d或journalctl --vacuum-size=500M - 收紧权限:
chmod 640 /var/log/secure,chown root:adm /var/log/secure - 远程备份:rsyslog转发时用TLS,避免日志明文传输。
- 脱敏:手机号、身份证、 token写入日志前过滤。
Linux服务器日志常见问题Q&A
Linux服务器日志和Windows事件日志有什么区别?
Linux日志多以文本或二进制文件分散存放,适合grep、awk、journalctl处理,Windows事件日志集中在事件查看器,常用wevtutil或PowerShell读取,Linux更依赖命令行和权限控制。
Linux服务器日志占用磁盘太大怎么办?
先确认占用:du -sh /var/log/、journalctl --disk-usage,再清理:journalctl --vacuum-size=500M、压缩旧日志、调整logrotate的rotate和maxsize,长期方案是远程集中存储,本地只保留最近数天。
Linux服务器日志需要保留多久?
《网络安全法》要求网络日志不少于六个月,等保、金融、医疗等行业可能要求更久,多数发行版默认由logrotate按周轮转,systemd-journald默认上限通常为磁盘空间的10%,可用journalctl --disk-usage确认。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/749454.html





