[转载] CentOS/Rocky/Ubuntu系统日志

张启昊
张启昊
发布于 2024-07-15 / 63 阅读
0
0

[转载] CentOS/Rocky/Ubuntu系统日志

Centos/Rocky/Ubuntu

查看系统日志(网络、系统、内核等)

Rocky8默认没有syslog,需要安装:

$ yum install -y rsyslog

# 启动
$ systemctl start rsyslog
# 或者
$ systemctl start syslog

查看:

$ cat /var/log/messages

Ubuntu:

$ cat /var/log/syslog | more

$ cat /var/log/kern.log | more

注:ubuntu没有messages文件,由/var/log/syslog和/var/log/kern.log组成

显示系统硬件信息

$ dmesg

# 带时间显示
$ dmesg -T

# 清空该内存中的信息
$ dmesg -c

注:dmesg命令信息保存在内存,显示硬件信息,如硬盘坏了等信息。

Ubuntu:

$ dmesg -T | more

系统启动日志

Centos7中查看:

$ cat /var/log/dmesg

注:该日志文件与dmesg命令信息没有关系。

Rocky8在设计之处,在启动过程中不会生成/var/log/dmesg日志文件。内核环形缓冲区在systemd-journal和日志文件/var/log/messages中捕获内核启动信息,通过imjournal rsyslog插件捕获。

Ubuntu:

$ cat /var/log/dmesq

查看登陆历史

登陆成功的信息:

$ last

注:last调用的/var/log/wtmp文件。该文件为二进制文件,不能直接查看。

Ubuntu:

$ last

/var/log/wtmp

登陆失败的信息:

$ lastb

注:lastb调用的/var/log/btmp文件。该文件为二进制文件,不能直接查看。

Ubuntu:

$ lastb

/var/log/btmp

安全日志

$ cat /var/log/secure

Ubuntu:

$ cat /var/log/auth.log | more

日志切割工具

logrotate可以对日志进行截断、压缩机删除旧的日志文件。
一般logrotate默认安装,如果没有可以使用yum或者apt进行安装:

ubuntu:

$ apt-get install logrotate cron

Centos/Rocky:

$ yum install logrotate crontabs

配置文件

$ cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
# 指定分割周期,周:weekly,日:daily,月:monthly,年:yearly
weekly

# keep 4 weeks worth of backlogs
# 指定保留分割文件数量,4配合weekly就是4周
rotate 4

# create new (empty) log files after rotating old ones
# 切割后,创建新的日志文件
create

# use date as a suffix of the rotated file
# 切割文件采用日期作为后缀
dateext

# uncomment this if you want your log files compressed
# 是否压缩
#compress

# RPM packages drop log rotation information into this directory
# 指定日志文件存放目录
include /etc/logrotate.d

# system-specific logs may be also be configured here.

配置文件中的可选参数:

compress                  # 通过gzip压缩转储后的日志
nocompress                # 不压缩
copytruncate              # 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate            # 备份日志文件但是不截断
create 或 mode 或 owner 或 group    # 转储文件,使用指定的文件模式创建新的日志文件
nocreate                  # 不建立新的日志文件
delaycompress             # 和compress一起使用时,转储的日志文件到下一次转储时才压缩 
nodelaycompress           # 覆盖delaycompress选项,转储同时压缩
errors address            # 专储时的错误信息发送到指定的Email地址
ifempty                   # 即使是空文件也转储,这个是logrotate的缺省选项
notifempty                # 如果是空文件的话,不转储
mail address              # 把转储的日志文件发送到指定的E-mail地址
nomail                    # 转储时不发送日志文件
olddir directory          # 转储后的日志文件放入指定的目录,必须和minsize或者dateext一起使用
noolddir                  # 转储后的日志文件和原来的放在一起
prerotate/endscript       # 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript      # 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily                     # 指定转储周期为每天
weekly                    # 指定转储周期为每周
monthly                   # 指定转储周期为每月
rotate count              # 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5个备份
tabootext                 # 忽略指定扩展名的文件,请使用空格分隔
size size                 # 当日志文件到达指定的大小时才转储,单位为bytes,指定0时表示关闭此选项

单独定义的日志分割条件:

$ cat /etc/logrotate.d/dnf
/var/log/dnf.log {
    daily
    missingok
    rotate 0
    compress
    delaycompress
    notifempty
    create 640 root root
    sharedscripts
    postrotate
        systemctl kill --user=dnf --signal=HUP dnf-3.dnf
    endscript
}

journalctl

默认journal日志是从系统启动到现在的日志。

相关路径:/run/log/journal

用法:

$ journalctl [-选项]
        选项:
            -n 5:查看最后5行
            -e:查看最后的日志
            -x:增加注释
            -o:设置日志格式,比如-o json,-o export,-o short
            -p:设置日志级别,emerg、alert、crit、err、warning、notice、info、debug
            -f:实时查看日志
            -u:指定unit,比如-u chrony
            -r:倒叙查看
            -k:查看内核日志

journalctl日志持久化

  • 配置文件:/etc/systemd/journald.conf
  • 持久化路径:/var/log/joural
  • 重启服务:systemctl restart systemd-journald

配置文件内容:
Storage=auto

参数:
auto:如果将/var/log/joural创建好后,会自动写入,如果没就不写
persistent:自动创建目录
volatile:放在/run/log/journal,系统重启后丢失

1.创建目录
[root@localhost log]# mkdir /var/log/journal
2.重启服务
[root@localhost log]# systemctl restart systemd-journald
[root@localhost log]# ll /var/log/journal/
总用量 0
drwxr-xr-x 2 root root 28 8月  10 18:04 0d6017811a72466b9f2e30eb7bf4e6ed

SystemMaxUse=
定义日志使用最大空间,如果不定义,则默认不超过磁盘分区的10%的空间,且不能大于4G。如果配置了,此值不能小于1M,如果小于1M按1M算。

SystemMaxFileSize=
定义每个journal文件最大尺寸,默认值为systemmaxuse/8,并且限制范围在(512k~128M),当此参数设置大于等于8M时,则会默认预产生一个8M的文件,然后逐步往里面填充日志

SystemMaxFiles=100
定义最多存多少个文件


评论