Logrotate 对服务器日志按照小时切割并压缩
背景介绍
对于互联网小公司而言,对于服务日志的处理一般都不咋样,在微服务使用之后之后可能稍微好一些,但还是有很多传统的服务,如:Tomcat,Nginx 等在日志处理的时候仍然不是很友好。主要是很多时候开发需要查看线上服务的日志便于查找 BUG,所以我们很多时候不是在查日志就是查日志的路上。
为了便于开发自己去查看日志于是便使用 Nginx 做了个日志下载站点。但是问题再次来了,那就是日志量太大,不好下载。怎么办?压缩呗。毕竟纯文本压缩比率超级高,100M 的文件能够压缩到几 M 不香吗?
但是即使压缩之后,解压后仍然很多,我们可能只需要查看的是几点到几点的,其它的对于我们没有意义。要是能够按照小时再切割一下就好了。
于是想到了 Linux 的 logrotate。但是默认的规则好像并不能满足我们的需求,因为它最低的时间也是按天计算的。
这时候就需要另外一个东西了,crontab 定时任务。
关于 logrotate
一般在服务器初始化的时候这些工具都已经存在的,但是为了保险,还是手动安装一下:
yum -y install logrotate
服务简单的说明:
服务的主配置文件:/etc/logrotate.conf
在主配置中可以看到 include /etc/logrotate.d 说明我们可以将用户定义的配置直接放到这下面,系统会自动为我们执行。当然,系统的并不能很好的满足我们需求。
再看看配置模板:
日志文件绝对路径 {各种参数... }
参数包含:
参数 | 说明 |
---|---|
compress | 日志轮替时候对旧日志就行 gzip 压缩 |
nocompress | 不压缩 |
daily | 按天轮替 |
dateext | 使用当前日期命名旧日志 |
dateformat .%s | 对日期进行格式定制 |
ifempty | 日志没有内容的时候也进行轮替 |
notifempty | 日志是空的就不轮替 |
将轮替后的文件发送到指定E-mail地址 | |
nomail | 不发邮件 |
copytruncate | 轮替时候先拷贝日志,备份拷贝文件,在清空本来的文件,这样不会导致轮替后原文件消失,缺点就是可能丢失小部分日志 |
monthly | 一个月轮替一次 |
olddir | 轮替后日志文件放入指定的目录 |
rotate | 轮替最多保留之前的数据几次 |
size | 当日志增长到指定大小的时候开始轮替 |
weekly | 按周轮替 |
yearly | 按年轮替 |
Missingok | 如果日志丢失,不报错继续滚动下一个日志 |
切割 Tomcat 日志示例
说明:
1. 服务器上面有这样一个 tomcat 日志:/data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/catalina.out
2. 我们想将这个文件按每两小时切割一次并压缩,保留 100 个旧的切割,切割的文件保存到:/data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/archives 目录下。
开始配置:
1. 添加 logrotate 配置文件:
vi /etc/logrotate.d/tomcat
内容如下:
# MALL LOGROTATE /data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/catalina.out {notifempty copytruncaterotate 100missingokcompressdateextdateformat .%Y%m%d-%Holddir /data/TEST-01-BACKEND/MALL/MALL-WEB-Serice-8000/logs/archives }
红色部分需要注意,第一个是为了轮替之后原文件还存在,第二个为压缩,第三个定义切割后文件的名称。
2. 手动执行一次轮替:
/usr/sbin/logrotate -vf /etc/logrotate.d/tomcat
这里如果报错:because parent directory has insecure permissions (It's world writable or writable by group which is not "root")
只需要在配置中参数加入:
su root root
3. 查看轮替后效果:
可以看到原本 300M 左右的被压缩到 64 M。
4. 加入定时任务:
crontab -e
内容如下:
# LOGROTATE 0 */2 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >> /tmp/logrotate.log
这样就能每隔两小时轮替一次了!
Logrotate 对服务器日志按照小时切割并压缩相关推荐
- logrotate测试_日志切割之Logrotate
1.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处 ...
- 服务器log文件清理,服务器日志切割清理工具(LogCutter)
对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...
- linux 日志切割 自带,[日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割...
logrotate日志分割配置: # cat /etc/logrotate.d/nginx /data/nginx_logs/*.access_log #nginx日志所在目录 { n ...
- logrotate测试_logrotate日志切割
最近在搭建日志收集平台,将linux的部分日志收集到elasticsearch上通过kibana进行搜索展现,基本上是标准的ELK架构,但是agent端复用了已有的flume.在功能测试的时候,是将本 ...
- centos 日志切割_CentOS Linux使用logrotate分割管理日志
logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用.可以节省磁盘空间. logrotate命令格式: logro ...
- Nginx的继续深入(日志轮询切割,重写,负载均衡等)
Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...
- Nginx日志文件的切割
Nginx日志文件的切割 生产环境中,由于访问日志文件增长速度非常快,日志太大会严重影响服务器效率. 同时,为了方便对日志进行分析和计算,需要对日志文件进行定时切割. 定时切割方式,包括按月切割.按天 ...
- logrotate测试_日志轮询工具Logrotate的使用
Lograte的作用 我们可以在 Linux中配置 logrotate 程序,它可以自动执行日志文件的轮换.压缩.删除和用邮件发出. 我们可以配置 logrotate 程序,以便每个日志文件可以在每天 ...
- 这些 Shell 分析服务器日志命令集锦,收藏好
自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看有没有黑阔搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! 1.查看有多少个IP访问: awk ...
最新文章
- JetsonTX2上安装tensorflow的心酸史
- Facebook TensorMask:一种新的密集滑动窗口分割技术
- Python 文件操作二
- 微信和支付宝支付模式详解及实现(.Net标准库)- OSS开源系列
- 速度收藏!600页阿里技术全景图曝光,程序员看完都沸腾了
- linux 中如何查看块设备,在linux中,如何确定使用块设备的进程?
- linux 怎么创建接口文件,我们如何在Linux上创建多个虚拟接口?
- 关于Mysql的错误:No query specified
- 让AI自动调参,才是百度无人车的进化方式:适应环境全靠自己 | 论文
- 硬盘数据恢复的神器有哪些
- cjson 对象是json数组型结构体_CJSON中有关于在对象中放数组,数组中放对象,以及其解析...
- matlab的基本使用
- 为什么中国的数字是四位一进,而西方的是三位一进?
- php爬虫教程(二)数据请求分析
- 陈强教授《机器学习及R应用》课程 第七章作业
- Node-RED使用指南:28:撤销与删除恢复
- Unity3D休闲射击类游戏《Survival Shooter》完整源码
- 第二章 源力、质量、能量
- 谷歌(百度)搜索的一些技巧
- 机器人xacro设计+gazebo/rviz启动
热门文章
- 全局异步和主线程异步区别、改变PlaceHolder颜色、解决键盘弹起挡住文本框问题...
- POST教程笔记 - WinHttp获取网页源码
- 两个操作字符串的方法:读取指定位置的字符和找出某个字符串的位置
- 无法加载登录用户界面DLL MyGina.dll 解决
- gitlab 目录tag_【环境搭建】gitlab-ci(持续集成)
- 【数据结构与算法】之深入解析“搜索旋转排序数组”的求解思路与算法示例
- 2020/Province_C_C++_A/A/门牌制作
- 2015/Province_Java_A/3/九数分三组
- Golang之实现一个负载均衡算法(随机,轮询)
- Lake Counting POJ - 2386