logstash filter 学习

案例 读取文本文件 内容:
vi a.cong
input {
stdin{}
}
filter{
mutate{
       split=>["message",","]
   }
   mutate{
       split=>["message",":"]
   }
   mutate{
       add_field=>{
           "id"=>"%{[message][0][1]}"
           "ip"=>"%{[message][1][1]}"
       }
   }
geoip{
source=>"ip"
}
}
output {
 elasticsearch {
   hosts => ["localhost"]
   manage_template => false
   index => "test"
   document_type => "my_type"
 }
 stdout {
                codec => rubydebug
        }
}
执行 ./bin/logstash -f a.conf
输入 192.168.1.12,10

案例2 es 导入 es index
vi b.conf
input {
        elasticsearch {
                hosts => "localhost"
                index=>"test"
        }
}
filter{
geoip{
source=>"ip"
}
}
output {
        elasticsearch {
                hosts => "localhost"
                index=>"test"
        }
        stdout {
                codec => rubydebug
        }
}
案例3 json 格式 处理 :  比如 : {"id":2,"ip":"12x.xx6.xx.6"}
input{
    stdin{}
}
filter{
    mutate{
        replace=>[
            "message",
            "%{message}"
        ]
    }json{
        source=>"message"remove_field=>"message"
    }mutate{
        convert=>[
            "latitude",
            "float"
        ]convert=>[
            "longitude",
            "float"
        ]
    }mutate{
        rename=>[
            "latitude",
            "[location][lat]",
            "longitude",
            "[location][lon]"
        ]
    }mutate{
        add_field=>{
            "new_ip"=>"%{id}"
        }
    }geoip{
        source=>"ip"
    }
}
output{
    stdout{
        codec=>rubydebug
    }

}

继续 学习中,。。。。。。。。。

你可能感兴趣的:(logstash)