日志服务
两个日志消息服务:systemd-journald
和 rsyslog
日志等级
标准的日志协议规定了日志文件的格式及日志消息以紧急优先级别,定义8个级别:
- emerg 系统不可用
- alert 必须立即采取措施
- crit 严重状况
- err 非常严重错误状况
- warning 警告状况
- notice 正常但重要的事件
- info 信息性事件
- debug 调试级别消息
日志处理流程
systemd-journald
守护进程提供一种改进的日志管理服务,可以收集来自内核,启动过程的早期阶段,标准输出,系统日志,以及守护进程启动和运行期间的错误的消息。它将这些消息写到一个结构化的事件日志中,默认情况下不在重新启动之间保留。
系统消息可以由systemd-journald 转发到 rsyslog 以做进一步处理。
syslog 服务随后根据类型(或设备)和优先级排列系统日志消息,将他们写入到 /var/log 目录内的永久文件中。
日志文件
/var/log 目录保管由rsyslog维护的各种特定于系统和服务的日志文件。
常用的日志文件:
/var/log/messages大多数系统日志消息记录在此。例外是与身份验证,电子邮件处理相关的定期运行作业的消息以及纯粹与调试相关的信息。
/var/log/secure安全和身份验证相关的消息和错误的日志文件。
/var/log/maillog与邮件服务器相关的日志文件。
/var/log/boot.log与系统启动相关的消息记录在此。
rsyslog所写的系统日志文件在文件的开头显示最旧的消息,在文件的末尾显示最新的消息。由rsyslog 管理的日志文件中所有的日志条目都以标准的格式记录。
日志记录的轮转
日志通过logrotate
实用工具“轮转”,以防止他们将包含 /var/log/中的文件系统填满。轮转日志文件时,会使用名称扩展对其进行重命名,名称扩展指示轮转日期:如果文件在2014年10月30日轮转后,则原来的/var/log/messages 文件会变成 /var/log/messages-20141030。轮原文件之后,会创建新的日志文件,并通知对他执行写操作的服务。
注意:轮转若干次之后(通常轮转四次),丢弃原日志文件以释放磁盘空间。
日志基本管理操作
使用tail 命令查看日志文件
tail –10 /var/log/messages 显示最后10行日志条目
journalctl命令
journalctl -n 默认显示最后10行日志条目
journalctl -n 5 显示最后5行日志条目
journalctl -p err 指定显示当前优先级为err的所有日志条目
journalctl –since today 输出当天记录的所有日志条目
journalctl –since “2014-02-10 20:30:00” –until “2014-02-1312:00:00” 输出2014年2月10日20:30:00到2014年2月13日12:00:00的日志条目