一、日志文件:主要记录在本机上谁什么时间做了什么事情.
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手册。