本系列都是是基于RedHat体系的,所以CentOS也可以用,但是Debian系列的可能会有些命令上的出入。
- 0. Linux 概述 - 掘金
- 1. Linux文件管理 - 掘金
- 2. Linux中的用户管理 - 掘金
- 3. Linux中的进程管理 - 掘金
- 4. Linux中的管道和重定向 - 掘金
- 5. Linux中磁盘管理--文件系统 - 掘金
- 6. Linux中网络管理 - 掘金
- 7. Linux中软件管理 - 掘金
- 8. Linux中任务计划 - 掘金
- 9. Linux中日志管理 - 掘金
- 10. Linux中的文件服务 - 掘金
1. 日志程序rsyslog
rsyslog专门处理系统日志的程序,处理绝大部分的日志记录,主要记录系统操作有关的信息,如登录信息、程序启动关闭信息、错误信息。各种应用程序也有可能产生日志信息,不属于本节所述。
日志大部分存储在/var/log目录下。实时显示日志文件tail -f /var/log/messages。
CentOS系列Linux的日志(Ubuntu不太一样,但是也有该程序)
-
/var/log/messages记录主日志。 -
var/log/security记录认证、安全相关日志。 -
/var/log/yum.log记录yum相关日志。 -
/var/log/maillog记录跟邮件postfix相关的日志。 -
/var/log/cron记录crond、at进程产生的相关日志。 -
/var/log/dmesg记录和系统启动相关的日志。 -
/var/log/audit/audit.log系统审计相关日志。 -
/var/log/mysqld.logMySQL日志 -
/var/log/xferlog访问FTP服务器相关日志。 -
/var/log/wtmp当前登录的用户(命令:w) -
/var/log/btmp最近登录的用户(命令:last) -
/var/log/lastlog所有用户的登录情况(命令:lastlog)
1.1 rsyslog配置
-
安装:
yum install rsyslog,默认已经安装。 -
启动:
systemctl start rsyslog.service -
相关文件:
列出所有相关文件:CentOS:
rpm -ql rsyslog,Ubuntu:dpkg -S rsyslog。列出配置文件:CentOS:
rpm -qc rsyslog,Ubuntu:dpkg -s rsyslog,Conffiles部分。这一部分可以参考:RPM & APT/ect/rsyslog/rsyslog:rsyslogd的主配置文件**【关键】**/etc/sysconfig/rsyslog:定义日志级别/etc/logrotate.d/syslog:和日志轮转(切割)相关
1.2 主配置文件
主配置文件一般都位于/etc目录下,并且一般以程序名.conf命名。
RULES: 设备.日志级别 file-path,即FACILITY.LEVEL FILE。应用程序属于什么设备是由开发人员确定的,一种设备对应多个应用程序,一个应用程序对应一种设备。
Ubuntu的这个文件位于需要查看/etc/rsyslog.conf中rules所述在哪个文件,然后现在是在/etc/rsyslog.d/50-default.conf。
设备的类型和日志的级别具体的内容可以查看:man 3 syslog
authpriv.* /var/log/secure认证设备日志mail.* /var/log/maillog邮件日志位置cron.* /var/log/cron定时任务日志
日志的级别:
emerg(ency)errorinfodebug*:代表任何级别
:star:一般不要修改这个
/etc/rsyslog.conf,如果修改了配置文件要使其生效的方式有(坚决推荐不要修改!!!):# 重启 $ reboot # $ init 6 # 也是重启 # 不杀死进程加载所有配置 $ ps aux | grep rsyslogd $ kill -1 <rsyslogd-pid>
2. 日志轮转 logrotate
安装:yum install logrotate
启动:systemctl start logrotate.service
需要日志轮转是因为,日志有很多有用的信息,但是磁盘空间有限。所以需要删除不需要的日志。但是这是系统自动完成的,不需要手动调用logrotate。手动调用是:/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf,-s是指定logrotate日志轮转状态文件。
logrotate的工作原理是按照配置进行轮转。
配置文件:
/etc/logrotate.conf:主配置文件,决定每个日志文件如何轮转/etc/logrotate.d/*:子配置目录,一般是自定义,将来不想要了好删除,而且万一改错了,可以删除子配置,不影响原来的程序
配置的具体方式查看man logrotate。
weekly:轮转的周期,按周来轮转rotate 4:保留4份create:轮转后创建新文件(老文件重命名)dateext:使用时间作为文件后缀名称compress:压缩日志文件,默认关闭include /etc/logrotate.d:包含该目录下的子配置文件
子配置文件内容举例:
# /etc/logrotate.d/wtmp
/var/log/wtmp { # 在配置文件中书写日志的名字和{},就可以独立设置该日志的轮转规则
missingok # 该文件缺失不提示,就不轮转了
# noifempty # 空文件不轮转
monthly # 按月轮转(这里的优先级高),还有daily、yearly
create 0664 root utmp # 创建,指定权限,属主和属组
minsize 1M # 最小大小达到 1M 才轮转,这里和monthly是“且”的关系
# maxsize 30K # 达到30K轮转,和monthly是“或”的关系
rotate 1 # 保留1份(这里的优先级高)
}
# /etc/logrotate.d/btmp
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
-
子配置文件的优先级高于全局配置文件
-
只有当
monthly和minsize的条件都达到了,才会发生轮转。而monthly和maxsize是或的关系,有一个达到就会轮转。