将系统中发生的事情,按照发生时间的先后顺序,分门别类的记载到不同的文件中称为记录日志,文件就是日志文件。
日志用途
- 排查问题,解决错误
- 统计数据
- 问题追溯
- …
种类
- 系统日志:与系统运行相关的日志,如/var/log/messages、/var/log/secure等,由rsyslog管理的日志
- 应用日志:应用程序的日志,如Nginx、MySQL等
Linux系统日志默认存放位置: /var/log
Linux常见系统日志
种类 | 说明 |
---|---|
messages | 最重要的系统日志之一,几乎所有的系统信息都会记录在此 |
cron | 计划任务相关的日志 |
secure | 安全相关的日志(需要输入用户名密码的软件,比如ssh、su等) |
dmesg | 内核检测过程中产生的各种信息,硬件检测信息 |
lastlog | 所有账户最近一次登录系统的相关信息, 使用 lastlog 命令查看 |
boot.log | 记录系统启动信息 |
wtmp | 记录的是正确登录的人的信息,可以用 last 命令来查看 |
btmp | 登录失败日志 可以使用 lastb 命令查看 |
系统日志服务的后台进程:
rsyslog.service
关于服务的管理:
el7 | el6 | |
---|---|---|
启动 | systemctl start 服务名称 | /etc/init.d/服务名称 start |
停止 | systemctl stop 服务名称 | /etc/init.d/服务名称 stop |
重启 | systemctl restart 服务名称 | /etc/init.d/服务名称 restart |
查看 | systemctl status 服务名称 | /etc/init.d/服务名称 status |
重载 | systemctl reload 服务名称 | /etc/init.d/服务名称 reload |
通用方法(el6 & el7): service 服务名称 {start|stop|restart|reload}
日志配置
日志服务的配置文件
vim /etc/rsyslog.conf
|
|
配置格式
-
服务名称
名称 内容 authpriv(auth) 用户授权相关的,认证等 ssh、login、su等 cron 和计划任务相关的服务 mail 和邮件相关的 news 新闻相关的 uucp kern 和内核相关的 lpr 打印机相关的 syslog 和rsyslogd进程相关的 local0~local7 自定义服务名称 -
日志的级别:级别越高、日志越少
- none:不记录日志
- debug:调试信息
- info:一般的通知信息
- notice:提醒信息,比 info 稍微重要点
- warning(warn):重要信息,可能有问题
- error:错误信息
- critical(crit):比较严重的错误
- alert:警报信息,需要立即行动
- emerg(panic):紧急(恐慌),系统可能已经不可用了
selinux:由 linux 内核提供的一种安全审计机制
防火墙:网络数据包的处理系统
查看 selinux 状态:getenforce
三种状态:
- Enforcing:强制拦截
- Permissive:不拦截,但会有警告信息
- Disable:关闭
临时关闭selinux:立即生效
setenforce 0
永久关闭:重启后生效
|
|
日志轮转
日志轮转是一种管理日志文件的方法,旨在防止由于持续记录而导致的磁盘空间耗尽。
- 防止日志文件过大
- 定期清除过期日志
三步:
- 将旧日志重命名
- 创建新的日志文件
- 将新的日志记录到新的文件日志中 重新打开日志文件(reopen)10|重载配置(reload)1|重启(restart)
lsof
误删文件怎么办?
如果有进程在使用(文件在内存中使用),就可以找回。
在内存中的数据(/proc/进程号/fd/xxx)重定向到文件中,再立即重启服务(一行命令同时重定向+重启)。
😄文件误删除如何处理:
- 查看是否有进程打开了此文件:lsof |grep 文件名
- 如果有,查看其进程号(PID)及文件描述符
- 进入/proc/PID/fd目录,通过文件描述符恢复该文件并立即重启打开此文件的进程
日志轮转的配置文件
|
|