大家好,又见面了,我是你们的朋友全栈君。
日志管理系统rsyslogd
一. 什么是rsyslogd
rsyslog是一个开源的软件程序,它负责写入日志。 它记录绝大部分的日志记录,和系统有关的、安全、认证ssh,su、计划任务at,cron等日志。
rsyslogd是一个进程,是一个日志服务,我们可以通过rpm -qc查询软件包的方式来查看
代码语言:javascript复制[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog
查询结果会出现三个文件:
/etc/logrotate.d/syslog | 和日志轮转相关的文件 |
---|---|
/etc/rsyslog.conf | rsyslogd的主配置文件 |
/etc/sysconfig/rsyslog | rsyslogd的相关文件 |
我们比较关心的一般是/etc/rsyslog.conf 文件,也就是rsyslogd的主配置文件
打开这个文件里面会出现很多配置:
图中写了一些文件的的配置规则和一些模块,我们可以选择开启一些模块,用来帮助我们更好的进行工作。
例如:开启UDP和TCP服务模块,可以让我们把日志放到指定的服务器上,便于我们的管理
代码语言:javascript复制#Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
还有一些规则:
代码语言:javascript复制*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
像代码块中authpriv、mail、cron等等是服务的名称,后面的*是服务对应的等级,后面的路径是对用日志的存放路径。
常见的服务(设备)名称及其作用
代码语言:javascript复制auth //安全和认证相关信息
authpriv //安全和认证相关信息(私有的)
cron //系统定时任务cront和at产生的日志
daemon //个各个守护进程相关的日志
ftp //ftp守护进程产生的日志
kern //内核产生相关的日志
local0-local7 //为本地服务使用预留的服务
mail //邮件收发信息
user //用户等级类别的日志信息
日志的等级划分
代码语言:javascript复制debug //调试信息的日志,日志信息最多
info //一般信息的日志,最常用
notice //最具有重要性的普通条件的信息
warning //警告级别
error //错误级别,阻止某个功能或者模块不能正常工作的信息
crit //严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert //需要立刻修改的信息
emerg //内核崩溃等严重信息
通俗来说,规则就是告诉了rsyslogd进程哪个设备、那个级别的信息、记录在什么位置、如何处理。
关于日志的存放位置,不一定非要放在本地,我们还可以通过UDP或TCP来存放日志到日志服务器上。
二. 日志轮转logrotate
logrotate针对的是所有的日志文件
关于日志轮转: 1.日志轮转可以切割日志,将最近产生的日志保留下来,时间久远的删除,防止日志随着时间变得越来越大。 2.丢弃系统中的旧的日志文件,节省空间。 3.logrotate不是系统守护进程,它通过计划任务crond每天执行。 通过命令查看计划任务:
代码语言:javascript复制[root@localhost ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
logrotate配置文件: logrotate主配置文件:/etc/logrotate.conf logrotate子配置文件:/etc/logrotate.d/* 某些程序可以配置自己的日志轮转规则,在/etc/logrotate.d下。
我们以yum的日志轮转规则为例查看:
代码语言:javascript复制localhost ~]# vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok
notifempty
maxsize 30k
yearly
create 0600 root root
}
下面是日志轮转的一些规则解释:
代码语言:javascript复制weekly //按周轮转
rotate 4 //保留4份
create //创建新文件
dateext //日期做文件扩展名
compress //采用压缩
missingok //丢失不提示
include //包含该目录下的文件
我们可以根据需求改变日志的轮转规则。帮助我们更好的管理系统,有不完善的地方欢迎各位大神补充。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/125111.html原文链接:https://javaforall.cn