日志系统的搭建(collectd + logstash + influxdb)

背景

要提供一套新的服务,正好借这个机会把所有日志都整合起来:squid,collectd等等。同时存入influxdb中,用influxdb的原因是:

  • 需要的查询大多是随机查询,而它提供sql-like的查询语言,并且有一个简单的UI
  • go写的。。。。(老大喜欢)
  • elasticsearch没有一个好的dashboard

概述

  • squid:缓存数据的代理服务器。通过缓存和复用频繁访问的页面来减小带宽和提升响应速度。
  • collectd:定时收集系统性能的统计信息并提供了一个存储机制的守护进程。主要用它来收集cpu,内存,带宽的数据。
  • logstash:管理事件(event)和日志(log)的工具。可以通过插件的形式收集各种日志,并通过filter和output的插件来处理和输出到合适的后端。官方是对Elasticsearch默认进行无节操的支持的。。文档里面简直不忍直视。。
  • influxdb:分布式的,time series的db
  • elasticsearch:它自己说是一个全文检索和分析的引擎。
  • 另外对redis这种内存数据库也有了一些了解,以前只是会用,并没有深入去了解。因为对它的持久化比较感兴趣,了解过后发现主要是两点:不persist,只replicate;还有合理的数据淘汰机制。

logstash的influxdb output plugin

用的是这个:plugin
自己在测试的时候,用这样的一个conf:

input {
  stdin { }
}

filter {
  grok {
      match => ["message", '%{NUMBER:time} %{HTTPDATE} %{NUMBER:duration} %{IP:ip} .... "%{DATA:user_agent}"']
    }
  ruby {
      code => 'event["start_time"] = event["time"].to_f - event["duration"].to_f'
    }
}

output {
  influxdb {
    db => "test01"
    host => "localhost"
    port => "8086"
    user => "*****"
    password => "*****"
    series => "kobe"
    allow_time_override => true
    coerce_values => {
      "time" => "float"
      "start_time" => "float"
      "duration" => "integer"
      "transfer_size" => "integer"
    }
    data_points => {
      "time" => "%{time}"
      "start_time" => 
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值