插件窝 干货文章 linux系统日志文件包含几列内容

linux系统日志文件包含几列内容

日志 格式 时间 syslog 966    来源:    2025-05-01

Linux系统日志文件的具体列数取决于日志类型和配置,不同日志文件(如/var/log/messagesauth.logsyslog等)可能有不同的格式。以下是常见日志格式的列内容分析:


1. 标准syslog格式(RFC 5424)

典型的syslog日志通常包含 6列,例如:

月 日 时间 主机名 进程名[PID]: 日志内容

示例

Aug 15 10:30:01 myhost sshd[1234]: Failed password for root from 192.168.1.1 port 22
  • 列分解
    1. 时间戳 (Aug 15 10:30:01)
    2. 主机名 (myhost)
    3. 服务/进程名 (sshd)
    4. 进程PID ([1234])
    5. 日志级别/类型(隐含,此处为Failed password属于认证错误)
    6. 详细信息(事件具体内容)

2. systemd Journal日志(journalctl)

使用journalctl查看的日志格式更灵活,默认显示为多列混合,但可通过-o verbose显示所有字段:

TIMESTAMP=2023-08-15T10:30:01+08:00
HOSTNAME=myhost
SYSLOG_IDENTIFIER=sshd
PID=1234
MESSAGE=Failed password for root from 192.168.1.1 port 22
PRIORITY=4 (WARNING)

关键字段:时间戳、主机名、服务名、PID、优先级、日志内容等。


3. 特定服务的日志格式

不同服务可能自定义日志格式,例如: - Nginx访问日志(通常7列以上): log 192.168.1.1 - - [15/Aug/2023:10:30:01 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0" - 列包括:客户端IP、用户标识、时间、请求方法、状态码、响应大小、User-Agent等。

  • Apache错误日志log [Tue Aug 15 10:30:01.123456 2023] [core:error] [pid 1234] [client 192.168.1.1] File does not exist: /var/www/favicon.ico
    • 列包括:时间戳、模块/错误级别、PID、客户端IP、错误详情。

4. 日志列数总结

日志类型 典型列数 关键列内容示例
标准syslog 5-6列 时间、主机、进程、PID、消息
systemd Journal 动态列 时间、服务名、PID、优先级、消息
服务专用日志 可变 根据服务配置(如IP、状态码等)

如何自定义日志格式?

  • rsyslog:通过模板修改/etc/rsyslog.conf,例如: conf template MyFormat,"%timestamp% %hostname% %programname% %msg%\n"
  • systemd-journald:使用journalctl-o选项指定输出格式(如jsonshort等)。

排查日志时的技巧

  1. 按列过滤
    bash awk '{print $1,$3}' /var/log/syslog # 提取第1、3列
  2. 按时间筛选
    bash journalctl --since "2023-08-15 10:00:00" --until "11:00:00"

如果需要进一步分析特定日志文件,可以提供文件示例或路径,我可以帮助解析其列结构和含义。