rsyslog 日志管理 logrotate日志轮转
一、处理日志的进程
rsyslogd:绝大部分日志记录,和系统操作有关,安全,认证sshd,su,操持任务at,cron... httpd/nginx/mysql: 可以自己的办法记录日志 [root@linux-server ~]# ps aux |grep rsyslogd root 752 0.0 0.2 216440 5548 ? Ssl 20:18 0:00 /usr/sbin/rsyslogd -n 日志配置主文件: /etc/rsyslog.conf
二、常见的日志文件(系统、进程、运用程序)
#tail -f /var/log/messages #动态查看日志文件的尾部,系统主日志文件 #tail -f /var/log/secure #记录认证、安全的日志 tail /var/log/maillog #跟邮件postfix干系 tail /var/log/cron #crond、at进程产生的日志 tail /var/log/dmesg #和系统启动干系 tail /var/log/yum.log #yum的日志 tail -f /var/log/mysqld.log #MySQL日志 tail /var/log/xferlog #和访问FTP做事器干系 /var/log/boot.log #系统启动过程日志记录存放 [root@linux-server ~]#w #当前登录的用户 /var/log/wtmp [root@linux-server ~]#last #最近登录的用户 /var/log/btmp 第一列,用户名; 第二列,终端位置,/pts/0 (伪终端)意味着从诸如ssh或者telnet的远程链接的用户,tty(teletypewriter)意味着直接连接到打算机或者本地链接的用户; 第三列,登录的ip或者内核。 第四列,开始韶光; 第五列,结束韶光(still login in 还未退出 down 直到正常关机 crash 直到逼迫关机); [root@linux-server ~]#lastlog #所有用户的登录情形 /var/log/lastlog
日志优先级
日志级别分为:7种日志级别代号0-7 0 debug #有调试信息的,日志信息最多 1 info #一样平常信息的日志,最常用 2 notice #最具有主要性的普通条件的信息 3 warning #警告级别 4 err #缺点级别,阻挡某个功能或者模块不能正常事情的信息 5 crit #严重级别,阻挡全体系统或者全体软件不能事情的信息 6 alert #须要急速修正的信息 7 emerg #内核崩溃等严重信息 none #什么都不记录
三、logrotate日志轮转
什么这天记轮转? 自动切日志 注:可以针对任何日志文件(rsyslog 日志、Nginx访问或缺点日志...) 一、logrotate (轮转,日志切割) 1. 如果没有日志轮转,日志文件会越来越大 2. 将丢弃系统中最旧的日志文件,以节省空间 3. logrotate本身不是系统守护进程,它是通过操持任务crond每天实行 logrotate 配置文件: 主配置文件:/etc/logrotate.conf (决定每个日志文件如何轮转) 配置日志轮转 [root@linux-server ~]# vim /etc/logrotate.conf weekly #轮转的周期,一周轮转,单位熟年,月,日 rotate 4 #保留4份 create #轮转后创建新文件 dateext #利用日期作为后缀 #compress #日志轮替时,旧的日志进行压缩 include /etc/logrotate.d #包含该目录下的配置文件,会引用该目录下面配置的文件 /var/log/wtmp { #对该日志文件设置轮转的方法 monthly #一月轮转一次 minsize 1M #最小达到1M才轮转,否则就算韶光到了也不轮转 create 0664 root utmp #轮转后创建新文件,并设置权限 rotate 2 #保留2份 } /var/log/btmp { missingok #丢失不提示 monthly create 0600 root utmp rotate 1 }
案例
例1:轮转文件/var/log/yum.log [root@linux-server ~]# vim /etc/logrotate.d/yum /var/log/yum.log { missingok #丢失不提醒 #notifempty #空文件不轮转 #size 30k #只要到了30k就轮转 #yearly daily #每天轮转一次 rotate 3 create 0644 root root } 测试: [root@linux-server ~]# /usr/sbin/logrotate /etc/logrotate.conf #手动轮转 [root@linux-server ~]# ls /var/log/yum /var/log/yum.log /var/log/yum.log-20191110 [root@linux-server ~]# grep yum /var/lib/logrotate/logrotate.status #查看记录所有日志文件最近轮转的韶光 "/var/log/yum.log" 2019-11-10-21:26:14 2:日志安全,操作日志的隐蔽权限 [root@localhost log]# cd /etc/logrotate.d/ [root@localhost logrotate.d]# vim syslog 建议测试时先把/etc/logrotate.d/syslog中messages删除,然后不才面添加如下: /var/log/messages{ prerotate chattr -a /var/log/messages endscript #notifempty daily create 0600 root root missingok rotate 3 postrotate chattr +a /var/log/messages endscript } [root@localhost logrotate.d]# /usr/sbin/logrotate /etc/logrotate.conf #手动轮转 [root@localhost logrotate.d]# cd /var/log/ [root@localhost log]# ls mess messages messages-20200805 messages-20200806 参数阐明: prerotate/endscript - 在转储以前须要实行的命令可以放入这个对,这两个关键字必须单独成行 postrotate/endscript - 在转储往后须要实行的命令可以放入这个对,这两个关键字必须单独成行
