linux_日志管理和轮转

日志管理
简介
rsyslog 系统日志管理
那类程序会产生哪些日志要给放到哪里
logrotate 日志的轮转
将大量的日志分割管理,删除旧日志
处理日志的进程
第一类
rsyslog 系统专职日志程序
处理绝大部分的日志程序
系统有关的信息,如登陆信息,程序启动关闭的信息,错误信息

[root@localhost ~]# ps aux | grep rsyslog
root   635  0.0  0.3 210180  3924 ?  Ssl 18:28 0:00 /usr/sbin/rsyslogd -n
root  1435 0.0 0.0 112660 972 pts/0 R+ 18:35 0:00 grep --color=auto rsyslog

第二类
各类应用程序,可以以自己的方式记录日志
常见的日志文件(系统进程应用程序)

tail   -10   /var/log/messages
	//系统主日志文件
tail -f /var/log/messages
	//动态查看日志文件的尾部
tailf /var/log/secure
	 //认证、安全
tail /var/log/yum.log
	 //yum
tail /var/log/maillog
	 //跟邮件postfix相关
tail /var/log/cron
	//crond、at进程产生的日志
tail /var/log/dmesg
	 //和系统启动相关
tail /var/log/audit/audit.log
	 //系统审计日志
tail /var/log/mysqld.log
	//MySQL
tail /var/log/xferlog
	//和访问FTP服务器相关
tail  /var/log/wtmp
	//当前登录的用户(命令:w)
tail  /var/log/btmp
	//最近登录的用户(命令last)
tail  /var/log/lastlog
	//所有用户的登录情况(命令lastlog )

rsyslog配置
相关的程序

[root@localhost yum.repos.d]# yum -y install rsyslog logrotate
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
Package rsyslog-8.24.0-41.el7_7.2.x86_64 already installed and latest version
Package logrotate-3.8.6-17.el7.x86_64 already installed and latest version
Nothing to do

启动程序

[root@localhost ~]# systemctl start rsyslog.service

相关的配置文件

[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog     和日志办轮转的
/etc/rsyslog.conf           rsyslog主配置文件
/etc/sysconfig/rsyslog      rsyslog相关的文件,定义级别

主配置文件
告诉rsyslog进程什么日志放在什么地方
主配置文件介绍

#### 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.*          ssh信息                                    /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                                                 :omusrmsg:*

RULES即规则
规则是一套生成日志以及存储日志的策略
规则有设备+级别+存储位置
RULES 有FACILITY_LEVEL+FILE组成

facility
是系统对某种类型事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。
# man 3 syslog

**设备类型**
	LOG_SYSLOG
		syslogd自身产生的日志 
	LOG_AUTHPRIV
		安全认证
	LOG_CRON 
		(cron and at)
	LOG_MAIL
		邮件系统mail subsystem
	LOG_USER (default)
		用户相关
	LOG_DAEMON
		后台进程
	LOG_FTP
		ftp daemon
	LOG_KERN
		kernel messages
	LOG_LPR
		打印机
		printer subsystem
	LOG_LOCAL0 through LOG_LOCAL7
		 用户自定义设备
**程序类型示例**
	关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。如SSH程序会选择安全类设备。这一点由开发者定义。
	#grep  Facility    /etc/ssh/sshd_config 
SyslogFacility AUTHPRIV
	请问这个程序是属于哪个设备呢?
		认证设备

level级别

LOG_EMERG 		紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 		报警,需要立即处理,如磁盘空使用95%
LOG_CRIT 		致命行为
LOG_ERR 		错误行为
LOG_WARNING	 警告信息
LOG_NOTICE 	普通,重要的标准信息
LOG_INFO 		标准信息
LOG_DEBUG 		调试信息,排错所需,一般不建议使用
	从下到上,级别从低到高,记录的信息越来越少

规则示意图
在这里插入图片描述
日志的轮转
简介
日志 记录了程序运行时各种信息。
通过日志可以分析用户行为,记录运行轨迹,查找程序问题。
可惜磁盘的空间是有限的
日志论战就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。
为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。
按照配置进行轮转
配置文件的种类
主文件

[root@localhost ~]# ls /etc/logrotate.conf    决定着每个日志如何轮转
/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
# 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       //保留一次
}
/var/log/btmp {
    missingok     //丢失不提示
    monthly       //每个月轮转一次
    create 0600 root utmp   //轮转后创建文件,并设置权限
    rotate 1      //保留一份
}
# system-specific logs may be also be configured here.

子文件

[root@localhost ~]# ls /etc/logrotate.d/*
/etc/logrotate.d/bootlog  /etc/logrotate.d/syslog /etc/logrotate.d/wpa_supplicant  /etc/logrotate.d/yum

轮换实例

[root@BJcoud_computing_hp_hao ~]# vim /etc/logrotate.d/yum 
/var/log/yum.log {
    missingok
 #    notifempty
 #   maxsize 30k
 #  yearly
    daily
    rotate 3
    create 0777 root root
}

错误示范

[root@BJcoud_computing_hp_hao ~]# logrotate /etc/logrotate.conf  手动轮转 
[root@BJcoud_computing_hp_hao ~]# ls /var/log/yum*
/var/log/yum.log  /var/log/yum.log-20200227   文件只有一个,因为日期没变

正确示范

[root@BJcoud_computing_hp_hao ~]# date 04251010
Sat Apr 25 10:10:00 CST 2020
[root@BJcoud_computing_hp_hao ~]# logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf 
[root@BJcoud_computing_hp_hao ~]# ls /var/log/yum*
/var/log/yum.log  /var/log/yum.log-20200227  /var/log/yum.log-20200423  /var/log/yum.log-20200425
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值