syslog

syslog简介

syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。UNIX的系统日志是通过syslogd这个进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。

syslogd和rsyslogd

syslogd是Linux下的一个记录日志文件服务。从结构来说,可以理解为这个服务下面有一系列的子服务,例如mail、auth、cron、kern等等,这些子服务对外提供日志记录的功能,而当其它的程序或服务需要记录日志的时候,就可以直接调用这些子服务将日志记录到设定的地方。而配置这整个守护进程以及其子服务的地方就是/etc/syslog.conf这个文件。

而目前不少的Linux发行版已经用rsyslogd将syslogd代替了。rsyslogd是syslogd的升级版,其配置语法与syslogd的配置文件一致。ubuntu-gnome-16.04使用的是rsyslogd。

注:

在用户空间有专门用于记录系统日志的程序,统称为“syslog守护进程”。早期及现在的大部分嵌入式系统使用的是klogd+syslogd组合,现在大多数发行版都使用rsyslogd或者syslogd-ng。

如果需要修改系统日志配置,修改以下两个文件。

1)/etc/rsyslog.conf

2)/etc/rsyslog.d/50-default.conf 日志文件的记录规则和路径

查看linux日志的三种途径

(1)dmesg

printk()打印的日志会写到kernel ring buffer(环缓冲区)中,dmesg是从kernel ring buffer中读取内核日志信息。

(2)/var/log/

系统所有日志(包括用户日志和系统内核日志)均记录在/var/log/目录下。

rsyslogd守护进程根据/etc/rsyslog.conf和/etc/rsyslog.d/50-default.conf,将不同的服务产生的log记录到不同的文件中。

(3)/proc/kmsg

通过读取/proc/kmsg也可以得到ring buffer(环缓冲区)的日志,但是对/proc/kmsg进行读操作后,ring buffer中被读取的数据将被清空。

日志记录的接口

(1)内核空间:printk()

可以使用dmesg命令来查看,使用printk()打印的日志同时也会记录在/var/log/kern.log和/var/log/syslog。当然也可以关闭rsyslogd服务,通过读取/proc/kmsg来查看。

(2)用户空间:syslog()函数和logger(logger可在命令行中直接执行)

void syslog(int priority, char*format,……);

打印的日志记录在 /var/log/syslog文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值