日志管理

1.日志进程rsyslog

//处理日志的进程
第一类:rsyslog:系统专职日志程序
        处理绝大部分日志记录
        系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息

第二类:hhtpd/nginx/mysql:各类应用程序,可以以自己的方式记录日志

观察rsyslog程序:
[root@localhost tmp]# ps aux | grep rsyslogd
root       7396  0.0  0.1 233128  1884 ?        Ssl  7月07   0:44 /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/mysql.log        //MySQL

  #tail /var/log/xferlog          //和访问FTP服务器相关
 
  #tail /var/log/wtmp             //当前登录的用户(命令:w)

  #tail /var/log/btmp             //最近登录的用户(命令:last)
 
  #tail /var/log/lastlog          //所有用户的登录情况(命令:lastlog)

//rsyslogd配置
相关程序:yum install rsyslog logrotate (默认已安装)

启动程序:systemctl start rsyslog.service

相关文件:rpm -qc rsyslog
    观察日志程序的配置文件:
        /etc/logrotate.d/syslog   和日志办轮转(切割)相关
        /etc/rsyslog.conf         rsyslogd的主配置文件
        /etc/sysconfig/rsyslog    rsyslogd相关文件,定义级别

//主配置文件
告诉rsyslogd进程什么日志,应该存到哪里
#vim /etc/rsyslog.conf

RULES:即规则,是一套生成日志,以及存储日志的策略
规则由设备+级别+存放位置组成
RULES由FACILITY+LEVEL+FILE组成
#
authpriv.*     /var/log/secure (SSH信息)
mail.*         -/var/log/maillog (发邮件)
cron.*         /var/log/cron (创建任务)
#这里由一个 - 符号,表示是使用异步的方式记录,因为日志一般会比较大

FACILITY&LEVEL
facility:是系统对某种类型APP事件的定义。用来收集同类程序日志。
设备类型:LOG_SYSLOG  syslogd自身产生的日志
          LOG_AUTHPRIV  安全认证
          LOG_CRON  调度程序(cron and at)
          LOG_MAIL 邮件系统mail subsystem
          LOG_UESR(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  报警,需要立即处理
           LOG_CRIT  致命行为
           LOG_ERR  错误行为
           LOG_WARNING  警告信息
           LOG_NOTICE  普通,重要的标准信息
           LOG_INFO  标准信息
           LOG_DEBUG  调试信息,排错所需,一般不建议使用

2.日志轮转logrotate

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

//工作原理:按照配置进行轮转
配置文件种类
    主文件:/etc/logrotate.conf(决定每个日志文件如何轮转)
    子文件:/etc/logrotate.d/* (自定义配置,便于管理)

观察主文件和子文件
[root@localhost tmp]# ls /etc/logrotate.conf /etc/logrotate.d/
/etc/logrotate.conf

/etc/logrotate.d/:
bootlog  cups   iscsiuiolog  libvirtd.qemu  ppp     samba   wpa_supplicant
chrony   httpd  libvirtd     numad          psacct  syslog  yum

//主配置文件介绍
[root@localhost tmp]# 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                //保留一份
}

//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 月日时分(每个两位数)
          #/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.cinf
          #ls /var/log/yum*  日志文件已经出现

关于时间:#grep 'yum' /var/lib/logrotate/logrotate.status  //记录所有日志文件最近轮转的时间
          "/var/log/yum.log" 2024-7-16-10:0:4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值