用了这个logstash扩展

https://github.com/PeterPaulH/logstash-influxdb/blob/master/src/influxdb.rb

把这个文件放到 logstash-1.4.2/lib/logstash/outputs

看一下午logstash的文档,终于解决了自己的需求

用python描述就是这样的

开发要求统计日志中各种类型的数量

while True:
line = f.readline()
try:
if '"type":"text","receiver_id"' in line:
type = 'directmessage'
elif '"subtype":"unfollow"' in line:
type = 'unfollow'
elif '"subtype":"follow"' in line:
type = 'follow'
elif '"subtype":"status"' in line:
type = 'weibo'
elif '"subtype":"comment"' in line:
type = 'comment'
else:
type = None if type:
data = [
{"name":"pingpong_processor",
"columns" : ["type"],
"points" : [[type]] }
]

logstash配置文件如下

input {
stdin {}
} filter {
if '"type":"text"' in [message] {
mutate {
add_field => { "type" => "directmessage" }
remove_field => [ "message", "search" , "@version" ]
}
} else if '"subtype":"unfollow"' in [message] {
mutate {
add_field => { "type" => "unfollow" }
remove_field => [ "message", "search" , "@version" ]
}
} else if '"subtype":"follow"' in [message] {
mutate {
add_field => { "type" => "follow" }
remove_field => [ "message", "search" , "@version" ]
}
} else if '"subtype":"status"' in [message] {
mutate {
add_field => { "type" => "weibo" }
remove_field => [ "message", "search" , "@version" ]
}
} else if '"subtype":"comment"' in [message] {
mutate {
add_field => { "type" => "comment" }
remove_field => [ "message", "search" , "@version" ]
}
} else {
drop {}
} } output {
influxdb {
host => "10.75.28.180"
port => 4444
name => ["pingpong_processor"]
columns => ["type", "host"]
points => [
"%{type}", "c",
"%{host}", "c"
] } stdout {}
}

别忘记把influxdb的配置也修改下,因为默认upd协议是没有打开的

# Configure the udp api
[input_plugins.udp]
enabled = true
port = 4444
database = "pingpong_processor"

我用的influxdb版本是 influxdb-0.8.2-1.x86_64,用/etc/init.d/influxdb这个启动报错,无奈手动启动的

/usr/bin/influxdb -pidfile /tmp/influxdb.pid -config config.toml

看一下udp端口是否启动了

netstat -anup|grep influxdb
udp 0 0 :::4444 :::* 27512/influxdb

完工

logstash输出到influxdb的更多相关文章

  1. logstash输出到rabbitmq

    场景 将应用日志文件发送到rabbitmq. filebeat 不支持rabbitmq作为输出.因此,需要先将文件由filebeat发送到logstash ,再由logstash 输出到rabbitm ...

  2. logstash输出到elasticsearch多索引

    目标:将json格式的两类日志输出到elasticsearch两类索引 1. 安装logstash. 2. 编写logstash处理配置文件,创建一个test.conf文件,内容如下: input { ...

  3. 第二章 logstash - 输出插件之redis与es

    最常用的两个输出插件: redis es 一.redis 1.用法 output { redis{ batch => false batch_events => 50 batch_time ...

  4. logstash输出至elasticsearch

    续上一篇 上一篇描述了通过logback配置用logstash收集springmvc项目日志,本文是描述如何进一步通过elasticsearch对所收集数据进行的分析. output { elasti ...

  5. logstash 输出到elasticsearch 自动建立index

    由于es 单index 所能承受的数据量有限,之前情况是到400w数据300G左右的时候,整个数据的插入会变得特别慢(索引重建)甚至会导致集群之间的通信断开,于是我们采用每天一个index的方法来缓解 ...

  6. ELK系列五:Logstash输出到Elasticsearch和redis

    1.Logstash与Redis的读写 1.1 Logstash 写入Redis 看完Logstash的输入,想必大家都清楚了Logstash的基本用法,那就是写配置文件. output{ { red ...

  7. ElasticSearch——Logstash输出到Elasticsearch配置

    位置 在Logstash的.conf配置文件中的output中配置ElasticSearch 示例: output { elasticsearch{ action => "index& ...

  8. Windows服务器使用Telegraf采集服务器监控指标输出到influxdb

    1.环境说明 操作系统:Windows Server 2008 R2 IP:192.168.10.135 官方文档地址 :https://docs.influxdata.com/telegraf/v1 ...

  9. SpringBoot日志输出至Logstash

    1.springboot项目pom.xml文件下添加如下配置 2.resources目录下创建logback-spring.xml文件 <?xml version="1.0" ...

随机推荐

  1. 10个jQuery小技巧

    收集的10个 jQuery 小技巧/代码片段,可以帮你快速开发. 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. $('a.top' ...

  2. 双十二前夕爆京东12G数据泄露的真相是什么

    今天早上手机上推送出京东12g数据泄漏的消息,随即搜了下网上的相关新闻,感觉舆论又一次的干了一件惊天地的事情,到底京东的哪所谓的12G的用户信息数据有没有泄漏?舆论为什么齐刷刷的在12月11日突然间爆 ...

  3. python学习道路(day7note)(subprocess模块,面向对象)

    1.subprocess模块   因为方法较多我就写在code里面了,后面有注释 #!/usr/bin/env python #_*_coding:utf-8_*_ #linux 上调用python脚 ...

  4. FMDB简单封装和使用

    工具:火狐浏览器+SQLite Manager插件 ; Xcode; FMDB库; 效果: 项目地址: https://github.com/sven713/PackFMDB 主要参考这两篇博客: 1 ...

  5. sql条件为空查询全部,不为空按条件查询以及多条件筛选查询。

    procedure queryLackLonOrLatTdCell(i_region_name varchar2, i_state varchar2) is begin select region_n ...

  6. java类初始化的过程

    在复习Thinking in java的过程中看到了相关内容,顺便整理一下,像下面一样的代码具体的执行顺序(ABCD都是类) public class A { public A(String text ...

  7. 【原】使用Xfermode正确的绘制出遮罩效果

    以前写as3的时候,遮罩效果一个mask属性就搞定了,真是方便. 转到android上以后,发现要实现类似的效果,可以使用Xfermode,android一共提供了三种: AvoidXfermode; ...

  8. 在java中获取attr的值

    首先说如何获取已经在style里面定义好的attr的值,以colorPrimary为例: TypedValue value = new TypedValue(); mContext.getTheme( ...

  9. linux io stack

  10. Java jdbc 连接oracle之三(封装工具类)

    driver = oracle.jdbc.driver.OracleDriver url = jdbc:oracle:thin:@192.168.10.105:1521:orcl user = LF ...