日志简介
一、处理日志的进程
第一类:
rsyslogd: 系统专职日志程序。
处理绝大部分日志记录,
系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息
第二类:
httpd/nginx/mysql: 各类应用程序,可以以自己的方式记录日志.
讲解对应程序时会逐步介绍
观察 rsyslogd程序
[root@localhost ~]# ps aux |grep rsyslogd
root 717 0.0 0.0 219752 3880 ? Ssl 09:05 0:00 /usr/sbin/rsyslogd -n
二、常见的日志文件
系统主日志文件
[root@localhost ~]#tail -10 /var/log/messages
动态查看日志文件的尾部
[root@localhost ~]#tail -f /var/log/messages
认证、安全
[root@localhost ~]# tailf /var/log/secure
yum日志文件
[root@localhost ~]# tail /var/log/yum.log
跟邮件postfix相关
[root@localhost ~]# tail /var/log/maillog
crond、at进程产生的日志
[root@localhost ~]# tail /var/log/cron
和系统启动相关
[root@localhost ~]# tail /var/log/dmesg
三、rsyslogd配置
1.相关程序
[root@localhost ~]#yum install rsyslog logrotate
2.启动程序
[root@localhost ~]#systemctl start rsyslog.service
3.相关文件
[root@localhost ~]#rpm -qc rsyslog
/etc/rsyslog.conf
rsyslogd的主配置文件(关键)
/etc/sysconfig/rsyslog
rsyslogd相关文件,定义级别
/etc/logrotate.d/syslog
和日志轮转(切割)相关
四、主配置文件
告诉rsyslogd进程什么日志,应该存到哪里。
# vim /etc/rsyslog.conf
RULES
RULES:即规则,是一套生成日志,以及存储日志的策略。
RULES即规则,有三部分组成(由设备+级别+存放位置)
RULES由FACILITY+LEVEL+FILE组成。
authpriv.* /var/log/secure(SSH信息)
mail.* -/var/log/maillog(发邮件)
cron.* /var/log/cron(创建任务)
这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大
*.info;mail.none;authpriv.none;cron.none /var/log/messages
系统日志排除了邮件,认证,计划日志。
FACILITY&LEVEL
facility设备
facility
是系统对某种类型APP事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。用来收集同类程序日志。
# man 3 syslog
设备类型
LOG_SYSLOG
syslogd自身产生的日志
LOG_AUTHPRIV
安全认证
LOG_CRON
调度程序(cron and at)
LOG_MAIL
邮件系统mail subsystem
LOG_USER (default)
用户相关
LOG_DAEMON
后台进程
LOG_FTP
文件服务器ftp daemon
LOG_KERN
内核设备kernel messages
LOG_LPR
打印机设备
printer subsystem
LOG_LOCAL0 through LOG_LOCAL7
用户自定义设备
level级别
LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
LOG_CRIT 致命行为
LOG_ERR 错误行为
LOG_WARNING 警告信息
LOG_NOTICE 普通,重要的标准信息
LOG_INFO 标准信息
LOG_DEBUG 调试信息,排错所需,一般不建议使用
从下到上,级别从低到高,记录的信息越来越少
规则示意图
目的:通过绘图形式来理解日志工作机制。
图示
程序类型示例
关于程序和设备的联系问题,程序自身会决定将日志交给哪类设备。
如SSH程序会选择安全类设备。这一点由开发者定义。
1.修改ssh程序的设备类型
vim /etc/ssh/sshd_config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
2.修改rsyslog程序的规则
vim /etc/rsyslog.conf
local5.* /var/log/serverzz
3.重启rsyslog程序和ssh程序
systemctl restart rsyslog.service sshd
4.使用其他终端登录服务器,观察新日志文件。