日志管理

1.rsyslog系统日志管理

1.1处理日志的进程:

第一类:rsyslogd:系统转职日志进程

处理绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息

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

# ps aux |grep rsyslogd

1.2常见的日志文件

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

# tail -1 /var/log/messages     //系统主日志文件
# tail -f /var/log/messages     //动态查看系统主日志文件
//tailf   /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       //和系统启动相关
# dmesg //检查和控制内核的环形缓冲区 ​ /var/log/mysqld.log /var/log/log/xferlog /var/log/wtmp //登录日志 /var/log/btmp /var/log/lastlog

1.3rsyslogd配置

rpm -c:只列出组态配置文件,本参数需配合"-l"参数使用;

rpm -l:显示套件的文件列表;

# yum install rsyslog   logrotate       //默认已安装
# systemctl start rsys.service      //启动程序
# rpm -qc rsyslog
/etc/rsyslog.conf               //rsyslogd的主配置文件
/etc/sysconfig/rsyslog          //rsyslogd相关文件,定义级别
/etc/logrotate.d/syslog         //和日志办轮转(切割)相关

  

3.1/etc/rsyslogd.conf

RULES

# vim /etc/rsyslogd.conf
#### RULES ####     //(规则)47行
cron.*(点为分隔符,左为程序名,右为级别事件等级)            /var/log/cron(日志文件的路径)

RULES,即规则,是一套生成日志,以及存储日志的策略。

规则由设备+级别+存放位置组成

FACILITY+LEVEL+FILE

authpriv.* /var/log/secure(SSH信息)

mail.* -/var/log/maillog(发邮件) -符号代表,表示是使用异步的方式记录

cron.* /var/log/cron(创建任务)

 

cron.info;cron.!err /var/log/cron

.大于或者等于后面指定的日志级别

.=等于后面指定的日志级别

.!非

3.2 leve级别

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
//mail.none为排除mail设备
# vim /etc/rsyslogd.conf authpriv.* /var/log/anquan # ps aux |grep rsyslog # kill -1 进程号 终端断线(不重启情况下) # systemctl restart rsyslog # su - aaa # ls /var/log/anquan

  

2.logrotate日志轮转

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

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

子配置文件夹:/etc/logrotate.d/*(自定义,不要好删除)

# cat /etc/logrotate.conf
weekly      //轮转的周期,一周轮转
rotate      //保留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
}

  

实例:配置轮转规则

# vim /etc/logrotate.d/yum
/var/log/yum.log {
    missingok       //丢失不提示
    # notifempty
    # maxsize 30k   //到达30k轮转,daily or size
    # yearly
    daily
    create 0600 root root
    rotate 3
}

  

测试:

//修改时间,手动触发轮转
# date 04010000     月日时分
# /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status    /etc/logrotate.conf     //-s 时间戳
# ls /var/log/yum*
​
# grep 'yum' /var/lib/logrotate/logrotate.status    //记录所有日志文件最近轮转的时间

 2.2日志轮转实战

修改messages,日志安全,操作日志的隐藏权限

# cd /var/log/
# ls 
messages		//删除messages日志
# rm -rf messages
# rm -rf messages-2021*
# vim /etc/logrotate.d/syslog
先把messages删除,在后面添加
/var/log/messages {
  prerotate
  	chattr -a /var/log/messages
  endscript
  
   daily
  create 0777 root root
  missingok
  rotate 3
  
  postrotate
  	chattr +a /var/log/messages
  endscript
}
# logrotate /etc/logrotate.conf
# ls /var/log/messages
# rm -rf /var/log/messages

  

配置若有遗漏或错误,请评论留言。
原文地址:https://www.cnblogs.com/BrokenEaves/p/14477515.html