日志管理
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
配置若有遗漏或错误,请评论留言。