filter {
mutate {
rename => [ "message", "blog_html" ]
copy => { "blog_html" => "blog_text" }
copy => { "published" => "@timestamp" }
}
mutate {
gsub => [
"blog_text", "<.*?>", "",
"blog_text", "[\n\t]", " "
]
remove_field => [ "published", "author" ]
}
}
  • apache日志

    日志格式
83.149.9.216 - - [17/May/2015:10:05:03 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
83.149.9.216 - - [17/May/2015:10:05:43 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-dashboard3.png HTTP/1.1" 200 171717 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
filter {
grok { # 通过正则表达式来匹配我们的每一条log信息,把相应的值赋值给相应的变量
match => {
"message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'
}
} date { # @timestamp表示的在运行时的当前timestamp。把@timestamp转换成来自于log里的时间信息,也就是timestamp所表述的时间。
match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ]
locale => en
} geoip { # 根据IP地址解析是来自哪一个地方的以及它的经纬度等信息
source => "clientip"
} useragent { # 添加有关useragent(如系列,操作系统,版本和设备)的信息
source => "agent"
target => "useragent"
}
}
  • csv文件
input {
file {
path => "/Users/liuxg/data/cars.csv"
start_position => "beginning"
sincedb_path => "null"
}
} filter {
csv {
# 分隔符
separator => ","
# 表格的列名
columns => [ "maker", "model", "mileage", "manufacture_year", "engine_displacement",
"engine_power", "body_type", "color_slug", "stk_year", "transmission", "door_count",
"seat_count", "fuel_type", "date_created", "date_last_seen", "price_eur" ]
}
# 转换数据类型
mutate { convert => ["mileage", "integer"] }
mutate { convert => ["price_eur", "float"] }
mutate { convert => ["engine_power", "integer"] }
mutate { convert => ["door_count", "integer"] }
mutate { convert => ["seat_count", "integer"] }
} # 在input中,path指向csv文件的位置。start_position指向beginning。对于一个实时的数据源,它通常是ending,表示它每次都是从最后拿到那个数据。sincedb_path通常指向一个文件。这个文件保存上次操作的位置。设置为/dev/null表明我们不存储这个数据
# 在filter中,column都来自于csv表格。通常Logstash会把每个数据都当做是字符串。mileage是一个整型数,price_eur是一个浮点数,可以通过mutate来完成

最新文章

  1. 【WCF】使用“用户名/密码”验证的合理方法
  2. Kafka设计解析(一)- Kafka背景及架构介绍
  3. Maven项目WEB-INF/views无法引入js,css静态文件解决方法
  4. 瓦片地图与geoserver发布
  5. LightOJ 1094 - Farthest Nodes in a Tree(树的直径)
  6. MYSQL日常操作命令再熟悉
  7. hdu - 1083 - Courses
  8. python之dictionary
  9. 新概念英语(1-49)At the butcher&#39;s
  10. PHP6天基础知识部分
  11. 黑马程序员_Java基础视频-深入浅出精华版--视频列表
  12. ES6class
  13. 获取 ip ( 第三方接口 )
  14. graphviz画图与中文乱码等问题总结
  15. unistd.h文件
  16. Portal系统中当切换学生时仍旧停留在当前页面的实现方法
  17. List、Map、Set三个接口存储元素时各有什么特点?
  18. DEV控件的Gridview小技巧总结
  19. boost库的配置——Linux篇
  20. 一点一点学写Makefile(6)-遍历当前目录源文件及其子目录下源文件

热门文章

  1. StringBuilder修改字符串内容,增,删,改,插
  2. Linux帮助——重要文件
  3. oracle 利用序列与触发器实现列自增
  4. 移动应用性能测试剖析以及PerfDog与其他工具的对比分析11.22
  5. Hystrix工作流
  6. 8.JavaCC官方入门指南-例3
  7. MySQL 部署分布式架构 MyCAT (一)
  8. rabbitmq pika(python)订阅发布多客户端消费场景简单使用
  9. Day_03
  10. Webshell篇