日志管理
日志管理服务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