日志管理
Rsyslong 系统日志管理
1.第一类
系统的大部分日志是rsyslogd处理的
2.第二类
而各类的应用程序可以以自己的方式记录日志。(为什么独立管理:因为日志过多,所以独立存储管理)
一般 日志存放在/var/log/下,并以服务区分(日志存放位置可通过修改文件更改)
用tail -y 日志路径 实时查看日志信息变化
安装 yum install -y rsyslog logrotate
logrotate(日志轮转) |
通过 rpm -qc rsyslog 查看rsyslog的主配置文件
rsyslog的主配置文件(关键) 告诉rsyslogd进程是什么日志,应该存放到哪里 | |
/etc/sysconfig/rsyslog | Rsyslog的相关文件(定义级别) |
/etc/logrotate.d/syslog | 和日志轮转相关 |
主配置文件内:
RULES下
RULES 由 FACILITY + LEVEL +FILE 组成
facility为设备:是系统对某种类型app事件的定义。
1.如:authpriv(ssh)是安全事件
cron(创建任务)计划任务事件,用来收集同类程序日志。
等。
可以使用 man 3 syslog 查看帮助(以便于区分设备的类型) facility部分(设备)
而*代表所有设备
例:mail.* -/vat/log/maillog
mail为设备 *为等级 日志存放位置(可更改为自己定义的存储路径·)
至于(.)则为分割设备与等级的符号
level:(在 man 3 syslog 中同样可找到帮助信息)
LOG _EMERG 紧急,致命如服务器无法继续运行,配置文件丢失等。
LOG_ALERT 报警,需要立即处理,如磁盘空间使用98%。
LOG_CRIT 致命行为
LOG_ERR 错误行为
LOG_WARNING 警告信息
LOG_NOTICE 普通,重要的标准信息
LOG_IFO 标准信息
LOG_DEBUG 调试信息,排错所需,一般不建议使用
而 * 代表 所有 级别
修改一个程序的设备类型:
例:
Vim /etc/ssh/sshd_config
将原本设备类型注释掉
#SyslogFacility AUTHPRIV
添加一行新的日志类型:
SyslogFacility LOCAL5
(LOCAL1-7为自定义日志类型)
修改rsyslog程序的规则
Vim /etc/rsyslog.conf
找到local等行添加
Local5.* /var/log/mingzi
重启rsyslog sshd
Systemctl restart rsyslog sshd
(配置文件在硬盘上,修改后不会立即生效,须重启服务或计算机,重新读取硬盘才会生效)
日志轮转 logrotate
磁盘空间有限,为节省磁盘空间
日志文件经常需要按照 时间 或 大小 等维度分成多分,删除时间久远的日志文件
工作原理:按照配置进行轮转
主配置文件:/etc/logrotate.conf | (影响程序本身运作)(决定每个日志文件如何轮转) |
子配置文件: /etc/logrotate/* | 自定义配置 便于管理 |
帮助手册: man logrotate
/etc/logrotate.conf 下:
Weekly 每周
Rotate 4 保留四份
Create 创建新文件(旧文件则改名↓)
Dateext 以时间加扩展名(轮转旧文件)
Compress 压缩 (因过于消耗系统资源,默认注释掉)
Include /etc/logrotate.d (include 包含, 后面文件夹代表此处也有配置文件)(也名 包含该目录下的子配置文件夹)
配置轮转例子:
/var/log/yum.log{
missingok 丢失没关系
notifempty 空文件不论转
maxsize 30k 文件最大30k,达到就轮转,不管轮转时间
daily 每天一轮转
routate 文件保留三份
create 0700 root root 创建的新文件的权限 第一为所属主的,第二位所属组的权限
} 分隔符(与其他服务配置分隔开)
后:/usr/sbin/logrotate /etc/logrotate.conf
开始日志轮转,轮转时看着后面路径的文件
查看各个日志被切割的时间点:
cat /var/lib/logrotate/logrotate.status