Linux系统日志管理

一.简介

  • 任务一:rsyslog系统日志管理
    哪类程序—》产生的什么日志—》放到什么地方
  • 任务二:logrotate日志轮转
    将大量的日志,分割管理,删除旧日志。

二.任务一详解

1.处理日志的进程

1.1第一类

rsyslogd: 系统专职日志程序。处理绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息。

1.2第二类

httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志。

1.3观察rsyslogd程序

[root@localhost ~]# ps aux | grep rsyslogd
root       1262  0.0  0.4 214452  4144 ?        Ssl  18:59   0:00 /usr/sbin/rsyslogd -n

2.常见的日志文件(系统、进程、应用程序)

#常见的日志文件(系统、进程、应用程序)

tail -10 /var/log/messages    #系统主日志文件。-10为查看10行。
tail -f /var/log/messages     #动态查看日志文件的尾部
tailf /var/log/secure         #认证,安全,tailf=tail -f,-f动态查看
tail /var/log/yum.log         #yum
tail /var/log/maillog         #跟邮件postfix相关
tail /var/log/cron            #crond、at进程产生的日志
tail /var/log/dmesg           #和系统启动相关

#了解

/var/log/audit/audit.log   #系统审计日志
/var/log/mysqld.log        # MySQL
/var/log/xferlog           #和访问FTP服务器相关
/var/log/wtmp              #当前登录的用户(命令:w)
/var/log/btmp              #最近登录的用户(命令:last)
/var/log/lastlog           #所有用户的登录情况(命令:lastlog )

#网站日志管理
		
#1.安装

yum install -y httpd
systemctl  start  httpd
systemctl stop  firewalld

#2.调整网络
		
systemctl  restart  network   #桥接网络时重新开启network
ip  a
			
#3.访问你的IP

打开浏览器,输入你的服务器IP进行浏览

#4.观察日志

tailf /var/log/httpd/access_log

3.rsyslogd配置

3.1相关程序

[root@localhost ~]# yum install -y rsyslog logrotate   #默认已经安装

3.2启动程序

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

3.3相关文件

[root@localhost ~]# rpm -qc rsyslog   #查看配置文件所在路径
/etc/logrotate.d/syslog   #rsyslogd的主配置文件
/etc/rsyslog.conf   #rsyslogd相关文件,定义级别
/etc/sysconfig/rsyslog   #和日志轮转(切割)相关

4.主配置文件

  • 告诉rsyslogd进程什么日志应该存放在什么位置。
[root@localhost ~]# vim /etc/rsyslog.conf

4.1RULES

  • RULES:即规则,是一套生成日志,以及存储日志的策略。
  • RULES即规则,有三部分组成(由设备+级别+存放位置),RULES由FACILITY+LEVEL+FILE组成。
authpriv.* 		/var/log/secure(SSH信息)
mail.* 			-/var/log/maillog(发邮件)
cron.* 			/var/log/cron(创建任务)
#这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大

*.info;mail.none;authpriv.none;cron.none   /var/log/messages   
#系统日志排除了邮件,认证,计划日志。

4.2FACILITY&LEVEL

  • facility设备

1.facility
是系统对某种类型APP事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。用来收集同类程序日志。

[root@localhost ~]# man 3 syslog

2.设备类型

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   #用户自定义设备

3.程序类型示例
关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。如SSH程序会选择安全类设备。这一点由开发者定义。

#1.修改ssh程序的设备类型

vim /etc/ssh/sshd_config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5

#2.修改rsyslog程序规则

vim /etc/rsyslog.conf
local5.*  /var/log/serverzz

#3.重启rsyslog程序和ssh程序

systemctl restart rsyslog.service  sshd

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

4.3规则示意图

  • 目的:通过绘图形式类似理解日志工作机制
    在这里插入图片描述

三.任务二详解

1.简介

  • 日志记录了程序运行时各种信息。 通过日志可以分析用户行为,记录运行轨迹,查找程序问题。 可惜磁盘的空间是有限的。
  • 日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。
  • 为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。

2.工作原理

  • 按配置进行轮转

1.配置文件种类

#主配置文件:

/etc/logrotate.conf   #(决定每个日志文件如何轮转)

#子配置文件夹:

/etc/logrotate.d/*    #自定义配置,便于管理	 

2.观察主文件和子文件

#两种查看配置文件方法

[root@localhost ~]# ls /etc/logrotate.conf /etc/logrotate.d/

[root@localhost ~]# ls /etc/logrotate.*

/etc/logrotate.conf
/etc/logrotate.d/:
acpid cups iscsiuiolog ppp rpm subscription-manager up2date wpa_supplicant
conman httpd mgetty psacct setroubleshoot syslog vsftpd.log yum

3.主配置文件介绍

[root@localhost ~]# vim /etc/logrotate.conf
 
#=========全局设置==========

weekly 		    #轮转的周期,一周轮转
rotate 4 		#保留4份
create 		    #轮转后创建新文件
dateext 		#使用日期作为后缀
#compress	    #是否压缩
include /etc/logrotate.d	#包含该目录下的子配置文件

/var/log/wtmp { 	   #对某日志文件设置轮转的方法
monthly 			   #一月轮转一次
minsize 1M 		       #最小达到1M才轮转,monthly and  minsize(同时达到两个条件)
create 0664 root utmp  #轮转后创建新文件,并设置权限
rotate 1 		       #保留一份
}

/var/log/btmp {
missingok 		       #丢失不提示
monthly 			   #每月轮转一次
create 0600 root utmp  #轮转后创建新文件,并设置权限
rotate 1 		       #保留一份
}

4.yum日志轮转实例

  • 轮转的目标文件
/var/log/yum.log

4.1配置轮转规则

[root@localhost ~]# vim /etc/logrotate.d/yum 

/var/log/yum.log {
missingok		          #丢失不执行
# notifempty		      #空文件不论转
# maxsize 30k		      #达到30k轮转, daily or size
# yearly		          #或者一年一轮转
daily		              #缩小周期到1天
rotate 3		          #轮转保留3次
create 0777 root root
}

4.2测试

1.错误示范

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

2.正确示范

#修改时间,手动触发轮转

[root@localhost ~]# date 04011000   #date  月日时分,把时间向未来推移
[root@localhost ~]# /usr/sbin/logrotate  -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
[root@localhost ~]# ls /var/log/yum*
#日志文件已经出现多个

3.关于时间

[root@localhost ~]# grep 'yum' /var/lib/logrotate/logrotate.status   #记录所有日志文件最近轮转的时间
"/var/log/yum.log" 2020-8-10-17:14:6   #如果没有轮转过,第一次只有记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值