centos7的日志管理

日志管理

简介

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

任务一

一 处理日志的进程

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

root@localhost ~]# ps aux |grep rsyslogd
在这里插入图片描述

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

tail -10 /var/log/messages
//系统主日志文件
centos7的日志管理_第1张图片

tail -f /var/log/messages
//动态查看日志文件的尾部
当用户信息变更日志也会相应的变更centos7的日志管理_第2张图片

# 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
	 //和系统启动相关
	 。。。。。。。。。。。

网站日志管理

1.yum install -y httpd安装httpd环境
2.systemctl start httpd开启httpd环境
3.systemctl stop firewalld关闭防火墙

centos7的日志管理_第3张图片
桥接调整网络

systemctl restart network

systemctl重启网络

访问本机ip

centos7的日志管理_第4张图片

三 rsyslogd配置

1.相关程序
yum install rsyslog logrotate
默认已安装
centos7的日志管理_第5张图片

2.启动程序
systemctl start rsyslog.service

rpm -qc rsyslog
查询配置文件
centos7的日志管理_第6张图片

/etc/rsyslog.conf
rsyslogd的主配置文件(关键)

/etc/sysconfig/rsyslog
rsyslogd相关文件,定义级别(了解一下)
/etc/logrotate.d/syslog
和日志轮转(切割)相关(任务二)

四 主要配置文件

# vim /etc/rsyslog.conf

RULES
RULES:即规则,是一套生成日志,以及存储日志的策略。
RULES即规则,有三部分组成(由设备+级别+存放位置)
	RULES由FACILITY+LEVEL+FILE组成。
authpriv.* 		/var/log/secure(SSH信息)

cron.* /var/log/cron(创建任务)

**mail.* 			-/var/log/maillog(发邮件)
这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大**

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

centos7的日志管理_第7张图片

FACILITY&LEVEL

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

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

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

程序类型示例

关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。
如SSH程序会选择安全类设备。这一点由开发者定义。
1.修改ssh程序的设备类型
vim /etc/ssh/sshd_config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
centos7的日志管理_第8张图片

2.修改rsyslog程序的规则
vim /etc/rsyslog.conf
local5.* /var/log/srevicez
centos7的日志管理_第9张图片

3.重启rsyslog程序和ssh程序
systemctl restart rsyslog.service sshd
4.使用其他终端,登录服务器,观察新日志文件。

任务二

logrotate日志轮转

简介

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

工作原理

按照配置进行轮转

配置文件种类
	主配置文件:/etc/logrotate.conf
		 (决定每个日志文件如何轮转)
	子配置文件夹:/etc/logrotate.d/*
		自定义配置
		便于管理
观察主文件和子文件
	[root@qianfeng ~]# ls /etc/logrotate.conf /etc/logrotate.d/
/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

centos7的日志管理_第10张图片

主配置文件介绍

[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 //保留一份
}
centos7的日志管理_第11张图片

日志轮转实例

配置轮转规则
# 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
}
centos7的日志管理_第12张图片

正确示范
修改时间,手动触发轮转
# date 04011000
date 月日时分
把时间向未来推移
# /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
# ls /var/log/yum*
日志文件已经出现多个
centos7的日志管理_第13张图片

关于时间
# grep 'yum' /var/lib/logrotate/logrotate.status //记录所有日志文件最近轮转的时间
"/var/log/yum.log" 2019-3-31-10:0:23
	//如果没有轮转过,第一次只有记录

你可能感兴趣的:(日志管理,linux)