centos7—日志文件

一、日志文件:主要记录在本机上谁什么时间做了什么事情.

 

1、日志文件在管理中的作用:1).系统故障排错

                                           2).统计访问量

2、日志软件: rpm -q rsyslog

     文件列表: rpm -ql rsyslog

     配置文件: rpm -qc rsyslog

3、日志文件默认位置:/var/log

     注:某些第3方软件的日志文件位于软件自己的目录中的log目录或其他位置。

4、常见的日志文件:(/var/log)

     注:文件类型用file命令查。

           大多数日志文件是纯文本文件,可以用cat 、head来查看。

           还有一些是二进制日志文件,需要用专用的命令来查看。

     secure:安全相关,主要是用户认证,如登录 、创建和删除账号 、sudo等

     audit/audit.log:审计日志。跟用户账号相关

     messages:记录系统和软件的绝大多数消息。如服务启动 、停止 、服务错误等。

     boot.log:系统启动日志。能看到启动流程。

     cron:计划任务日志。会记录crontab计划任务的创建、执行信息。

     dmesg:硬件设备信息(device)。纯文本,也可以用dmesg命令查看。

     yum.log:yum软件的日志。记录yum安装、卸载软件的记录。

     lastlog:最后登录的日志。用lastlog查看(二进制日志文件)

     btmp:登录失败的信息(bad)。用lastb查(二进制日志文件)

     wtmp:正确登录的所有用户命令(who、w),用last查(二进制日志文件)

 

日志练习:开两个命令终端窗口,分别执行不同的命令,看A窗口中的日志信息变化,

     A窗口:tail -0f /var/log/messages     #实时监测messages日志文件

     B窗口:systemctl restart firewalld

                 systemctl stop firewalld

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

rsyslog日志程序的配置文件:rpm -qc rsyslog     #查的结果如下

     /etc/logrotate.d/syslog      #日志轮转(切割、轮替)策略文件

     /etc/rsyslog.conf     #主配置文件

     /etc/sysconfig/rsyslog     #环境设置配置文件

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

主配置文件:/etc/rsyslog.conf

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

日志类别:(用man 3 syslog来查看)

     注:日志类别主要是用来区分软件、服务.

     LOG_AUTH     #安全或授权信息

     LOG_AUTHPRIV     #安全或授权信息 (私有)

     LOG_CRON     #计划任务

     LOG_DAEMON     #系统守护进程 without separate facility value

     LOG_FTP     #ftp守护进程相关

     LOG_KERN     #内核消息 (these can't be generated from user processes)

     LOG_LOCAL0 through LOG_LOCAL     #本地自定义

     LOG_LPR     #打印子系统

     LOG_MAIL     #邮件子系统

     LOG_NEWS     #新闻组子系统

     LOG_SYSLOG     #系统消息(8)

     LOG_USER (default)     #一般用户的等级的消息

     LOG_UUCP     #UUCP subsystem     unix  like机器本身相关子系统

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

日志等级level:(用man 3 syslog来查看)

     注:等级主要用来区分某个软件中日志的分类。

     LOG_EMERG     #疼痛级,严重错误

     LOG_ALERT     #报警.必须立即采取措施

     LOG_CRIT     #较严重

     LOG_ERR     #错误

     LOG_WARNING     #警告

     LOG_NOTICE     #提示信息.normal, but significant, condition

     LOG_INFO     #信息

     LOG_DEBUG     #调试级信息

     注:等级为none表示不记录任何信息。

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

案例一:要求创建一个跟messages日志文件相同的日志规则,将日志记录到/var/log/my.log文件中.

     vim /etc/rsyslog.conf     #执行如下操作

        *.info;mail.none;authpriv.none;cron.none     /var/log/messages     #找到此行

        *.info;mail.none;authpriv.*;cron.none     /var/log/my.log     #添加此行

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

重启rsyslog服务:systemctl restart rsyslog

查看日志:cat /var/log/my.log

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

二、logger 是Shell命令,可以通过该命令使用 rsyslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

1、logger命令的语法为:

     logger [-i] [-f filename] [-p priority] [-t tag] [message...]

     注:-f filename:将 filename 文件的内容作为日志。

           -i 每行都记录logger进程的ID。

           -p priority:指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为 user.notice。

           -t tag:使用指定的标签标记每一个记录行。

           message:要写入的日志内容,多条日志以空格为分隔;如果没有指定日志内容,并且 -f filename 选项为空,那么会把标准输入作为日志内容。

 

案例一:将ping命令的结果写入日志:

     创建ping的日志:ping -c 3 127.0.0.1 | logger -it logger_test -p local3.notice  

     创建ping的日志:ping -c 3 127.0.0.5 | logger -it logger_test -p local3.notice 

     查看日志文件:cat /var/log/user.log

     查看到的日志内容:Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

     发现ping命令的结果成功输出到/var/log/userlog 文件。

 

     注:命令 logger -it logger_test -p local3.notice 各选项的含义:

           -i:在每行都记录进程ID;

           -t logger_test:每行记录都加上“logger_test”这个标签;

           -p local3.notice:设置日志类型和优先级。

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

三、logrotate日志切割:

1、作用:1).防止日志文件过大

               2).定期删除旧日志文件

 

2、配置文件:rpm -qc logrotate     #文件如下

     /etc/cron.daily/logrotate

     /etc/logrotate.conf

     /etc/rwtab.d/logrotate

     /var/lib/logrotate/logrotate.status

 

3、查轮滚策略帮助手册:man logrotate.conf

4、配置文件内容:cat /etc/logrotate.conf

     注:此配置文件主要定义日志文件切割(轮滚、轮转、滚动)的策略方案.

     # see "man logrotate" for details

     # rotate log files weekly

     weekly     #每周一轮滚

 

     # keep 4 weeks worth of backlogs

     rotate 4     #保留4个备份

 

     # create new (empty) log files after rotating old ones

     create     #创建新的空日志文件代替旧文件

 

     # use date as a suffix of the rotated file

     dateext     #使用日志为文件名后缀,禁用此项时默认以数字为后缀.

 

     # uncomment this if you want your log files compressed

     #compress     #是否压缩(后缀为.gz)

 

     # RPM packages drop log rotation information into this directory

     include /etc/logrotate.d     #包含指定的目录,此目录下保存日志策略

 

     # no packages own wtmp and btmp -- we'll rotate them here

     /var/log/wtmp {     #日志文件路径及其个性化轮转策略

         monthly     #每月一轮滚

         create 0664 root utmp     #创建的新日志文件权限、属主 、属组

         minsize 1M     #文件最小容量

         rotate 1     #保留1个备份

     }

 

     /var/log/btmp {

         missingok     #丢了也不会报错

         monthly

         create 0600 root utmp

         rotate 1

     }

 

     # system-specific logs may be also be configured here.

-------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------

强制测试轮滚:logrotate -fv /etc/logrotate.conf

                      ls /var/log/

     注:1、-f是强制轮滚,-v显示过程

         2、日志文件名后缀的数字越大,文件越旧。日志清理时是清理旧文件。

 

案例一:给/var/log/my.log日志文件创建轮滚策略,每天一轮滚,文件丢了也不报错,保留2个备份,启用压缩功能,用数字作为文件名后缀.

     vim /etc/logrotate.d/my   添加如下内容

          /var/log/my.log  {

               daily     #每天一轮滚

               missingok     #丢了也不报错

               nodateex     #不使用日期为后缀,即用数字为后缀

               create     #创建新文件

               rotate 2     #保留2个备份

               compress     #启用压缩(后缀为.gz)

          }

 

测试轮滚:logrotate -fv /etc/logrotate.d/my

查看日志文件列表:ls /var/log/my*

 

注:部分知识点来源于man手册。

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux基础)