Linux日志管理(日志配置、日志轮替)
Linux日志管理
对运维人员来说,无论管理什么系统,对日志文件的监控、调用、管理都是其中重要的一部分。服务器问题的解决都是从查看系统(错误)日志开始的。本篇文章,我们就来了解一下Linux系统中的日志管理。
日志管理简介
日志简介
系统日志是记录系统硬件检查、内核动作、软件启动、用户动作等各项信息的文件。通过系统日志可以判断系统健康状态、检测系统问题、查找攻击证据等。
Linux系统中的日志服务
较老的系统日志主要由syslog
服务完成,较新的系统中由功能更强的rsyslog
服务代替了syslog
,但两者的操作方法基本相同。
查看日志服务是否开启,使用systemctl
命令查看并启动服务
#查看服务是否启动
systemctl list-units | grep rsyslog
#若没有启动,则启动服务
systemctl start rsyslog.service
常见日志及其作用
Linux的系统日志主要保存在/var/log
目录中,各个主要文件及其作用在下表中列出,
日志文件名 | 作用 |
---|---|
cron | 系统定时任务相关日志 |
cups | 打印信息日志 |
dmesg |
记录系统开机内核自检的信息,使用dmesg 命令查看
|
btmp |
记录登录错误信息的日志(二进制文件不能用vim查看,使用lastb 命令)
|
wtmp |
记录登录注销以及关机信息的日志(同样不能用vim查看,使用last 命令)
|
lastlog |
记录每个用户最后一次登录时间,使用lastlog 命令查看
|
maillog | 记录邮件信息 |
massages | 记录系统的绝大多数重要信息,出现问题主要检查这个文件(记录等级info,在下面讲到) |
secure | 记录验证和授权相关信息,主要与用户账户与授权相关 |
另外,某些系统安装的应用服务默认将日志记录在这个目录下,但不是使用rsyslog
服务管理,应用有自己的日志管理服务。通过源码包安装的应用服务日志记录在其安装目录下
日志文件格式
基本日志格式主要包含四种内容
- 事件发生时间
- 发生事件的主机名
- 发生事件的服务或程序(或内核),包含进程PID
- 事件内容
日志管理服务 rsyslog 配置
日志管理服务的配置格式
rsyslog
服务的配置文件为/etc/rsyslog.conf
配置文件格式:服务名称[连接符号]日志等级 日志记录位置
其中:
服务名称为系统安装的服务的名称,多个服务名称如果使用同一等级,可用逗号分隔
两个规则之间(主要用于排除情况),使用分号分隔,详见样例
连接符号在下面给出,日志等级也在下面给出
日志记录位置不只是文件绝对路径,有以下方式
日志记录位置 样例说明 绝对文件路径 /var/log/messages 系统设备文件 /dev/lp0 (使用打印机输出) 转发给远程主机 @192.168.0.2:123 用户名 root 或*(表示所有用户) 忽略日志(不记录) ~
日志服务管理的主要服务名称
服务名称 | 说明 |
---|---|
auth | 用户账户安全和认证信息(与authpriv不同) |
authpriv | 用户账户安全和认证信息(私有的) |
cron | 系统定时任务 |
daemon | 各种守护进程 |
ftp | ftp守护进程相关日志 |
kern | 内核产生日志 |
lpr | 打印日志 |
邮件收发日志 | |
news | 新闻服务器相关日志 |
syslog | rsyslog服务产生的日志 |
user | 用户类别的日志 |
日志服务配置文件的连接符
连接符 | 说明 |
---|---|
* | 代表所有用户等级 |
. | 等级比后面给出的日志等级高(包含)的会记录 |
.= | 等级与后面给出的相等的 |
.! | 等级与后面给出的不等的 |
日志等级
日志等级从上到下依次变高
日志等级 | 说明 |
---|---|
debug | 一般的调试信息 |
info | 基本通知信息 |
notice | 普通的注意信息 |
warning | 一般警告信息,目前对系统运行没有影响但以后可能出现问题 |
err | 错误信息,可能影响一部分系统功能 |
crit | critical致命错误,较错误信息更加严重 |
alert | 警告状态信息,如果不处理可能造成系统损坏 |
emerg | 系统无法使用 |
另外,.none表示不记录日志,一般在排除情况下使用
日志服务配置举例
auth,authpriv.* /var/log/auth.log #逗号分隔表示两个服务同样等级,都为所有
*.*;auth,authpriv.none -/var/log/syslog #所有服务的所有信息,但排除了上面两个服务
日志轮替
如果从一开始的所有记录都记录在一个文件中,势必会造成读写变慢、占用增加,甚至增加由于单个文件损坏导致所有日志丢失的风险。为了解决这个问题,Linux系统采用日志轮替方式,将一段时间以前的记录切割打包到另外的存档文件中,而主日志文件从全新重新开始记录。
日志文件的命名(轮替)规则
- 如果配置文件中有"dateext"参数,那么日志会用日期来作为文件后缀,日志文件名不会重叠,就不会发生旧文件改名
- 当没有这个参数,日志文件会发生改名。当启用新的文件时例如
messages
,旧的文件会改为messages.1
,原来的messages.1
文件会变为messages.2
,以此类推,过早的文件可能会被压缩,超过最大序号的旧文件会被删除。
日志轮替的配置文件为/etc/logrotate.conf
,同时具体信息也可以保存在/etc/logrotate.d
目录中,在其中可以设置日志轮替信息,参数具体man logrotate
查看帮助
参数 | 说明 |
---|---|
daily | 按日轮替 |
weekly | 按天轮替 |
monthly | 按月轮替 |
rotate n | n为数字,为保留的日志文件的个数,0指不备份 |
compress | 对旧的日志进行压缩 |
create [mode] [owner] [group] | 建立新日志的权限模式,所有者和所属组,如create 0640 root adm |
针对具体文件的设置要用特殊语法包含,例如,
# no packages own wtmp -- we'll rotate it here
/var/log/wtmp {missingokmonthlycreate 0664 root utmpminsize 1Mrotate 1
}
具体文件名后用大括号包含设置,以下设置仅对一个文件生效。
Linux日志管理(日志配置、日志轮替)相关推荐
- java日志——修改日志管理器配置+日志本地化
[0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java日志--修改日志管理器配置+日志本地化 的相关知识: [1]修改日志管理器配置 1.1 ...
- 日志管理、配置日志服务器 、配置时间同步
日志管理程序:rsyslog 程序包:rsyslog ,端口默认514,加密日志,端口是 6514 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/.conf 库文件: ...
- Java学习day051 记录日志(基本日志、高级日志、修改日志管理器配置、本地化、处理器、过滤器、格式化器、日志记录说明)
使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识. day051 记录日志(基本日志.高级日志.修改日志管理器配置.本地化.处理器.过滤器.格式化器 ...
- 楼梯在SQL Server事务日志管理,三级:事务日志,备份和恢复(16周翻译)
楼梯在SQL Server事务日志管理,三级:事务日志,备份和恢复 通过托尼•戴维斯,2011/09/07 该系列 本文是楼梯系列的一部分:楼梯在SQL Server事务日志管理 当一切都很顺利,没有 ...
- 日志管理:(三)配置_JCL+Log4J中遇到的问题
今天,要做一个很简单的事,那就是项目上线了,需要把各个子功能的日志分开,方便系统出线问题后,日志的查看,用过log4j的童鞋们都知道,这是很简单的,配置一个appender,再配置一个category ...
- Spring MVC 中使用AOP 进行统一日志管理--XML配置实现
1.介绍 上一篇博客写了使用AOP进行统一日志管理的注解版实现,今天写一下使用XML配置实现版本,与上篇不同的是上次我们记录的Controller层日志,这次我们记录的是Service层的日志.使用的 ...
- Linux日志管理之搭建日志服务器
前期准备 两台CentOS虚拟机 网络正常两台机器可以ping通 最后还缺一个屏幕前的你(搭建日志服务器) 需求 进行日志服务器的配置,使客户端把 任意类型的 高于和等于info级别的日志通过TCP的 ...
- 华为 日志服务器 配置文件,配置日志服务器
配置日志服务器 内容精选 换一换 您可以通过云日志服务,查看访问七层共享型负载均衡请求的详细日志记录,分析负载均衡的响应状态码,快速定位异常的后端服务器.您已经创建了七层负载均衡.您已经开通了云日志服 ...
- 容器日志管理 (2) 开源日志管理方案 ELK/EFK
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章.上一篇<容器日志管理(1)>中介绍了Docker自带的logs子命令 ...
- 2012文件服务器 读写日志,管理用户访问日志记录记录
管理用户访问日志记录记录 10/16/2017 本文内容 适用范围:Windows Server 2022.Windows Server 2019.Windows Server 2016.Window ...
最新文章
- Merge into的使用
- 传Exchange 15将于今年9月发布
- ActionBarSherlock ViewPagerIndicator
- 福建信息技术学院计算机系男生宿舍怎么样,广西职业技术学院宿舍怎么样
- spring boot 常用项目文件结构
- daocloud创建mysql_DaoCloud体验-使用node构建应用程序
- 改变iOS app的icon(iOS10.3)
- React 引入阿里矢量图标方法
- Linux文件打包tar
- 【Django】Django视图views详解
- 一本好书,若干能源大数据分析论文分享
- 【C语言】用回调函数实现冒泡排序
- PHP字体间距设置,wps字间距怎么调整
- setoolkit的钓鱼攻击
- Unity3D 通过脚本设置PlayerSettings的属性(GPU Skinning,Auto Graphics APi[OpenGLES2])等
- 1024,程序员“赚钱”秘籍倾囊而赠!
- 44岁万达女高管跳楼:摧毁一个中年人有多容易!
- 图片加载框架Glide
- 英文阅读积累 - 2019年4月
- 多种多样的Photoshop 的撤消命令
热门文章
- Autowired如何实现自动注入?
- 终于等到你!3月28 丽颜国际 速丽肽·明眸焕颜眼霜正式发售
- Java:多线程(同步死锁、锁原子变量、线程通信、线程池)
- Java图形界面编程--界面版猜数字游戏
- xcode打包iOS教程
- oracle中select #39;1#39; as,用SQL语言治理Oracle数据库
- pthread 条件变量
- [附源码]JSP+ssm计算机毕业设计学生请销假审批管理系统9z565【源码、数据库、LW、部署】
- 3.3 查询自动售货机中商品的价格
- SAS(七)SAS常用函数