Linux日志管理syslog和logrotate

1、日志管理概述

rsyslog系统日志管理
哪类程序》产生的什么日志》放在什么地方

有系统日志
有应用程序内部日志

ps axu | grep rsyslogd

/usr/sbin/rsyslogd -n

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

tail -10 /var/log/messages        = 系统主日志文件(重要)
tail -f /var/log/messages         = 动态查看日志文件的尾部
tail /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)

2、rsyslog安装与配置

rsyslog是一个程序,是一个进程,有相关的配置文件。

2.1 rsyslog安装

yum install -y rsyslog logrotate

systemctl enable rsyslog.service
systemctl start rsyslog.service

rpm -qa rsyslog
列出rsyslog包产生的相关所有文件
rpm -ql rsyslog
查看rsyslog相关的配置文件
rpm -qc rsyslog

2.2 rsyslog的主要配置文件

配置文件配置说明
/etc/rsyslog.confrsyslogd的主配置文件(关键)
/etc/sysconfig/rsyslogrsyslogd的相关文件,定义级别(了解一下)
/etc/logrotate.d/syslog和日志轮转(切割)相关的文件

rsyslog

ps aux | grep rsyslogd | grep -v grep
所属用户	PID	 没有耗CPU 占用内存	虚拟内存  XX   没有终端(操作系统开启的)  在睡觉  开启时长  占用CPU0.00秒  启动命令
root    823    0.0      0.1    218528  4840     ?                      Ssl  07:45     0:00         /usr/sbin/rsyslogd -n

rsyslogd配置

/etc/rsyslog.conf文件的格式template

布拉布拉布拉
6 #### MODULES ####
布拉布拉布拉
23 #### GLOBAL DIRECTIVES ####
布拉布拉布拉;
46 #### RULES ####
布拉布拉布拉;
RULES 即规则,是一套生成日志,以及存储日志的策略。
规则由:(设备+级别+存放位置) 组成。
       (FACILITY+LEVEL+FILE) 组成
       authpriv.*      /var/log/secure(SSH信息;SSH程序被定义为安全类设备,由开发者定义)
       mail.*          /var/log/maillog(发邮件)
       cron.*          /var/log/cron(创建计划任务)

76 # ### begin forwarding rule ###
布拉布拉布拉
91 # ### end of the forwarding rule ###

什么设备、日志级别、存放位置
cron设备、*任意级别、存放在/var/log/cron

第60行的 - 表示使用异步的方式记录日志。

查看设备

设备类型:
LOG_SYSLOG					  syslogd自身产生的日志
LOG_AUTHPRIV				  安全认证
LOG_CRON				      调度程序(cron and at)
LOG_MAIL                      邮件系统 mail subsystem
LOG_USER(default)             用户相关
LOG_DAEMON                    后台进程
LOG_FTP                       文件服务器
LOG_KERN                      内核设备
LOG_LPR                       打印机设备
LOG_LOCAL0 through LOG_LOCAL7 用户自定设备

查看级别

LOG_EMERG       紧急、致命、服务无法继续运行;如配置文件丢失。
LOG_ALERT       报警、需要立即处理;如磁盘占用达95%。
LOG_CRIT        知名行为信息。
LOG_ERR         错误行为信息。
LOG_WARNING     警告信息。
LOG_NOTICE      普通、重要的标准信息。
LOG_INFO        标准信息。
LOG_DEBUG       调试信息、排错所需,一般不建议使用。
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

; 表示并列规则。
. 表示分割 设备、级别。
none 表示不放在这里

FACILITY+LEVEL+FILE的关系

安装httpd查看相关日志

安装:yum install -y httpd
启动:systemctl start httpd
查看:tail -f /var/log/httpd/access_log
访问:http://192.168.168.172/

3、logrotate安装与配置

/etc/logrotate.conf:主配置文件:决定每个日志文件如何轮转。
/etc/logrotate.d/*:子配置文件夹:放置子配置文件。

主配置文件/etc/logrotate.conf实践

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

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

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

yum轮转规则实战

原结构

/var/log/yum.log {
    missingok		//丢失不提醒
    notifempty		//空文件不轮转
    maxsize 30k		//达到30k轮转,daily or size
    yearly		//一年一轮转
    rotate 3    //保留3份
    create 0600 root root		//
}

修改后结构

/var/log/yum.log {
    missingok
#    notifempty
#    maxsize 30k
#    yearly
    daily
    create 0777 root root 
}
/usr/sbin/logrotate /etc/logrotate.conf
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

4、日志集中管理server和client

5、journalctl 日志存储大小管理

  1. 查找占用了空间大的目录空间
du --max-depth=1 -hdu -sh ./*
  1. 若是journal占用的空间较大,可通过journalctl进行日志清理

★ 查看日志占据的硬盘空间

journalctl --disk-usage

在这里插入图片描述

★ 清理方法可以采用按照日期清理,或者按照允许保留的容量清理

指定日志文件保存2天:specified with the usual "s", "m", "h", "days", "months", "weeks" and "years" suffixes
journalctl --vacuum-time=2d
指定日志文件占据的最大空间,默认为8M:specified with the usual "K", "M", "G" and "T" suffixes
journalctl --vacuum-size=500M

★ 如果要手工删除日志文件,则在删除前需要先轮转一次journal日志

systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service

★ 要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf

配置
SystemMaxUse=16M
ForwardToSyslog=no
重启
systemctl restart systemd-journald.service

★ 检查journal是否运行正常以及日志文件是否完整无损坏

journalctl --verify
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值