linux日志管理

Linux计划任务

日志管理

日志进程

rsyslog是系统中的一个程序,用来记录操作系统的一言一行,它主要关心的是哪类程序,产生了什么日志,放到什么地方。

日志的分类
  • 第一类
    处理绝大部分的日志记录,主要是与操作系统有关的信息,比如登录信息,程序启动关闭信息,错误信息。
  • 第二类
    比如:httpd/nginx/mysql:处理各类的应用程序,可以以自己的方式记录日志
观察rsyslogd程序
ps aux | grep rsyslogd

在这里插入图片描述
查看它的进程号,如果有一天程序不记录日志了,这就说明了这个进程有问题,找到它并且让它重新启动就可以了。

/usr/sbin/rsyslogd -n

常见的日志文件一般存放在/var/log/中。

cd /var/log/

在这里插入图片描述
这里绝大部分的文件都会带有一个后缀名.log
这些文件中有一个文件叫messages是这个计算机的主日志文件,记录了计算机运行时候的大事小情,所以要查看这个文件。
这个文件行数很多,所以建议使用tail来进行查看。

tail -1 /var/log/messages

在这里插入图片描述
这行记录可以给我们提供的信息是:

Dec 2 15:34:02代表时间
localhost systemd:代表主机名
剩下的代表消息

打开多个终端,一个终端使用tail -f /var/log/messages 或者是tailf /var/log/messages ,一个终端可以随意敲击一些命令,观察messages的终端,会发现一件事,随着敲击的命令时,messages文件中也会多出多行信息,由此可以看出这个文件可以记录我们在计算机中的操作。
在这里插入图片描述

tailf /var/log/yum.log # 记录yum在操作时的日志

在这里插入图片描述

tailf /var/log/secure # 记录认证,安全方面的日志,比如授权,登录

在这里插入图片描述

tailf /var/log/maillog # 记录跟邮件postfix相关的日志
tailf /var/log/cron # 记录跟crond、at进程产生的日志
tailf /var/log/dmesg # 记录和系统启动相关的日志
rsyslogd配置
  • 如果发现你自己的centos7计算机中的rsyslog有问题,可以通过重新安装进行修复一下
yum reinstall rsyslog logrotate
  • 启动该程序
systemctl start rsyslog.service
  • 相关文件
    查询这个程序软件包的相关信息
rpm -q rsyslog

列出所有已经安装过的包的信息

rpm -qa

在这里插入图片描述
列出rsyslog的所有文件

rpm -ql rsyslog

在这里插入图片描述
查看已经安装过的程序的配置文件

rpm -qc rsyslog

在这里插入图片描述
接下来简单介绍一下这些配置文件:

/etc/rsyslog.conf这是rsyslogd的主配置文件
/etc/sysconfig/rsyslog这是rsyslogd的相关文件,定义级别
/etc/logrotate.d/syslog这是和日志轮转相关的文件
在linux中如果使用命令 --help 查询还是没有收获的话,可以推荐使用man 命令 来进行查询命令的相关信息。

man rpm

在这里插入图片描述
这样这个命令的详细信息就看到了。
在今后会学习很多的程序,他们的配置文件有个共同的特征,都在/etc/程序名.conf 中。
讲解一下rsyslog的主配置文件
在这里插入图片描述
可以访问它的官网
在这里插入图片描述
在这个配置文件中,有许多选项,按钮,如果你想把它打开就将#去掉,关闭就加上#
在这个配置文件中,到第46行,代表规则,主要讲了哪些程序产生了哪些日志存放在哪些地方。
在这里插入图片描述
随便找一行,比如第64行:

cron.* 调度程序
/var/log/cron这是调度程序存放的位置
cron.* 中的星号代表任何级别(日志的重要性,越往下越低):OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL

  • RULES
    在这个rsyslogd主配置文件中,有一个参数RULES特别重要
    RULES代表规则,有三部分组成,是一套生成日志和存储日志的策略。
    (规则由设备+级别+存放位置)组成
    (RULES由FACLITY+LEVEL+FILE)组成。
    例如:

authpriv.* /var/log/secure(ssh信息)
mail.* /var/log/maillog(发邮件)
cron.* /var/log/cron(创建任务)

  • faclity是什么?
grep Facility /etc/ssh/sshd_config

在这里插入图片描述
Syslog中的sys代表的是system系统,log是日志,syslog是系统日志,Facility是设备,AUTHPRIV:代表认证提供的设备。
常见的设备

log_syslog这是syslog自身产生的日志
log_authpriv安全认证
log_cron 调度程序
log_mail邮件系统
log_user用户相关

facility是系统对某种类型的APP事件的定义,比如authpriv是安全事件,用来收集同类日志。
可以使用man 3 syslog 进行查看。

  • level是什么?

*代表任意级别
log_emerg 紧急,致命,服务无法继续运行,比如配置文件丢失
log_alert报警,需要立即处理
log_crit致命行为
log_err错误行为
log_warning警告信息
log_notice普通的,重要的标准信息
log_info标准信息
log_debug调试信息,排错所需,一般不建议使用。

(级别从下到上依次减少,内容依次减少)

mail.* -/var/log/maillog

(这里的- 代表的是异步,在网络中有同步和异步的说法,同步指的是同时,异步是在不同的时间)
在这里插入图片描述
查看rsyslog进程的相关信息

ps aux | grep rsyslog

重新装载rsyslog程序的配置文件

kill -1 1110

举例:
在Linux软件安装的时候,我们安装了一个httpd,这是一个网站的应用程序
可以使用systemctl start httpd启动一下程序,之后访问网站:127.0.0.1,同时在命令行中输入tailf /var/log/httpd/assecc_log 来查看httpd的日志
在这里插入图片描述
在这里插入图片描述
当我们按下刷新时,这个日志也会跟着增长。

日志轮转

日志轮转的简介

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

按照配置进行轮转
  • 配置文件的种类
    主配置文件:/etc/logrotate.conf(决定每一个日志文件如何轮转)
    子文件夹:/etc/logrotate.d/*
  • 观察主文件和子文件
    观察yum的主配置文件和子配置文件
cd /etc/yum
ls -d -l /etc/yum.conf /etc/yum.repos.d

在这里插入图片描述
yum.conf代表的是主配置文件,yum.repos.d是子配置文件夹
观察日志轮转的主配置文件和子配置文件夹

ls /etc/logrotate.conf /etc/logrotate.d

在这里插入图片描述查看日志轮转的主配置文件

vim /etc/logrotate.conf

日志轮转的主配置文件的内容如下,

   # see "man logrotate" for details,可以使用man logrotate详细查看
   # rotate log files weekly
   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# dateext有两个部分,date时间extend扩展,总结起来就是以时间作为文件的扩展名
  # uncomment this if you want your log files compressed
  # compress代表压缩,将文件在轮转之后再压缩一下。
  # RPM packages drop log rotation information into this directory
  include /etc/logrotate.d# include代表包含,include 包含子配置文件夹
  # no packages own wtmp and btmp -- we'll rotate them here
  /var/log/wtmp {
      # /var/log/wtmp和系统登录的用户有关系,系统当中登录过哪些用户就记录再用户登录日志文件,wtmp存储的是当前的用户的登录,可以用w(who)命令查看
      # 我们可以在配置文件中书写日志的名字和大括号,就可以独立设定该日志的轮转规则,也就是明确要求的日志轮转周期就按明确要求的去轮转,没有明确要求的就按全局的周期去轮转。
      monthly# 一个月轮转一次
      create 0664 root utmp# 创建一个新的日志文件,0664代表的权限,root代表属主,utmp代表属组,总结就是创建的一个新的日志文件的权限是0664主人是root组是utmp。
      minsize 1M# 最小达到1M才轮转,如果不到1M是不会切的,这里是两个条件都要达到才可以切。
      rotate 1# 保留1份
      # {}代表的是范围。
  }
  /var/log/btmp {
      missingok# missing代表丢失,意思是丢失不提示
      monthly
      create 0600 root utmp# 轮转后创建新的文件并且设置权限
      rotate 1
  }
  # system-specific logs may be also be configured here.

日志轮转的主配置文件中有这么一段代码:

rotate 4# 代表保留4份

什么叫保留4份?
可以拿/etc/log/yum.log 来进行说明
我们在安装centos7的时候就已经有了yum.log,当日志多了之后,就会对日志进行切割,怎么切割呢?对日志文件进行重命名操作,不是重新创建一个日志文件。
也就是:

mv yum.log yum.log-20201228

当日志文件逐渐增多时,比如说有6个日志文件,系统会将老的日志文件给丢弃掉,将最近的4份日志文件保留下来。
主配置文件是程序启动必须要运行的文件。
轮转周期有两大维度,时间和大小。
接下来用对yum日志轮转进行举例

  • 创建一个日志文件
vim /etc/logrotate.d/yum

在这里插入图片描述
对这个日志文件进行修改调试:

/var/log/yum.log {
    missingok
    daily
    rotate 3
    create 0600 root root
}

保存并且退出。
使用cat查看一下。
接下来测试:

接下来要修改时间,手动的去触发轮转

date 040110000# 使用date修改时间,月日时分,每个两位数。

开始日志轮转了

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

查看轮转的结果

ls /var/log/yum* -l

在这里插入图片描述
日志文件出现了多个,这表明轮转成功了。
可以使用cat查看一下

cat /var/lib/logrotate/logrotate.status

Linux网络管理

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_45671732

你们鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值