一、日志进程rsyslog
1.处理日志的进程:
(1)第一类:
Rsyslog:系统专职日志程序。
处理绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息。
(2)第二类:
httpd/nginx/mysql:各类应用程序,可以以自己的方式记录日志,讲解对应程序时会介绍。
(3)观察rsyslogd程序
ps aux | grep rsyslogd
2.常见的日志文件(系统、进程、应用程序)
/var/log/messages 系统主日志文件
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 /vaar/log/xferlog 和访问FTP服务器相关
Tail /var/log/wtmp 当前登录的用户(命令:w可以查看)
二进制文件,只有w命令可以调用查看
Tail /var/log/btmp 最近登录的用户(命令:last可以查看)
同样的二进制日志文件,只有last可以调用查看
Tail /var/log/lastlog 所有用户的登录情况(命令lastlog)
同样的二进制日志文件,只有last可以调用查看
3.Rsyslogd配置
(1)相关程序:
Yum install -y rsyslog logrotate
默认是已经安装了的
(2)启动程序:
Systemctl start rsyslogd.service
(3)相关文件
Rpm -qc rsyslog
-c 查看软件包的配置文件信息
/etc/rsyslog.conf rsyslog的主配置文件
/etc/sysconfig/rsyslog rsyslogd相关文件,定义级别
/etc/logrotate.d/syslog 和日志办轮转的文件
4.主配置文件
这个配置文件,就是告诉rsyslogd进程什么日志,应该存到哪里。
Vim /etc/rsyslog.conf
我们的重点关注,应该是其中的规则部分:
可以看到,RULES下面的就是各类系统进程的存放日志文件位置,可以设置。
整个规则由设备+级别+存放位置组成
以其中一个为例,mail.* /var/log/maillog
.左边的mail是进程
.右边的*表示的是日志级别。
最后的就是存放位置
日志级别大致分为五种,从下往上排序:
DEBUG(详细的信息,通常只出现再诊断问题中)
INFO(确认一切按预期进行)
WARNING(警告级别)
ERROR(严重问题)
CRITICAL(关键性级别)
*表示任何级别。
系统还会有emerg级别,紧急的意思,比如系统即将崩溃
前面的*表示所有的进程程序,这里就是指所有的进程程序的紧急信息都会存在一个特殊的位置。
像这种就表示所有日志设备的info级别日志都写入/var/log/messages文件,none表示mail、authpriv、cron这三个日志设备除外,他们会写入各自的日志文件。
需要配置某些规则,比如httpd软件本身的日志文件
Httpd.* /var/log/httpd.conf
保存退出。
然后ps aux | grep rsyslog查看到rsyslog的pid
最后kill -1 pid重启这个程序就可以生效。
当然systemctl restart rsyslog也可以。
二、日志轮转logrotate
1.简介
日志记录了程序运行时各种信息。
通过日志可以分析用户行为,记录运行轨迹,查找程序问题。
可惜磁盘空间是有限的。
日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。
为了节省空间和整理方便,日志文件经常需要按照时间或大小等维度分成多份,删除时间久远的日志文件。
2.工作原理
按照配置进行轮转
配置文件种类:
主文件:/etc/logrotate.conf
决定每个日志文件如何轮转子文件夹:/etc/logrotate.d/*
.d代表的就是这个程序的子文件目录,一般用来自定义配置,便于管理观察主文件和子文件:
3.主配置文件介绍
Vim /etc/logrotate.conf
================全局设置=================
Weekly 轮转的周期,一周轮转,可以daily
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 保留1份
}
/var/log/btmp{ 对某个日志文件设置轮转方法
Missingok 丢失不提示
Monthly 一个月轮转一次
Create 0600 root utmp 轮转后创建新文件,并设置权限
Rotate 1 保留一份
}
轮转周期有两大维度:时间和大小。达到其中一个就轮转。
4.Yum日志轮转举例
/var/log/yum{
Missingok
Daily
Rotate 3
Create 0644 root root
}