|NO.Z.00019|——————————|ManageMent|——|Linux&日志管理.V02|

一、日志简介
### --- 日志相关服务
### --- 在 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/httpd RPM包安装的apache服务的默认日志目录
/var/log/mail RPM包安装的邮件服务的额外日志目录
/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 日志就生成了

 

 

 

 

 

 

 

 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on   yanqi_vip  阅读(23)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示