gozero項目接入elk的配置與實戰

在 **GoZero** 項目中接入 **ELK(Elasticsearch、Logstash、Kibana)** 來進行日志管理,是一個非常強大的監控和分析方案。通過集成 ELK,你可以收集、存儲、查詢和可視化日志數據。

661ebdc93a8041dabc0c214a1100ee9e.png

在這里,我將介紹如何在 GoZero 項目中集成 ELK,特別是將 GoZero 的日志發送到 **Elasticsearch**,并在 **Kibana** 中進行可視化。我們會結合 **Logstash** 或 **Filebeat** 來進行日志的傳輸。081703c3df7b439fb07d7138f3e8e186.png

### 1. 安裝和配置 ELK 堆棧

如果你還沒有安裝 ELK,可以通過以下步驟安裝。

#### 1) 安裝 Elasticsearch

從 [Elasticsearch 官網](https://www.elastic.co/downloads/elasticsearch) 下載并安裝 Elasticsearch。安裝完成后,可以通過以下命令啟動 Elasticsearch:

```bash
# 啟動 Elasticsearch(假設你已經安裝了它)

./bin/elasticsearch


```

Elasticsearch 默認運行在 `http://localhost:9200`。

#### 2) 安裝 Kibana

從 [Kibana 官網](https://www.elastic.co/downloads/kibana) 下載并安裝 Kibana。安裝完成后,可以通過以下命令啟動 Kibana:

```bash
# 啟動 Kibana(假設你已經安裝了它)

./bin/kibana


```

Kibana 默認運行在 `http://localhost:5601`,可以通過瀏覽器訪問 Kibana UI。

#### 3) 安裝 Logstash 或 Filebeat(可選)

你可以選擇使用 **Logstash** 或 **Filebeat** 來將日志從 GoZero 發送到 Elasticsearch。

##### 選擇 1:使用 **Filebeat**

Filebeat 是一個輕量級的日志收集器,適合直接從文件中收集日志并發送到 Elasticsearch。

- 下載并安裝 Filebeat:[Filebeat 官網](https://www.elastic.co/downloads/beats/filebeat)
- 配置 Filebeat(在 `filebeat.yml` 配置文件中):```yaml

filebeat.inputs:- type: logenabled: truepaths:- /path/to/gozero/logs/*.log ?# 這里是 GoZero 日志的存儲路徑output.elasticsearch:hosts: ["http://localhost:9200"]


```

啟動 Filebeat:

```bash

./filebeat -e


```

##### 選擇 2:使用 **Logstash**

Logstash 是一個功能強大的日志處理工具,適合對日志進行更加復雜的處理(如過濾、轉換等)。

- 下載并安裝 Logstash:[Logstash 官網](https://www.elastic.co/downloads/logstash)
- 配置 Logstash(在 `logstash.conf` 配置文件中):```plaintext

input {file {path => "/path/to/gozero/logs/*.log" ?# GoZero 日志路徑start_position => "beginning"}
}filter {# 這里可以進行日志過濾和處理
}output {elasticsearch {hosts => ["http://localhost:9200"]index => "gozero-logs-%{+YYYY.MM.dd}"}
}


```

啟動 Logstash:

```bash

./bin/logstash -f logstash.conf


```

### 2. 配置 GoZero 日志

GoZero 提供了靈活的日志配置,可以直接將日志輸出到文件或日志服務器。你可以配置日志記錄到本地文件,然后通過 **Filebeat** 或 **Logstash** 將日志發送到 Elasticsearch。

#### 配置 GoZero 日志

在 GoZero 中,你可以通過 `logx` 模塊來管理日志。你需要在 GoZero 配置文件中設置日志輸出到文件,然后確保文件的路徑與 Filebeat 或 Logstash 配置匹配。```go

package mainimport ("github.com/tal-tech/go-zero/core/logx""github.com/tal-tech/go-zero/zrpc"
)func main() {// 設置日志配置logx.MustSetup(logx.LogConf{Path: ? ? "./logs", ?// 日志文件路徑Level: ? ?"info", ? ?// 日志級別MaxSize: ?100, ? ? ? // 每個日志文件的最大大小(MB)MaxAge: ? 30, ? ? ? ?// 保留日志的天數MaxBackups: 10, ? ? ?// 保留的備份文件數量Compress: true, ? ? ?// 是否啟用日志壓縮})// 啟動 GoZero RPC 服務server := zrpc.MustNewServer(zrpc.RpcServerConf{ListenOn: ":8888",}, func(s *zrpc.Server) {// 啟動后輸出日志logx.Info("GoZero server started")})defer server.Stop()server.Start()
}


```

- `logx.LogConf` 中配置了日志的路徑、日志級別等。日志會保存在 `./logs` 目錄下。
- 可以根據需要調整 `Path`(日志文件路徑)、`Level`(日志級別)等參數。

### 3. 配置 Elasticsearch 日志映射

為了更好地查詢和展示日志,你可能需要定義一個適合 GoZero 日志的 Elasticsearch **映射(Mapping)**。通過自定義映射,可以指定字段類型、索引策略等。

以下是一個示例映射,可以在 Elasticsearch 中創建索引時使用:

```json

PUT /gozero-logs-2024.12.28
{"mappings": {"properties": {"timestamp": {"type": "date"},"level": {"type": "keyword"},"message": {"type": "text"},"method": {"type": "keyword"},"status": {"type": "keyword"}}}
}


```

### 4. 通過 Kibana 可視化日志

一旦日志被成功推送到 Elasticsearch,您可以使用 Kibana 來查詢和可視化日志。

#### 1) 配置 Kibana 數據源

在 Kibana 中,打開 Web UI,選擇 **Discover** 視圖,并選擇 GoZero 日志索引(例如 `gozero-logs-*`)。

#### 2) 創建儀表板

你可以在 Kibana 中創建儀表板,展示 GoZero 的日志數據。例如,展示按 `level` 分類的日志數量,或按 `method` 和 `status` 分類的日志分布。

#### 3) 設置告警(可選)

Kibana 和 Elasticsearch 支持設置告警,當日志中出現某些異常時,可以觸發通知。

### 5. 實戰總結

集成 GoZero 項目和 ELK 的步驟如下:8f559c868af6479992e6ffeedfb2ceb3.png

1. **安裝并配置 ELK 堆棧**:安裝 Elasticsearch、Kibana、Logstash 或 Filebeat。
2. **配置 GoZero 日志**:在 GoZero 中配置日志輸出到文件,并設置日志格式。
3. **配置 Filebeat 或 Logstash**:選擇一種工具(Filebeat 或 Logstash)將日志從 GoZero 發送到 Elasticsearch。
4. **查詢和可視化日志**:在 Kibana 中創建儀表板,查看 GoZero 的日志數據,并設置告警等。

這種集成方式能夠為你提供強大的日志監控和分析能力,幫助你及時發現應用中的問題,提高開發和運維效率。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64482.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64482.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64482.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索PIL庫:Python圖像處理的強大工具

文章一覽 前言一、PIL圖像處理庫簡介二、基本概念2.1顏色模型2.1.1 RGB 顏色模型2.1.2 CMY色彩空間 2.2 通道2.3 圖像數據2.4 模式 三、用PIL做圖像處理3.1 圖像縮放、翻轉等處理3.1.1 圖像縮放處理3.1.2 圖像旋轉處理(1)PIL 提供的函數:(2&a…

boot工程需求

1、 關閉看門狗、初始化中斷和trap向量表,進行時鐘和外設初始化,讓芯片正常運行起來 2、 提供CAN ETH等用于通訊功能的驅動,能夠接受外部數據的傳輸請求 3、 提供Flash的讀寫與擦除驅動,設置服務來對通訊端接受到的數據更新代…

C#中的類型和函數參數傳遞

1.類型 C#中類型分為兩類:值類型和引用類型 1.值類型 所有值類型繼承自System.ValueType類(這是System.Object的一個子類) 值類型變量是直接存儲數據,值類型變量聲明后,不管是否賦值,編譯器都會為其分配…

android系統查找應用包名以及主activity:

一、查找應用的主activity: pm list packages 發現所有的包 dumpsys package 包名: 獲取所有的包信息,可以所有關鍵詞MAIN來找主activity 也可以通過下面命令找到所有activity,看下面大概率com.android.settings/.Settings為主ac…

微信V3支付報錯 平臺證書及平臺證書序列號

1.平臺證書及平臺證書序列號設置錯誤報錯: 錯誤1: Verify the response’s data with: timestamp1735184656, noncea5806b8cabc923299f8db1a174f3a4d0, signatureFZ5FgD/jtt4J99GKssKWKA/0buBSOAbWcu6H52l2UqqaJKvrsNxvodB569ZFz5G3fbassOQcSh5BFq6hvE…

在Ubuntu下通過Docker部署Mastodon服務器

嘿,朋友們,今天咱們來聊聊如何在Ubuntu上通過Docker部署Mastodon服務器。想要擁有自己的社交媒體平臺?Mastodon就是個不錯的選擇!🌐🚀 Docker與Mastodon簡介 Docker是一個開源的容器化平臺,讓…

Es搭建——單節點——Linux

Es搭建——單節點——Linux 一、安裝 下載安裝包: 官網下載地址:https://www.elastic.co/downloads/elasticsearch 上傳包到linux 切換到安裝目錄下 解壓:tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz 重命名安裝文件夾 mv elastics…

【機器學習】梯度下降

文章目錄 1. 梯度下降概念2. 梯度下降的技巧2.1 動態設置學習率2.2 Adagrad調整梯度2.3 隨機梯度下降(SGD)2.4 特征縮放 3. 梯度下降理論基礎 1. 梯度下降概念 梯度:Loss 對參數在某一點的偏微分,函數沿梯度的方向具有最大的變化…

數據庫在大數據領域的探索與實踐:動態存儲與查詢優化

在大數據時代,數據庫的靈活性與高效性成為數據存儲與分析的重要基石。從關系型數據庫到 NoSQL 數據庫的演進,開發者逐漸可以在結構化與非結構化數據間找到平衡。本文將聚焦大數據場景下的數據庫實踐,尤其是如何動態存儲與查詢復雜數據&#x…

【Python科研數據爬蟲】基于國家標準查詢平臺和能源標準化信息平臺的海上風電相關行業標準查詢信息爬取及處理

基于國家標準查詢平臺和能源標準化信息平臺的海上風電相關行業標準查詢信息爬取及處理 1 背景2 標準檢索平臺2.1 能源標準化信息平臺2.2 全國標準信息公共服務平臺3 標準信息數據的爬取與處理3.1 能源標準化信息平臺的信息爬取3.2 全國標準信息公共服務平臺的信息爬取3.3 標準信…

AWS Certified AI Practitioner 自學考試心得

學習目標: 考取 AWS Certified AI Practitioner 那什么是 AWS Certified AI Practitioner 認證 是基礎級的認證 比較簡單 — 學習內容: 1. AWS網站自學網站 極客時間免費課程:http://gk.link/a/12sJL 配合極客時間課程的章節測試檢驗自…

Ngnix介紹、安裝、實戰及用法!!!

一、Nginx簡介 1、Nginx概述 Nginx (“engine x”) 是一個高性能的 HTTP 和 反向代理服務器,特點是占有內存少,并發能力強,能經受高負載的考驗,有報告表明能支持高達 50,000 個并發連接數 。 2、正向代理 正向代理:如果把局…

05.HTTPS的實現原理-HTTPS的握手流程(TLS1.2)

05.HTTPS的實現原理-HTTPS的握手流程(TLS1.2) 簡介1. TLS握手過程概述2. TLS握手過程細化3. 主密鑰(對稱密鑰)生成過程4. 密碼規范變更 簡介 主要講述了混合加密流程完成后,客戶端和服務器如何共同獲得相同的對稱密鑰…

YOLO11全解析:從原理到實戰,全流程體驗下一代目標檢測

前言 一、模型介紹 二、網絡結構 1.主干網絡(Backbone) 2.頸部網絡(Neck) 3.頭部網絡(Head) 三、算法改進 1.增強的特征提取 2.優化的效率和速度 3.更高的準確性與更少的參數 4.環境適應性強 5.…

C++ 與 Python(靜態類型語言與動態語言)

C 與 Python(靜態類型語言與動態語言) 一、說明 Python和C到底有啥區別?在使用的時候有啥特殊的益處?這種問題的意義在于:如果對語言了解越清楚,越能夠更加大膽地應用哪些極限功能,從而最大限…

Jenkins 構建流水線

在 Linux 系統上安裝 Jenkins 服務,以及配置自動化構建項目 前置準備環境:docker、docker-compose、jdk、maven 一、環境搭建 1. Jenkins 安裝 (1)拉取鏡像 # 安裝鏡像包,默認安裝最新版本 docker pull jenkins/jen…

【Java】面試題 并發安全 (1)

文章目錄 synchronized1. 基本概念與作用2. 使用方式3. 底層原理(基于monitor)4. 面試題回答要點5. 注意事項與進階理解 Java中synchronized鎖相關知識總結Java內存模型(JMM)CAS概述及重要性volatile關鍵字AQS簡介 synchronized …

前端項目 npm報錯解決記錄

1.首先嘗試解決思路 npm報錯就切換yarn , yarn報錯就先切換npm刪除 node_modules 跟 package-lock.json文件重新下載依 2. 報錯信息: Module build failed: Error: Missing binding D:\vue-element-admin\node_modules\node-sass\vendor\win32-x64-8…

深度學習中batch_size

Batch size調整和epoch/iteration的關系 訓練數據集總共有1000個樣本。若batch_size10,那么訓練完全體樣本集需要100次迭代,1次epoch。 訓練樣本10000條,batchsize設置為20,將所有的訓練樣本在同一個模型中訓練5遍,則…

Redis 數據類型全解析:基礎與進階應用場景

前言:Redis 是一個高性能的內存數據庫,支持多種數據類型,能夠高效處理各種場景的數據存儲和操作。 以下是Redis數據類型的數據結構及其應用場景的詳細說明: 基礎數據類型 1. 字符串 (String) 底層數據結構 Simple Dynamic Stri…