Linux系统级日志系统

时间:2023-12-26 23:52:37

  linux日志系统,在不同的发行版本名字不同。本质一样都是对系统运行非正常状态的记录。。。

rhel5.x    syslog
rhel6.x    rsyslog service rsyslog status
rhel7.x   systemd-journald和rsyslog

00、日志等级

编码优先级严重性
0 emerg 系统不可用。
1 alert 必须立即采取措施。
2 crit 严重状况。
3 err 非常严重错误状况。
4 warning 警告状况。
5 notice 正常但重要的事件。
6 info 信息性事件。
7 debug 调试级别消息。
8 none    日志不记录

01、日志等级符号

. ∶代表『比后面还要高的等级(含该等级)都被记录下来』    mail.info  >=info 级别的日志都记录

.=∶代表所需要的等级就是后面接的等级而已,                     mail.=info   仅仅记录info级别的日志

.!∶代表不等于,亦即是除了该等级外的其他等级都记录       mail.!info    !=info除去info不记录,其他都记录

例子:

news.*;cron.*                    /var/log/cronnews              #news及cron的所有日志信息都输出到cronnews
news.=warn;cronn.=warn /var/log/cronnews.warn    #news及cron的warn信息都输出到cronnews.warn

messages 这个档案需要记录所有的资讯,但是就是不想要记录 cron, mail 及 news 的资讯

可以有两种写法,分别是∶ *.* = 所有资讯!
*.*;news,cron,mail.none                  /var/log/messages
*.*;news.none;cron.none;mail.none /var/log/messages
注意:使用,分隔时,那么等级只要接在最后一个即可。如果是以『;』来分的话,那么就需要将服务与等级都写上去!

02、查看系统默认的日志系统

# 来自 RHEL5 的相关资料
[root@linux ~]# vi /etc/syslog.conf
#kern.* /dev/console
# 只要是 kernel 产生的讯息,全部都送到 console 去!
# 这个项目预设是关闭的!不过,只要您愿意,可以开启就是了!

*.info;mail.none;authpriv.none;cron.none /var/log/messages
# 在已知各服务的讯息中,不要记录到这个档案当中!
# 例如 mail 我们已经预设要记录在 /var/log/maillog (底下),
# 所以自然不要在记录 mail 到这个 /var/log/messages 档案中!
# 然后其他的讯息全部都记录到 /var/log/messages 当中!
# 所以这个档案相当的重要!没有被规定到的讯息都可以在这里找到!

authpriv.* /var/log/secure
# 这个就是经过一些身份确认的行为之后,需要记录身份的档案!
# 什么是身份确认呢?例如 pop3 收信要输入帐号与密码、 ssh 与 telnet, ftp
# 等等的服务需要输入帐号与密码,这些都会在 /var/log/secure 里面记录!
# 他可也是相当重要的一个档案呢!

mail.* -/var/log/maillog
# 只要跟 mail 有关的(不论是 pop3 还是 sendmail )都会被纪录到这个档案中!

cron.* /var/log/cron
# 还记得例行性命令那一章节吗?!对!就是那个 crontab 的东西,
# 那东西的服务程序名称就是 cron !执行 cron 的结果都记录于此!
*.emerg *
# 任何时候发生的警告讯息都会显示给线上的所有人!那个 * 就是目前线上的所有人!
# 这个就是利用 wall 之类的方式传输讯息的啊!
uucp,news.crit /var/log/spooler
# 记录新闻错误高于 crit 的等级的资讯,写入 spooler 当中!

local7.* /var/log/boot.log
# 将开机的当中的讯息给他写入 /var/log/boot.log 这个档案当中呦!
基本上,每个版本的 syslog.conf 差异是颇大的,所以,每个登录档记录的资料其实不很固定

曾经使用过 Mandriva 的话,他的 syslogd 设定资讯有点像这样∶

# 1. 先设定好所要建立的档案设置!
[root@linux ~]# vi /etc/syslog.conf
*.info /var/log/admin.log
# 2. 重新启动 syslog 呢!
[root@linux ~]# /etc/init.d/syslog restart
[root@linux ~]# ll /var/log/admin.log
-rw------- 1 root root 122 Oct 23 22:21 /var/log/admin.log
# 瞧吧!建立了这个档案出现!

chattr +a /var/log/messages   #添加隐藏属性,只能追加不能删除

charttr -a /var/log/message   #去除追加属性

lsattr /var/log/messages        #查看文件隐藏属性

03、RHEL6.X日志系统rsyslog

[root@mvp etc]# cat rsyslog.conf
# rsyslog v5 configuration file # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html #### MODULES #### $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability # Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514 # Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun #### GLOBAL DIRECTIVES #### # Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat # File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on # Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*
.conf #配置的日志文件,自定义的日志 #### RULES #### # Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console # 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 # The authpriv file has restricted access.
authpriv.* /var/log/secure # Log all the mail messages in one place.
mail.* -/var/log/maillog # Log cron stuff
cron.* /var/log/cron # Everybody gets emergency messages
*.emerg * # Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler # Save boot messages also to boot.log
local7.* /var/log/boot.log # ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList # run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ### # A template to for higher precision timestamps + severity logging
$template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-te
xt%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
:programname, startswith, "spice-vdagent" /var/log/spice-vdagent.log;SpiceTmpl