跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Linux怎么查看系统日志_Linux /var/log目录解析教程【审计】

Linux系统日志集中存于/var/log目录,涵盖内核、服务、认证等多类文本日志;systemd系统推荐用journalctl统一查询,支持按服务、时间、优先级过滤;审计时需结合grep/awk筛选关键事件,并检查日志权限、轮转策略及完整性。

如果您需要排查系统异常、分析安全事件或进行合规审计,查看Linux系统日志是关键操作。/var/log目录集中存储了内核、服务、认证及应用程序等多类日志文件,其结构和内容直接反映系统运行状态与历史行为。以下是针对该目录的详细解析与查看方法:

一、使用journalctl查看systemd日志

对于采用systemd初始化系统的现代Linux发行版(如CentOS 7+、Ubuntu 16.04+),journalctl是统一的日志查询工具,可读取二进制日志并支持时间范围、服务单元、优先级等过滤。

1、查看全部日志(按时间倒序):

journalctl -b

2、查看最近一次启动以来的内核日志:

journalctl -k -b

3、查看指定服务(如sshd)的全部日志:

journalctl -u sshd.service

4、实时跟踪新日志输出:

journalctl -fu nginx.service 5、按优先级筛选错误日志(优先级0-7,0为emerg,7为debug):journalctl -p err

二、直接读取/var/log下的核心文本日志文件

/var/log中多数传统日志为纯文本格式,可使用cat、less、tail等命令即时查看,适用于无systemd环境或需长期归档分析的场景。

1、查看系统启动与硬件检测信息:

less /var/log/dmesg

2、查看用户登录、sudo操作、su切换等认证事件:

less /var/log/auth.log(Debian/Ubuntu)或less /var/log/secure(RHEL/CentOS)

3、查看系统常规消息(内核、守护进程、启动脚本输出):

less /var/log/messages(RHEL/CentOS)或less /var/log/syslog(Debian/Ubuntu)

4、查看cron任务执行记录:

less /var/log/cron

5、查看Apache或Nginx访问与错误日志(若已安装):

tail -n 20 /var/log/apache2/access.log或tail -n 20 /var/log/nginx/error.log

三、使用logrotate管理日志轮转与归档

系统默认通过logrotate定期压缩、重命名并删除旧日志,防止/var/log占满磁盘空间。配置文件位于/etc/logrotate.conf及/etc/logrotate.d/下各服务子配置,审计时需确认轮转策略是否满足保留周期要求。

1、查看当前logrotate主配置:

cat /etc/logrotate.conf

2、检查sshd服务日志轮转规则:

cat /etc/logrotate.d/sshd CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。

下载

3、手动触发一次logrotate(测试配置有效性):

logrotate -f /etc/logrotate.conf 4、确认轮转后日志文件命名规律(如messages.1、messages.2.gz):ls -lt /var/log/messages*

5、解压并查看被压缩的旧日志:

zcat /var/log/messages.2.gz | less

四、利用grep与awk进行日志审计筛选

在海量日志中定位特定事件(如暴力破解IP、特权命令执行、失败登录)需结合文本处理工具,提升审计效率与准确性。

1、搜索所有失败的SSH登录尝试(含IP地址):

grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

2、提取过去24小时内sudo执行的命令及其执行者:

journalctl --since "24 hours ago" | grep "sudo\[" | awk '{print $1,$2,$3,$9,$10,$11}'3、查找包含关键词“authentication failure”的所有行并高亮显示:grep --color=always "authentication failure" /var/log/secure

4、统计各用户登录成功次数:

grep "Accepted" /var/log/auth.log | awk '{print $9}' | sort | uniq -c | sort -nr 5、导出指定时间段内的日志片段(例如2024-05-10 14:00至15:00):sed -n '/May 10 14:00:/, /May 10 15:00:/p' /var/log/messages

五、检查日志文件权限与完整性

审计过程中必须验证日志文件是否被未授权修改或删除,重点核查属主、权限位及SELinux上下文(如启用)。

1、列出/var/log下关键日志文件的权限与属主:

ls -l /var/log/auth.log /var/log/secure /var/log/messages

2、确认日志文件属主为root且权限不高于640:

stat -c "%U %G %A %n" /var/log/secure

3、检查是否存在非root写入权限(如权限为664或666):

find /var/log -type f -perm /22 -ls 4、验证rsyslog或journald服务是否正在运行并写入日志:systemctl status rsyslog或systemctl status systemd-journald 5、检查日志目录是否启用不可变属性(chattr +a仅允许追加):lsattr /var/log

相关文章