linux7系统日志,RHEL7: 系统日志(rsyslog, journal)

参考文档

http://fedoraproject.org/wiki/Changes/NoDefaultSyslog

http://0pointer.de/blog/projects/journalctl.html

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/s1-Using_the_Journal.html

https://wiki.archlinux.org/index.php/systemd

rsyslog

rsyslog.conf

日志的优先级。

Code

Priority

Severity

0

emerg

System is unusable.

1

alert

Action must be taken immediately.

2

crit

Critical condition.

3

err

Non-critical error condition.

4

warning

Warning condition.

5

notice

Normal but significant event.

6

info

Informational event.

7

debug

Debugging-level message.

在 /etc/rsyslog.conf 和 /etc/rsyslog.d/*.conf 中可以设置rsyslog记录日志的规则。

*.info;mail.none;authpriv.none;cron.none /var/log/messages

*.info表示所有服务大于等于info优先级的信息都会记录到/var/log/messages中;

mail.none表示不记录任何mail的信息到/var/log/messages中。

logrotate

为防止/var/log/messages过大,logrotate可以定时按规则将日志归档到不同文件。

可以参考 man 8 logrotate

(TODO: 补充logrotate)

日志格式

rsyslog的日志有固定格式。

时间戳,发送消息的Host,发送消息的程序/进程,消息内容;

Dec 31 10:59:57 rhel7-0 yum[9992]: Installed: psmisc-22.20-8.el7.x86_64

用tail -f /var/log/messages 可以监视日志。

logger

用logger命令可以手动发送一条日志。不指定-p的话,它会以user.notice的优先级来发送消息。

[root@rhel7-0 ~]# logger -p local7.notice "Log entry created on rhel7"

[root@rhel7-0 ~]# tail -1 /var/log/boot.log

Dec 31 11:53:30 rhel7-0 root: Log entry created on rhel7

修改完rsyslog的配置之后,重启rsyslog服务让它生效。

[root@rhel7-0 ~]# systemctl restart rsyslog.service

systemd Journal

journalctl是systemd的日志系统,它可以替代rsyslog来记录日志,也可以与rsyslog共存。

用journalctl查看日志

[root@rhel7-0 ~]# journalctl

它类似于cat /var/log/messages

journal -n 类似于 tail /var/log/messsages

journalctl -f 类似于 tail -f /var/log/messages

用journal -p 可以看特定优先级(及更高优先级)的日志内容。

[root@rhel7-0 ~]# journalctl -p err

可以指定查看日志的时间

[root@rhel7-0 ~]# journalctl --since today

[root@rhel7-0 ~]# journalctl --since "2014-12-30" --until "2014-12-31"

第二条是不显示12-31日志的。

查看更详细的信息,可以用journalctl -o verbose

[root@rhel7-0 ~]# journalctl -o verbose

-- Logs begin at Tue 2014-12-30 20:19:53 EST, end at Wed 2014-12-31 12:21:51 EST. --

Tue 2014-12-30 20:19:53.575455 EST [s=d98f189de2ef411f8a45fdb5c6e2d84d;i=1;b=76af4accd843440c8b38e33f0dea260b;m=7ea4c;t=50b78e7a0481f;x=d3a97e9fae269460]

PRIORITY=6

_TRANSPORT=driver

MESSAGE=Runtime journal is using 6.2M (max 49.7M, leaving 74.5M of free 490.8M, current limit 49.7M).

MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6

_PID=81

_UID=0

_GID=0

_COMM=systemd-journal

_EXE=/usr/lib/systemd/systemd-journald

_CMDLINE=/usr/lib/systemd/systemd-journald

_CAP_EFFECTIVE=4402800cf

_SYSTEMD_CGROUP=/system.slice/systemd-journald.service

_SYSTEMD_UNIT=systemd-journald.service

_SYSTEMD_SLICE=system.slice

_SELINUX_CONTEXT=kernel

_BOOT_ID=76af4accd843440c8b38e33f0dea260b

_MACHINE_ID=5ae5a23249dbba212fa0c307ab9f101f

_HOSTNAME=localhost.localdomain

_COMM 是command的名称;

_EXE 是process的路径;

_SYSTEMD_UNIT The systemd unit that started the process;

可以用这些参数作为筛选条件进行查询,多个条件则需要同时满足。

[root@rhel7-0 ~]# journalctl _SYSTEMD_UNIT=sshd.service

永久记录

默认情况下,journal在重启后就清空了。要想永久保存日志,可以按以下方法操作。

[root@rhel7-0 ~]# mkdir /var/log/journal

[root@rhel7-0 ~]# chown root:systemd-journal /var/log/journal/

[root@rhel7-0 ~]# chmod 2755 /var/log/journal/

[root@rhel7-0 ~]# killall -USR1 systemd-journald

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值