go語言收集nginx容器日誌(二 讀取模組實現)

2021-10-08 08:25:16 字數 900 閱讀 4058

昨天大致流程已經實現,今天我們按照模組化實現功能

首先是讀取模組的實現

package main

import (

"bufio"

"fmt"

"io"

"log"

"os"

"strings"

"time"

)type logprocess struct

func (l *logprocess) readfromfile()

//(0,2)是指向檔案最後一行

file.seek(0, 2)

//新建乙個reader,讀取開啟的檔案

read := bufio.newreader(file)

for else if err != nil

//把讀取的資料轉換為string放入讀取管道

l.rc <- string(bytes) }}

func (l *logprocess) process()

}func (l *logprocess) write()

}func main()

go l.readfromfile()

go l.process()

go l.write()

time.sleep(30 * time.second)

}

下面是乙個測試資料生成**

datacreate.go

package main

import (

"log"

"os"

"time"

)func main()

for}

執行兩份**看到我們的寫入模組已經完成了。下面要完成處理模組的實現。

go語言收集nginx容器日誌(一)

go語言練手小專案,基於go語言實現日誌收集,需要用到docker influxdb grafana,負責收集日誌並處理資料然後寫入influxdb,grafana負責展示。第一天實現檔案的讀,處理及寫入,由淺到深。一下為main檔案 main.go package main import time...

Docker 容器日誌收集

root node1 cat ngxlog.sh bin bash nginx logs dir var log nginx web nginx pid file var log nginx nginx.pid pid ps ef grep nginx grep apache awk nginx l...

容器日誌收集ELK Filebeat Kafka

隨著容器如火如荼的發展,分布式的業務架構日誌收集便也成了我們需要重點考慮之一 傳統方式中已經有相對成熟的解決方案,無不外乎容器中我們同樣能夠採取相同的架構解決容器基於kubernetes的日誌收集問題 對於這套方案,網上已經有無數種介紹,在此就不再對各大元件進行贅述,僅做簡單描述 元件作用 優點fi...