-
系统日志文件
rsyslog主要是用来收集系统产生的各种日志,日志文件默认放在/var/log目录下。
-
常用日志
/var/log/boot.log | 存储服务启动与停止信息 |
/var/log/dmesg | 存储系统启动时显示在屏幕的内核信息,包含了系统中硬件状态的检查信息。 |
/var/log/messages | 提供大多数日志信息 |
/var/log/secure | 存储与系统安全有关的信息 |
/var/log/lastlog | 保存每个用户的最后一次登陆信息 |
/var/log/wtmp | 二进制文件,保存所有用户的登陆、退出、系统启动、重启、宕机等记录 |
/var/log/btmp | 保存用户登陆时白的日志文件 |
日志文件由rsyslog服务维护。/var/log目录中包含各种特定于某些服务的日志文件。
-
配置系统日志
-
优先级(priority)
许多程序使用sysog协议将时间记录到系统每一日志消息根据设备(消息的类型)和优先级。
信息来源 | 优先级 | 说明 |
debug | 7 | 调试排错信息,仅对程序开发人员有用 |
info | 6 | 一般信息,可以忽略 |
notice | 5 | 正常提示信息 |
warn | 4 | 可能是有问题的警告信息 |
err | 3 | 一般的错误信息 |
crit | 2 | 关键状态信息 |
alert | 1 | 需特别注意的警告信息,一般要迅速更正 |
emerg | 0 | 最要做,紧急状态,一般是系统不可用 |
-
日志配置文件示例
在/etc/rsyslog.conf中添加一条记录。将所有info优先级的日志记录记录到/var/log/log_test.log中。
*.info /var/log/log_test.log
注意:修改配置后,重启rsyslog服务
systemctl restart rsyslog.service
-
查看日志
- 手动发送syslog消息
使用logger命令可以发送消息到rsyslog服务。若要向rsyslog服务发送消息并记录到日志文件中,可以执行下面这个命令:
logger -p user.info "hello"
- 使用tail命令查询最新的日志记录
tail -f /var/log/log_test.log
-
日志文件轮转
- 用日志轮转服务logrotate来自动实现日志文件的定期清理。
在/etc/cron.daily目录中有一个名为logrotate的脚本文件用来启动logrotate程序。cron作业每日运行一次logrotate程序,以查看是否有任何日志需要轮转。轮转配置文件为/etc/logrotate.conf的默认配置
vi /etc/logrotate.conf
-
查看systemd日志条目
- 显示最新的10个日志条目
journalctl -n 10
- 实施滚动显示最新日志(最新的10条)
journalctl -f
- 使用选项-p指定日志过滤级别
journalctl -p err
- 只查看内核日志(不显示应用日志)
journalctl -k
- 查询与systemd单元文件sshd.service启动相关的日志条目
journalctl _SYSTEMD_UNIT="sshd.service"
- 显示今天的日志条目
journalctl --since today
- 查看指定时间段的日志条目
journalctl --since "2020-06-21 10:00:00" --until "2020-06-21 13:00:00"
- 保存systemd日志
默认情况下,系统日志保存在/run/log/journal目录中,这意味着系统重启时这些日志会被清除。可以在/etc/systemd/journald.conf文件中更改systemd-journald服务的配置,使日志系统在重启后保留下来。
/etc/systemd/journald.conf文件中的storage参数决定系统日志以易失性方式存储,还是在系统重启后持久保留。按照如下所示,将该参数设为persistent、volatile或auto
参数 | 说明 |
persistent | 将日志存储在/var/log/journal目录中,这可在系统重启后持久保留。 如果/var/log/journal目录不存在,systemd-journald服务会创建它。 |
volatile | 将日志存储在易失性/run/log/journal目录中。 因为/run文件系统是临时的,仅存在于运行时内存中,存储在其中的数据(包括系统日志)不会在系统启后持久保留。 |
auto | rsyslog决定要使用持久存储还是易失性存储。如果/var/log/journal目录存在,那么rsyslog会使用持久存储,否则使用易如果未设置 Storage参数,此为默认操作。失性存储。 |
-
时区设置
timedatectl命令简要显示当前的时间相关系统设置,如系统的当前时间、时区和NTP同步设置。
- 查询当前时区状态
timedatectl status
- 显示时区库
timedatectl list-timezones
- 更改当前时区为中国上海
timedatectl set-timezone "Asia/Shanghai"
- 不自动同步时间
timedatectl set-ntp false
- 自动同步时间
timedatectl set-ntp true