Linux 日志系统组成详解

Linux 日志系统组成详解

[日期:2014-06-13]来源:Linux社区作者:9528du[字体:]

Linux 日志系统有三部分组成:

一、使用什么工具记录系统产生的日志信息? syslog服务脚本管理的两个进程: syslogd、klogd 来记录系统产生的日志信息; klogd 进程是专门为内核产生的日志信息服务的。 syslogd 进程是专门为应用程序服务(除了内核)产生的日志信息服务的; 只有调用了 logger 接口,应用程序才可以调用 syslogd工具帮助记录日志信息。

二、只要系统服务在运行,就会产生日志信息,我们使用专门的工具把它记录到磁盘上了,为了方便分析日志,日志文件不能太大、很久以前的日志文件我们应该把它删掉。这些工作由谁完成呢? 使用 logrotate 命令来滚动,,syslog记录的日志文件。

RHEL5.4部署中央日志服务器之rsyslog+Log Analyzer

CentOS 6.3下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

RHEL5.4部署中央日志服务器之rsyslog+loganalyzer

使用rsyslog mysql 和logAnalyzer 的日志服务器

CentOS 6.3下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

三、为了让人们从繁忙的工作中解脱出来。自动化管理:日志文件的滚动、备份、压缩等工作。 使用两个忠实的劳动者(进程):crond 和 anacron ,完成上述的所有工作。

看看它们各部分的实现过程:1、syslog syslog 只是用来管理 sysogd 和 klogd 的服务脚本。它们的配置文件在 /etc/syslog.conf

[root@node2 logs]# cat /etc/syslog.conf

# Log anything (except mail) of level info or higher.

# Don’t log private authentication messages!

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

# 星号(*) 表示通配所有的 priority

# *.info 表示记录所有priority的info级别的日志信息。注意不紧包括 info 级别的,还包括比 info 级别高的所有日志信息都会被记录下来。如:notice、warn、err、…、panic

# *.info;mail.none;authpriv.none;cron.none 表示星号(*)通配的所有 priority但不包括 mail、authpriv、cron.

# 意思是说,mail、authpriv、cron 系统的日志信息不会被记录到 /var/log/messages 中来。

# Log all the mail messages in one place.

mail.* -/var/log/maillog

# 星号(*) 表示通配所有的 priority.

# mail.* 表示记录系统 mail 产生的所有级别的日志信息。

# -/var/log/maillog 横线(-)表示系统 mail 产生的日志信息是异步写入磁盘的。意思是先把它存在 page cache 缓冲池中。再根据某种策略把它一次性刷写到磁盘中。

# mail 是一个很繁忙的系统,产生的日志信息量非常大。如果每次产生的日志信息就立即把它写到磁盘上的话,效率是很低的。磁盘IO速度很慢的。原因,系统默认是启动

# 两个脏页刷写线程的。可以通过/proc接口查看 [root@node2 ~]# cat /proc/sys/vm/nr_pdflush_threads 。Linux 会根据系统繁忙程度启动更多的线程来为刷写脏页服务的。

# 当然我们也可以调节该内核参数。但是要根据我们硬件CPU的颗数来调节。

# Everybody gets emergency messages

*.emerg *

# *.emerg * 表示所有系统的emerg等级的日志信息都发给所有用户。

# Save boot messages also to boot.log

local7.* /var/log/boot.log

# 该项记录的是系统引导过程的所有级别的日志信息。

配置文件格式: facility.priority /path facility 是用来定义由谁产生的日志信息:那个软件、子系统运行过程中产生的日志信息。 priority 是用来定义记录什么类型的日志信息。是应用程序产生的所有信息都把它记录到日志

文件中呢,还是只记录该应用程序的错误日志信息等等。 /path/file_name 是用来定义把日志信息写到哪里去。

查看常见的facility和priority:

[root@node2 ~]# man syslog.conf

# 常见的 facility

The facility is one of the following keywords: auth, authpriv, cron,

daemon, kern, lpr, mail, mark, news, security (same as auth), syslog,

user, uucp and local0 through local7.

# 常见的 priority

The priority is one of the following keywords, in ascending order:

debug, info, notice, warning, warn (same as warning), err, error (same

as err), crit, alert, emerg, panic (same as emerg).

只要有信心,人永远不会挫败

Linux 日志系统组成详解

相关文章:

你感兴趣的文章:

标签云: