Log分片实现

小序

  • 充满对运维的好奇,懵懂地步入运维的大坑。突然,天际划过一道云光,空中布满的巨云渐渐散去,化为一朵朵pretty彩云。猛地低头,发现一个小坑,似乎篆刻LOG分片的九阴真经~~~
  • 本文介绍log分片的两种方法,以及自己遇到的pit和解决方案~~

什么是Log分片

i.e.把系统的LOG日志按照时间等顺序进行分割,生成多个独立LOG文件的过程 (自己理解的~可能不太准)

  • 有些也称为LOG分割

环境

  • ubuntu 16.04

如何实现LOG分片

想法一:Contrab+SHELL

首先我们要写个SHELL脚本分割日志
此处以nginx的error.log和access.log的分片为例
shell脚本如下

#!/bin/bash

year=`date +%Y`
month=`date +%m`
day=`date +%d`
logs_backup_path="/var/log/nginx/logs_backup/$year-$month-$day"  

logs_path="/var/log/nginx/"

logs_access="access"
logs_error="error"

date_format=`date '+%Y-%m-%d_%H:%M'`

access_path=${logs_backup_path}/access
error_path=${logs_backup_path}/error


[ -d $access_path ]||mkdir -p $access_path
[ -d $error_path ]||mkdir -p $error_path
cp ${logs_path}${logs_access}.log ${access_path}/${logs_access}_${date_format}.log
cp ${logs_path}${logs_error}.log ${error_path}/${logs_error}_${date_format}.log

  • 原本是直接使用mv命令来移动日志的,但是发现移动一次以后,在/var/log/nginx目录下就不再生成新的access.log日志了,即在不重启nginx的情况下,nginx原来的文件句柄无法访问,不会自动创建新的log文件了。因为nginx只在启动的时候获取一次log文件的句柄,之后一直使用这个句柄。(来自张老板的教诲)
  • 所以改用了cp命令,然后再清空原来的文件内容,并不删除文件。这样就解决了之前的问题。

创建计划任务

crontab -e
59 23 * * * /bin/bash YOUR_BASH_PATH

这里创建了一个每天23点59分执行的计划任务。

  • 注:如果想把crontab默认编辑器改成vim可以使用如下命令(个人感觉比nano好用些)
export VISUAL=vi
  • 效果(这里把分片时间间隔调为1min了,有所裁剪)
.
├── access.log
├── error.log
└── logs_backup
    └── 2018-11-30
        ├── access
        │   ├── access_2018-11-30_15:48.log
        │   ├── access_2018-11-30_15:49.log
        │   ├── access_2018-11-30_15:50.log
        │   ├── access_2018-11-30_15:51.log
        │   ├── access_2018-11-30_15:52.log
        │   ├── ...
        │   └── access_2018-11-30_16:20.log
        └── error
            ├── error_2018-11-30_15:48.log
            ├── error_2018-11-30_15:49.log
            ├── error_2018-11-30_15:50.log
            ├── error_2018-11-30_15:51.log
            ├── error_2018-11-30_15:52.log
            ├── ...
            └── error_2018-11-30_16:20.log

想法二:Crontab+logrotate

logrotate是linux自带的,可以进行日志轮转操作的工具。
它的配置文件在

/etc/logrotate.conf         //主配置文件
/etc/logrotate.d/            //单独配置文件目录

编辑

vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {    
    daily                  //每天切割.可以设置:月monthly 周weekly 年yearly
    dateext                 //%Y%m%d作为后缀
    missingok               //如果日志不存在忽略错误
    rotate 14               //保留最近14天的日志记录
    compress                //转储之后使用gzip压缩
    notifempty              //空文件不转储
    create 640 nginx adm    //新日志文件模式
    sharedscripts           //整个日志组运行一次的脚本
    postrotate
            [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
                            //重启nginx,重新加载日志文件,防止不写
            `cp -f /var/log/nginx/*.* /var/log/nginx/backup`
                            //自定义脚本,将旧日志copy到backup文件夹(确保backup目录存在)
    endscript
}

添加定时任务

crontab  -e 
0 0 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx  

重启cron服务

 /etc/init.d/crond restart
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容