第11章 日志管理

第一阶段:云计算基础

Linux系统配置及服务管理_第11章 日志管理

简介

任务一:

  • rsyslog 系统日志管理

• 关心问题:哪类程序---》产生的什么日志----》放到什么地方

任务二:

  • logrotate日志轮转

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

任务一详解

一、处理日志的进程

  • 第一类:

• rsyslogd: 系统专职日志程序。

• 处理绝大部分日志记录,

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

  • 第二类:

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

  • 观察 rsyslogd程序

• [root@localhost ~]# ps aux |grep rsyslogdroot 717 0.0 0.0 219752 3880 ? Ssl 09:05 0:00 /usr/sbin/rsyslogd -n

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

  • # tail   -10   /var/log/messages

• //系统主日志文件

  • # tail -f /var/log/messages

• //动态查看日志文件的尾部

  • # 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

•  //和系统启动相关

  • 了解

• # 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 rsyslog   logrotate

• 默认已安装

  • 2.启动程序

• systemctl  start    rsyslog.service

  • 3.相关文件

• rpm -qc rsyslog

• /etc/rsyslog.conf

• rsyslogd的主配置文件(关键)

• /etc/sysconfig/rsyslog

• rsyslogd相关文件,定义级别(了解一下)

• /etc/logrotate.d/syslog

• 和日志办轮转(切割)相关(任务二)

• //观察日志程序的配置文件

四、主配置文件

  • 告诉rsyslogd进程什么日志,应该存到哪里。
  • # vim /etc/rsyslog.conf

• RULES

• 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   系统日志排除了邮件,认证,计划日志。

• 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

• 打印机设备

• printer subsystem

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

• 从下到上,级别从低到高,记录的信息越来越少

• 规则示意图

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

• 图示

 

任务二详解

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_supplicantconman httpd mgetty psacct setroubleshoot syslog vsftpd.log yum

  • 主配置文件介绍

• [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  minsizecreate 0664 root utmp //轮转后创建新文件,并设置权限rotate 1 //保留一份}

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

  • yum日志轮转实例

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

• 配置轮转规则

• # 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

• }

• 测试

• 错误示范

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

• # ls /var/log/yum*

• /var/log/yum.log

• 文件只有一个。因为日期没变

• 正确示范

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

• # date 04011000

• 把时间向未来推移

• # /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、付费专栏及课程。

余额充值