假如使用如下配置处理日志

input {
     file {
        path => "/home/vagrant/logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-*.log"
        start_position => "beginning"
        type => "sql"
        codec => json {
            charset => "UTF-8"
        }
     }
}
output {
    if "_grokparsefailure" in [tags] {
    }else{
        if [type] == "sql"{
                elasticsearch {
                         hosts => ["http://192.168.33.10:9200"]
                         index => "common-sql-%{+YYYY.MM.dd}"
                }
       }
    }
}
  • 所有匹配common-sql-*.log的文件都将被处理

  • 第一次从头开始处理文件

  • 处理后以json格式输出到elasticsearch

logstash如何记录处理进度?

  • 第一次运行logstash时从头处理文件,假如此时有两个文件匹配上则按顺序开始处理文件。
  • logstash处理过程中不断将每个文件处理的进度写入到某个地方,这就是sincedb。
  • sincedb一般以隐藏文件默认写到home目录下面,文件名类似.sincedb_6268051ae572b42bd86b7f9e8c1e004b。
  • sincedb的格式为inode majorNumber minor Number pos。每行记录每个文件处理进度,比如下面的例子,表示inode为177037的文件处理到25951716位置、inode为176956的文件处理到32955178位置。
177037 0 64768 25951716
176956 0 64768 32955178
  • 用stat看看这两个文件inode信息。可以看到两个文件都已经处理完了。如果没处理完关闭了logstash则会在下次启动时继续处理。
[vagrant@hb-localhost ~]$ stat logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-2016-11-24.log
  File: `logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-2016-11-24.log'
  Size: 32955178    Blocks: 64368      IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 176956      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  501/ vagrant)   Gid: (  501/ vagrant)
Access: 2016-11-24 02:08:19.058506565 +0000
Modify: 2016-11-24 01:46:14.000000000 +0000
Change: 2016-11-24 02:05:06.194122690 +0000
[vagrant@hb-localhost ~]$ stat logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-2016-11-23.log
  File: `logstash/logstash-2.2.2/dbpool-logs/dev/common-sql-2016-11-23.log'
  Size: 25951716    Blocks: 50688      IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 177037      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  501/ vagrant)   Gid: (  501/ vagrant)
Access: 2016-11-24 02:15:28.217978771 +0000
Modify: 2016-11-23 13:19:16.000000000 +0000
Change: 2016-11-24 02:15:27.913826772 +0000
  • 如果往这两个文件追加日志则将往下继续处理,而且也会将进度更新到sincedb文件中。
  • 如果处理完了关闭logstash,下次再启动时则不会再从头开始处理,因为sincedb已经记录了进度,不要以为start_position => “beginning”就是每次都从头处理,如果把sincedb文件删了又会从头开始处理。

logstash处理文件进度记录机制的更多相关文章

  1. Lenovo k860i 移植Android 4.4 cm11进度记录【上篇已完结】

    2014.5.16 为了验证一下下载的CM11的源码有没有问题,决定编译一下cm官方支持的机器,手上正好有台nexus7 2012,就拿它为例测试一下在mac os x平台的整个编译过程. 1. 最开 ...

  2. Kafka文件的存储机制

    Kafka文件的存储机制 同一个topic下有多个不同的partition,每个partition为一个目录,partition命名的规则是topic的名称加上一个序号,序号从0开始. 每一个part ...

  3. Lenovo k860i 移植Android 4.4 cm11进度记录【下篇--实时更新中】

    2014.8.24 k860i的cm11的移植在中断了近两三个月之后又開始继续了,进度记录的日志上一篇已经没什么写的了,就完结掉它吧,又一次开一篇日志做下篇好了.近期的战况是,在scue同学的努力之下 ...

  4. apache fileupload 文件上传,及文件进度设置获取

    文件上传action处理: boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) ...

  5. hdfs文件上传机制与namenode元数据管理机制

    1.hdfs文件上传机制 文件上传过程:   1.客户端想NameNode申请上传文件, 2.NameNode返回此次上传的分配DataNode情况给客户端 3.客户端开始依向dataName上传对应 ...

  6. Lenovo k860i 移植Android 4.4 cm11进度记录【下篇--实时更新中】

    2014.8.24 k860i的cm11的移植在中断了近两三个月之后又开始继续了,进度记录的日志上一篇已经没什么写的了,就完结掉它吧,重新开一篇日志做下篇好了.最近的战况是,在scue同学的努力之下, ...

  7. Java提高篇——JVM加载class文件的原理机制

    在面试java工程师的时候,这道题经常被问到,故需特别注意. 1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从“Hello World ”开始的,然后 ...

  8. vs2005中删除最近打开的项目和文件的记录

    vs2005中总是保留最近打开的项目和文件的记录,甚至是以删除的它也不删,-_-!下面介绍几种删除的方法: 第一种:建立一个bat文件,以后双击即可清除,内置代码如下: @echo off@REG D ...

  9. Linux 内核的文件 Cache 管理机制介绍

    Linux 内核的文件 Cache 管理机制介绍 http://www.ibm.com/developerworks/cn/linux/l-cache/ 1 前言 自从诞生以来,Linux 就被不断完 ...

随机推荐

  1. python 简单实现淘宝关键字商品爬取

    本文有2个文件 1:taobao_re_xpath 2:taobao_re_xpath_setting # 1:taobao_re_xpath # -*- coding:utf-8 -*- # aut ...

  2. [SDOI 2016]征途

    Description 题库链接 将一个长度为 \(n\) 的正整数序列分为 \(m\) 段,问你这 \(m\) 段最小的方差 \(v\) 为多少.输出 \(v\times m^2\) . \(1\l ...

  3. [Codeforces 864F]Cities Excursions

    Description There are n cities in Berland. Some pairs of them are connected with m directed roads. O ...

  4. [SHOI2008]汉诺塔

    Description 汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成.一开始n个盘子都摞在柱子A上, 大的在下面,小的在上面,形成了一个塔状的锥形体. 对汉诺塔的一次合法的 ...

  5. [HNOI2012]射箭

    Description 沫沫最近在玩一个二维的射箭游戏,如下图 1 所示,这个游戏中的 x 轴在地面,第一象限中有一些竖直线段作为靶子,任意两个靶子都没有公共部分,也不会接触坐标轴.沫沫控制一个位于( ...

  6. [SCOI2009]围豆豆

    Description Input 第一行两个整数N和M,为矩阵的边长. 第二行一个整数D,为豆子的总个数. 第三行包含D个整数V1到VD,分别为每颗豆子的分值. 接着N行有一个N×M的字符矩阵来描述 ...

  7. [ZJOI2007]棋盘制作

    题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳. 而我们的 ...

  8. 勤拂拭软件系列教程 之 Android开发之旅

    勤拂拭软件工作室持续推出Android开发系列教程与案例,供广大朋友分享交流技术经验,帮助喜欢Android的朋友们学习进步: 1. 勤拂拭软件Android开发之旅(1) 之 Android 开发环 ...

  9. WebStorm 快捷键一览

    查找/代替 快捷键 说明 ctrl+shift+N 通过文件名快速查找工程内的文件(必记) ctrl+shift+alt+N 通过一个字符快速查找位置(必记) ctrl+F 在文件内快速查找代码 F3 ...

  10. C++符号优先级

    C++符号优先级 优先级 操作符 功能 用法 结合性 1 ()[]->.::++-- Grouping operatorArray accessMember access from a poin ...