go 记录日志到Elk

  • 基于"github.com/heatxsink/go-logstash"
  • 示例代码如下
    package main
    
    import (
        "github.com/heatxsink/go-logstash"
    )
    //将go 的错误日志推送的elk
    var logs *logstash.Logstash
    
    //使用单例模式创建redis client
    func GetInstance(opt redis.Options) *redis.Client {
        once.Do(func() {
            redisdb = redis.NewClient(&opt)
        })
        return redisdb
    }
    
    func initLogstash() {
        logs := logstash.New("192.168.3.10", 5000, 5)
        conn, err := logs.Connect()
        if err != nil {
            fmt.Println(err)
        }
        err = logs.Writeln("{ 'foo' : 'bar' }")
        if err != nil {
            fmt.Println(err)
        }
        defer conn.Close()
    }
    
    func main() {
        initLogstash()
       select{}
    }
  • 在Kinbana 配置logstash 展示

     添加索引模式,把logstash 索引按照配置添加

打开Discover 界面即可看到logstash 记录的日志。

这里看到的数据都是交杂在一起的。如果要更方便查询则需要使用到logstash filter 

原文地址:https://www.cnblogs.com/chongyao/p/14098275.html