日志管理
日志管理服务rsyslogd
默认路径/etc/rsyslog.conf
查询Linux中的rsyslogd服务是否启动
ps aux | grep "rsyslogd" | grep -v "grep"
systemctl list-unit-files | grep rsyslog
vim /etc/rsyslog.conf
#添加自定义日志
#日志类型.日志级别
*.* /var/log/test.log
#重启服务
systemctl restart rsyslog
#查看ssh登录的相关信息
cat /var/log/test.log | grep "sshd"
日志类型 |
说明 |
auth |
pam产生的日志 |
authpriv |
ssh/ftp等登录信息的验证日志 |
cron |
时间任务相关 |
kern |
内核 |
lpr |
打印 |
mail |
邮件 |
mark(syslog)-rsyslog |
服务内部的信息,时间标识 |
news |
新闻组 |
user |
用户程序产生的相关信息 |
uucp |
unix to unix copy主机之间的通信 |
local 1-7 |
自定义的日志设备 |
日志级别 |
说明 |
debug |
有调试信息,日志通信最多 |
info |
一般信息日志,常用 |
notice |
最具有重要性的普通条件的信息 |
warning |
警告级别 |
err |
错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit |
严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert |
需要立刻修改的信息 |
emerg |
内核崩溃等重要信息 |
none |
什么都不记录 |
日志轮替logrotate
默认路径/etc/logrotate.conf
子目录/etc/logrotate.d/
logrotate配置文件
| 参数 | 参数说明 |
| —- | —- |
| daily | 日志轮替的周期是每天 |
| weekly | 日志轮替的周期是每周 |
| monthly | 日志轮替的周期是每月 |
| rotate [数字] | 保留的日志文件的个数。0指没有备份 |
| compress | 日志轮替时旧的日志进行压缩 |
| create mode owner group | 建立新日志,同时指定新日志的权限与所有者和所属组 |
| mail address | 当日志轮替时,输出内容通过邮件发送到指定的邮件地址 |
| missingok | 如果日志不存在,则忽略该日志的警告信息 |
| notifempty | 如果日志为空文件,则不进行日志轮替 |
| minsize [大小] | 日志轮替的最小值 |
| size [大小] | 日志大于指定大小进行日志轮替 |
| dateext | 使用日期作为日志轮替文件的后缀 |
| sharedscripts | 在此关键字之后的脚本只执行一次 |
| prerotate/endscript | 在日志轮替之前执行脚本命令 |
| postrotate/endscript | 在日志轮替之后执行脚本命令 |
vim /etc/logrotate.d/test
#新建轮替规则文件
/var/log/test.log
{
missingok
daily
copytruncate
rotate 7
notifempty
}
日志轮替规则原理
- 依赖
crond
后台程序调用/etc/cron.daily/logrotate
每天定时完成任务
内存日志journalctl
journalctl #查看全部
journalctl -n 3 #查看最新3条
journalctl --since 17:51 --until 17:52
#查看起始时间到结束时间的日志
journalctl -p err #报错日志
journalctl -o verbose #日志详细信息
journalctl _PID=1372 _COMM=sshd
#查看包含这些参数的日志,或者如下
journalctl | grep sshd