9. Linux 日志管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9. 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.log
MySQL日志 -
/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)
-
error
-
info
-
debug
-
*
:代表任何级别
: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
是或的关系,有一个达到就会轮转。
以上是关于9. Linux 日志管理的主要内容,如果未能解决你的问题,请参考以下文章