CC00019.LinuxSystem——|Linux&日志管理.V02|

本文介绍了Linux系统中常见的日志文件,详细讲解了服务名称、日志等级,并解析了/etc/rsyslog.conf配置文件的内容,同时指导如何定义自定义日志。
摘要由CSDN通过智能技术生成
一、日志简介
### --- 日志相关服务
### --- 在 CentOS 6.x 中日志服务已经由 rsyslogd 取代了原先的 syslogd 服务。

~~~     Redhat 认为 syslogd 已经不能满足在工作中的需求,
~~~     rsyslogd 相比 syslogd 具有一些新的特点:
### --- 基于 TCP 网络协议传输日志信息;

~~~     更安全的网络传输方式;
~~~     有日志消息的及时分析框架;
~~~     后台数据库;
~~~     配置文件中可以写简单的逻辑判断;
~~~     与 syslog 配置文件相兼容。
~~~     注:备份时间:系统日志备份半年左右。

二、系统中常见的日志文件

日志文件说      明
/var/log/cron记录了系统定时任务相关的日志。
/var/log/cups/记录打印信息的日志
/var/log/dmesg

记录了系统在开机时内核自检的信息。

也可以使用 dmesg 命令直接查看内核自检信息。

/var/log/btmp

记录错误登录的日志。

这个文件是二进制文件,不能直接 vi 查看,而要使用 lastb 命令查看,命令如下:

[root@localhost log]# lastb

root tty1            Tue Jun 4 22:38 - 22:38 (00:00)

#有人在 6 月 4 日 22:38 使用 root 用户,在本地终端 1 登录错误
/var/log/lastlog

记录系统中所有用户最后一次的登录时间的日志。

这个文件也是二进制文件,不能直接 vi,而要使用 lastlog 命令查看。

/var/log/mailog记录邮件信息。
/var/log/message

记录系统重要信息的日志。这个日志文件中会记录 Linux 系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件。

/var/log/secure

记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。比如说系统的登录,ssh 的登录,su 切换用户,sudo 授权,甚至添加用户和修改用户密码都会记录在这个日志文件中。

/var/log/wtmp

永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接 vi,而需要使用 last 命令来查看。

/var/run/utmp

记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用 w,who,users 等命令来查询。

### --- 系统中常见的日志文件

~~~     除了系统默认的日志之外,
~~~     采用 RPM 方式安装的系统服务也会默认把日志记录在/var/log/目录中
~~~     #(源码包安装的服务日志是在源码包指定目录中)。
~~~     #不过这些日志不是由 rsyslogd 服务来记录和管理的,
~~~     #而是各个服务使用自己的日志管理文档来记录自身日志。
~~~     #重要系统日志,一般系统查看日志,查看该日志

[root@server11 ~]# cat /var/log/messages
日志文件说明
/var/log/httpdRPM包安装的apache服务的默认日志目录
/var/log/mailRPM包安装的邮件服务的额外日志目录
/var/log/samba/RPM包安装的samba服务的日志目录
/var/log/ssd/守护进程安全服务目录

一、日志服务 rsyslogd
### --- 日志文件格式

~~~     只要是由日志服务 rsyslogd 记录的日志文件,他们的格式是一样的。基本日志格式包含以下四列:
~~~     事件产生的时间;发生事件的服务器的主机名;
~~~     产生事件的服务名或程序名;
~~~     事件的具体信息。
### --- rsyslogd 服务的配置文件
### --- /etc/rsyslog.conf 配置文件格式
~~~     服务名称[连接符号]日志等级
~~~     认证相关服务.所有日志等级
~~~     日志记录位置
~~~     记录在/var/log/secure 日志中

[root@server11 ~]# vim /etc/rsyslog.conf 
authpriv.*                                              /var/log/secure

二、服务名称

### --- 服务名称

~~~     那么我们首先需要确定 rsyslogd 服务可以识别哪些服务的日志,
~~~     也可以理解为以下这些服务委托了 rsyslogd 服务来代为管理日志。
~~~     这些服务如表 16-3 所示:
说   明
auth(LOG_AUTH)安全和认证相关消息(不推荐使用 authpriv 替代)
authpriv(LOG_AUTHPRIV)安全和认证相关消息(私有的)
cron(LOG_CRON)系统定时任务 cront 和 at 产生的日志
daemon(LOG_DAEMON)和各个守护进程相关的日志
ftp(LOG_FTP)ftp守护进程产生的日志
kern(LOG_KERN)内核产生的日志(不是用户进程产生的)
local0-local7(LOG_LOCAL0-7)为本地使用预留的服务
lpr(LOG_LPR)打印产生的日志
mail(LOG_MAIL)邮件收发信息
news(LOG_NEWS)与新闻服务器相关的日志
syslog(LOG_SYSLOG)有syslogd服务产生的日志信息(虽然服务名称已经改为rsyslogd,但是很多配置都还是沿用了syslogd,这里并没有修改服务名
user(LOG_USER)用户等级类别的日志信息
uucp(LOG_UUCP)uucp子系统的日志信息,uucp是早期linux系统进行数据传递的协议,后来也常用在新闻组服务中。
### --- 连接符号
### --- 日志服务连接日志等级的格式是:

~~~     日志服务[连接符号]日志等级
~~~     在这里连接符号可以识别为:
~~~     日志记录位置
~~~     “.”代表只要比后面的等级高的(包含该等级)日志都记录下来。比如:“cron.info”代表 cron 服务产生的日志,只要日志等级大于等于 info 级别,就记录
~~~     “.=”代表只记录所需等级的日志,其他等级的都不记录。比如:“*.=emerg”代表任何日志服务产生的日志,只要等级是 emerg 等级就记录。这种用法及少见,了解就好
~~~     “.!”代表不等于,也就是除了该等级的日志外,其他等级的日志都记录。

四、日志等级:表 16-4 日志等级

说明
debug(LOG_DEBUG)一般的调试信息说明
info(LOG_INFO)基本的通知信息
notice(LOG_NOTICE)普通信息,但是有一定的重要性
warning(LOG_WARNING)警告信息,但是还不回影响到服务或系统的运行了
err(LOG_ERR)错误信息,一般达到err等级的信息以及可以影响到服务或系统的运行了
crit(LOG_CRIT)临界状况信息,比err等级还要验证
alert(LOG_ALERT)警告状态信息,比crit还要验证,必须立即采取行动
emerg(LOG_EMERG)疼痛等级信息,系统已经无法使用了
*代表所有日志,比如:“authpriv.*”代表,authpriv认证信息服务产生的日志,所有的日志等级都记录
### --- 日志等级这里还可以识别“none”,

~~~     如果日志等级是 none,就说明忽略这个日志服务,该服务的所有日志都不再记录。
### --- 日志记录位置

~~~     日志记录位置就是当前日志输出到哪个日志文件中保存,
~~~     当然也可以把日志输出到打印机打印,
~~~     或者输出到远程日志服务器上(当然日志服务器要允许接收才行)。
~~~     日志的记录位置也是固定的,我们来学习下:
~~~     日志文件的绝对路径。这是最常见的日志保存方法,
~~~     如“/var/log/secure”就是保存系统验证和授权信息日志的。
~~~     系统设备文件。如“/dev/lp0”代表第一台打印机,
~~~     如果日志保存位置是打印机设备的话,
~~~     当有日志时就会在打印机打印(不太符合可持续发展战略哦-_-!)。
~~~     转发给远程主机。因为可以选择使用 TCP 协议和 UDP 协议传输日志信息,
~~~     所以有两种发送格式。如使用“@192.168.0.210:514”,
~~~     就会把日志内容使用 UDP 协议发送到192.168.0.210 的 UDP 514端口上;
~~~     如果使用“@@192.168.0.210:514”就会把日志内容使用 
~~~     TCP 协议发送到 192.168.0.210 的 TCP 514 端口上,
~~~     其中 514 是日志服务默认端口。当然只要 192.168.0.210 同意接收此日志,
~~~     就可以把日志内容保存在日志服务器上。
~~~     用户名。如“root”,就会把日志发送给 root 用户,当然 root 要在在线,
~~~     否则就收不到日志信息了。发送日志给用户时,可以使用“*”代表发送给所有在线用户,
~~~     如“mail.**”就会把 mail 服务产生的所有级别的日志发送给所有在线用户。
~~~     如果需要把日志发送给多个在线用户,用户名之间用“,”分隔。忽略或丢弃日志。
~~~     如果接受日志的对象是“~”,代表这个日志不会记录,而被直接丢弃。
~~~     如“local3.*~”代表忽略 local3 服务类型所有的日志都不记录。

五、/etc/rsyslog.conf 配置文件的内容

### --- /etc/rsyslog.conf 配置文件的内容

[root@localhost ~]# vi /etc/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)
~~~     加载 imuxsock 模块,为本地系统登录提供支持
$ModLoad imklog
~~~     provides kernel logging support (previously done by rklogd)
~~~     加载 imklog 模块,为内核登录提供支持
~~~     $ModLoad immark # provides --MARK-- message capability
~~~     加载immark 模块,提供标记信息的能力
~~~     Provides UDP syslog reception
~~~     $ModLoad imudp
~~~     $UDPServerRun 514
~~~     加载 UPD 模块,允许使用 UDP 的 514 端口接收采用 UDP 协议转发的日志
~~~     Provides TCP syslog reception
~~~     $ModLoad imtcp
~~~     $InputTCPServerRun 514
~~~     加载 TCP 模块,允许使用 TCP 的 514 端口接收采用 TCP 协议转发的日志
#### 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
~~~     包含/etc/rsyslog.d/目录中所有的“.conf”子配置文件。也就是说这个目录中的所有
~~~     子配置文件也同时生效。
#### RULES ####
~~~     日志文件保存规则
~~~     Log all kernel messages to the console.
~~~     Logging much else clutters up the screen.
~~~     kern.*                          /dev/console
~~~     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
~~~     所有服务.info 以上级别的日志保存在/var/log/messages 日志中。
~~~     mail,authpriv,cron 的日志不记录在/var/log/messages 日志文件中,因为它们都有自己的日志文件。
~~~     所以/var/log/messages 日志是最重要的系统日志文件,需要经常查看!
~~~     The authpriv file has restricted access.
authpriv.*                              /var/log/secure
~~~     用户认证服务所有级别的日志保存在/var/log/secure 日志中
# Log all the mail messages in one place.
mail.*                                  -/var/log/maillog
~~~     mail 服务的所有级别的日志保存在/var/log/maillog 日志中。
~~~     “-”号的含义是日志先在内存之中保存,当日志够多之后,再向文件中保存。
~~~     Log cron stuff
cron.*                  /var/log/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
~~~     ucp 和 news 日志服务的 crit 以上的日志保存在/var/log/sppoler 日志文件中。
~~~     Save boot messages also to boot.log
local7.*                /var/log/boot.log
~~~     loacl7 日志服务的所有日志写入/var/log/boot.log 日志中。
~~~     会把开机时的检测信息在显示到屏幕的同时,写入/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 ##

六、定义自己的日志

### --- 定义自己的日志

[root@server11 ~]# vim /etc/rsyslog.conf
~~~     写入一下一句话
*.crit          /var/log/alert.log
~~~     把所有服务的“临界点”以上的错误都保存在/var/log/alert.log 日志中
~~~     重启 rsyslog 服务

[root@server11 ~]# systemctl restart rsyslog.service 
~~~     关闭系统日志记录器:                  [确定]
~~~     启动系统日志记录器:                  [确定]
[root@server11 ~]# ll /var/log/alert.log 
-rw------- 1 root root 0 Feb  4 13:40 /var/log/alert.log
~~~     alert.log 日志就生成了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yanqi_vip

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

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

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

打赏作者

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

抵扣说明:

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

余额充值