分析和存储日志(二)
1、通过journalctl查找事件
systemd日志将日志数据存储在带有索引的结构化二进制文件中。此数据包含与日志事件相关的额外信息。在红帽7中,systemd日志默认存储在/run/log中,其内容会在重启后予以清除。
命令:journalctl
journalctl -n 5 默认-n显示最后10条
journalctl -f 追踪输出最后10条记录
journalctl -p 可以接受已知优先级的名称或编号作为参数,进行过滤
例: journalctl -p error 输出过滤优先级为error或以上的日志
以粗体突出显示notice或warning的消息,以红色突出显示error和更高的消息
journalctl命令有两个选项,可以将输出限制为特点的时间范围,分别是--since和--until选项。两个选项都接受格式为YYYY-MM-DD hh:mm:ss的时间参数,这两个选项还接受yesterday、today和tomorrow作为有效参数
journalctl --since today 输出当天记录
journalctl --since “2015-11-01 20:00:30” --until “2015-11-03 20:00:00”
2、保存systemd日志
默认情况下systemd日志保存在/run/log/journal中,系统重启后它会被清除。
若存在/var/log/journal目录,该日志会改为记录在这个目录中。
配置文件 /etc/systemd/journald.conf
作为root用户创建目录/var/log/journal
修改拥有用户和拥有组,并具有权限2755
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
重启系统或者以root身份发送特殊信号USR1 到systemd-journald进程
killall -USR1 systemd-journald
由于systemd日志为永久日志,可通过journalctl -b 显示系统上一次启动以来的日志消息,以检查输出
3、保持准确的时间
网络事件协议NTP是计算机用于通过互联网提供并获取正确时间信息的一种标准方法。计算机可以通过互联网上的公共NTP服务获取正确的时间信息。另一选择是通过高质量硬件时钟为本地客户端提供准确时间。
timedatectl命令简要显示当前的时间关系系统设置,如系统的当前时间、时区和NTP同步设置
timedatectl 当前时间相关系统设置
timedatectl list-timezones 列出时区数据库信息
timedatectl set-timezone 设置时区
timedatectl set-time YYYY-MM-DD hh:mm:ss 设置日期 时间
timedatectl set-ntp true/false 启用或禁用NTP同步
配置和监控chronyd
chronyd服务通过与配置的NTP服务器同步或者没有网络情况下与计算的RTC时钟漂移值同步,该值记录在/etc/chrony.conf配置文件中指定的driftfile中
可以在/etc/chrony.conf配置文件中配置两种类型的时间源,分别是server和peer
server比本地NTP服务器高一个级别,而peer则属于同一级别,可指定多个server和多个peer
例:server 0.rhel.pool.ntp.org iburst
chronyc sources 查看时间源
chronyc sources -v 包含额外的详细输出