中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go單體日志采集zincsearch怎么實現

發布時間:2022-07-26 09:44:48 來源:億速云 閱讀:176 作者:iii 欄目:開發技術

今天小編給大家分享一下go單體日志采集zincsearch怎么實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一 構架

zincsearch用官方的話說是一個全文本搜索引擎,而且搜索很快。支持es格式接口,一般ELK中直接filebeat采集數據直接給es,你要使用zincsearch可以直接把它放到filebeat后頭,filebeat采集數據給zincsearch。因為單體比較簡單,filebeat使用也有一定門檻,我就自己寫了一個logfile,專門采集日志,通過接口把數據傳給zincsearch,構架如下圖。

go單體日志采集zincsearch怎么實現

數據入庫后通過zincsearch自帶ui界面(類似kibana)就可以檢索數據了.

go單體日志采集zincsearch怎么實現

二 zinsearch 安裝

我是通過docker安裝的,為了方便啟動做成了一個docker-compose,配置如下:

docker-compose.yml

version: '3.5'
networks:
  zinnet:
    driver: ${NETWORKS_DRIVER}
services:
  zinc: ## mqtt 服務
    image: zinc:v1
    environment:
      - TZ=${TZ}
      - DATA_PATH="/data"
      - ZINC_FIRST_ADMIN_USER=admin
      - ZINC_FIRST_ADMIN_PASSWORD=123456
      - ZINC_PROMETHEUS_ENABLE=true
    ports:
      - "4080:4080"
    volumes:
      - ${DATA_PATH_HOST}:/data
    networks:
      - ${NET_NAME}
    restart: always

.env

# 設置時區
TZ=Asia/Shanghai
# 設置網絡模式
NETWORKS_DRIVER=bridge
# 宿主機上Mysql Reids數據存放的目錄路徑
DATA_PATH_HOST = ./data
# 網絡名稱
NET_NAME = zinnet

在目錄下創建指定的data目錄 運行 docker-compose up -d 即可。

二 logbeat

logbeat是一個我自己寫的類似filebeat的采集器,主要原理也是用了一個由tail作用的go庫對文件進行監控,當由數據采集上來后進行過濾處理然后發送給zincsearch。

logbeat也是完全由golang編寫,項目地址 gitee.com/lambdang/lo… 該項目下載下來編譯后進行配置即可使用。

logbeat特點:

  • 當zincsearch掛掉后整個采集就阻塞住了,會按照設定的時長進行服務可用性輪詢試探,直到zincsearch服務恢復

  • 該logbeat支持多文本日志監控,采集后為了減少zincsearch的壓力,會順序進行數據發送。

如果有filebeat經驗的人也可以直接用filebeat進行數據采集,zincsearch文檔上有filebeat的配置。

配置項如下:

Beat:
  Files:
    - 
      Index: api
      File: ./test.log
  Hosts: http://localhost:4080
  Username: admin
  Password: "123456"
  RetrySecond: 300 #重試秒s
Log:
  OutType: all

三 zincsearch 使用經驗

1 關于刪除

zincsearch是以索引組織數據的,刪除目前通過文檔只發現了兩種方式,一種是根據記錄的id進行單個刪除,一種是根據索引批量刪除該索引下的所有數據,所以數據最好按照天或者月進行索引組織,這樣方便以后按照天或者月進行數據刪除,畢竟誰的硬盤也不是無窮大的。

之前一直想通過按照搜索進行數據刪除,比如給一個時間段,然后進行刪除,但是沒有發現類似方法,有能這樣實現的小伙伴歡迎交流。

2 關于日期date類型

zincsearch索引數據一共有如下幾種類型

go單體日志采集zincsearch怎么實現

其中date類型是個特殊的存在

文檔中索引的日期類型可以按照實際文本數據設置format。如下圖:

go單體日志采集zincsearch怎么實現

但是通過一番摸索發現這個format只是你日志的格式,并不是最終ui界面顯示的格式,經過測試,所有date類型數據最終都會轉換成”數值“,可能是為了搜索的時候可以比較大小吧,但是顯示的時候也是數值,這個就看著很不友好了。

go單體日志采集zincsearch怎么實現

目前我能想到的就覺方案是索引里不要弄date類型,直接弄numeric類型時間戳和text類型的字符串,兩個同時弄,即方便時間區間查詢也方便查看,也可以根據時間字符串進行查詢,畢竟這可是支持全文檢索的。誰有更好的方案歡迎交流。

3 關于檢索中時間選項

所有數據查詢都需要一個時間范圍,一般默認是30分鐘內,但是你也可以設置一天,一星期,一個月,也可以設置時間段。但是不要以為設置多少時間就能檢索出該時間內所有數據,還要看數據量,就是數據左下角那個數值。

go單體日志采集zincsearch怎么實現

這個數值可以設置,這個才是決定最終的數據量的,它設置100,你檢索出來的數據只是檢索條件中結束時間點開始往前100條數據。所以你時間跨度設置再大,這個數值很小,你查出來數據也很少的。

以上就是“go單體日志采集zincsearch怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荥阳市| 大名县| 习水县| 仁怀市| 大方县| 临沂市| 开鲁县| 东明县| 辽中县| 乡城县| 望都县| 鱼台县| 大洼县| 揭东县| 日喀则市| 宣恩县| 观塘区| 崇左市| 黄大仙区| 唐山市| 文成县| 延寿县| 瑞安市| 寿宁县| 铜山县| 喀喇沁旗| 额尔古纳市| 时尚| 凤山市| 台北县| 深圳市| 江源县| 南木林县| 孟州市| 房山区| 旺苍县| 宜城市| 准格尔旗| 三门峡市| 静海县| 枣庄市|