第11章 日志管理

日志进程rsyslog

1、日志管理

简介

任务一:rsyslog系统日志管理

关心问题:

哪类问题—>

产生的什么日志—>

放到什么地方—>

任务二:logrotate直至轮转

将大量的日志,分割管理,删除旧日志

任务一详解

一、处理日志的进程

第一类:

rsyslog:系统专职日志程序。

处理绝大部分日志

操作系统有关的信息,如登录信息,程序启动关闭信息,错误信息

第二类:

httpd、nginx、mysql:各类应用程序,可以以自己的方式记录日志,讲解对应程序时会逐步介绍

观察rsyslogd程序:

ps aux | grep rsyslogd
[root@bogon /]# ps aux | grep rsyslogd
root       1145  0.0  0.2 222764  5536 ?        Ssl  13:19   0:01 /usr/sbin/rsyslogd -n
root       2231  0.0  0.0 112816   972 pts/0    S+   16:02   0:00 grep --color=auto rsyslogd
二、常见的日志文件(系统、进程、应用程序)

tail -10 /var/log/messages #系统主日志文件

tail -f /var/log/messages #动态查看日志文件的尾部

tail -f /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)

三、rsyslogd配置

1、相关程序

yum install -y rsyslog logrotate

默认安装

2、启动程序

systemctl start rsyslog.service

3、相关文件

rpm -qc rsyslog

查询软件包的安装情况

-q 安装包

-c 配置文件

[root@bogon ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog

/etc/rsyslog.conf

/etc/sysconfig/rsyslog

/etc/logrotate.d/syslog

观察日志程序的配置文件

四、主配置文件

告诉rsyslog进程是什么日志,应该存到哪里

vim /etc/rsyslog.conf

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

系统日志排除了邮件,认证,计划日志。

FACILITY&LEVEL

facility设备

facility

是系统对某种类型APP事件的定义。如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 打印机

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 调试信息,排错所需,一般不建议使用

规则示意图

目的:通过绘图的形式来理解日志的工作机制。

图示:如图一台服务器

image.png

日志轮转logrotate

简介

日志记录了程序运行时各种信息。

通过日志可以分析用户行为,记录运行轨迹,查找程序问题。

可惜磁盘的空间是有限的

日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段事件发生的事。

为了节省空间和整理方便,日志文件经常需要按!时间或!大小等维度分成多份,删除时间久远的日志文件。

工作原理

按照配置进行轮转

配置文件种类

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

子文件夹:/etc/logrotate.d/* 自定义 好删

观察主文件和子文件

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

/etc/logrotate.d/:
bootlog  syslog  wpa_supplicant  yum

主配置文件介绍

# see "man logrotate" for details
  详细的日志轮转使用man logrotate
# 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              #最小达到1M才轮转,monthly and minisize
    rotate 1                #保留1份
}

/var/log/btmp {
    missingok               #丢失不提示
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

yum日志轮转实例

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

/var/log/yum.log

配置轮转规则

    /var/log/yum.log {
    missingok                               #丢失不执行
    # notifempty                        #空文件不轮转
    # maxsize 30k                       #达到30k轮转,daily or size
    # yearly                                #或者一年一轮转
    daily                                       #缩小周期到一天一轮转
    rotate3                                 #轮转保留3词
    create 0600 root root       #轮转后创建新文件,并设置权限
}

测试

错误示范

# /usr/sbin/logrotate /etc/logrotate.conf #手动轮转

# ls /var/log/yum*

/var/log/yum.log

正确示范

修改时间,手动触发轮转

# date 04011000 月日时间,4月1日10点0分

# /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

# ls /var/log/yum* 日志文件已经出现多个

关于时间

# grep 'yum' /var/lib/logrotate/logrotate.status #记录所有日志文件最近轮转的时间

"/var/log/yum.log" 2019-3-31-10:0:23
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值