go語言日志分析工具 go 日志收集

集中式日志分析平臺 - ELK Stack - Filebeat 壓測

任何一款采集 agent 進行公司內全面推廣前都需要進行性能測試以及資源限制功能測試,以保證:

成都創(chuàng)新互聯(lián)專注于忻府企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設公司,商城開發(fā)。忻府網(wǎng)站建設公司,為忻府等地區(qū)提供建站服務。全流程按需網(wǎng)站開發(fā),專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

對于 Filebeat 這款號稱 golang 編寫,性能強于 logstahs-forwarder 的采集 agent,我們也需要這樣進行嚴謹對待。

硬件選擇虛擬機,6cores + 16GB Mem + 175GB SSD + 1000Mbps 帶寬;

Filebeat 配置,輸出到 console:

Filebeat 配置,輸出到 Kafka:

我們開啟 Filebeat 的 6060 端口,并使用 python 腳本進行指標采集。

expvar_rates.py ,每秒統(tǒng)計出 Filebeat 指標,主要看:

Step1. 啟動 Filebeat (172.16.134.8)

Step2. 啟動統(tǒng)計腳本

Step3. 啟動 tsar

Step4. 寫入壓測數(shù)據(jù)(6個進程寫入,6千萬條日志)

在 6 進程數(shù)據(jù)寫入日志文件時,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 0.8 cores。

在 6 進程數(shù)據(jù)寫入日志文件后,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 1.6 cores。

小結:

測試步驟和上述一致,區(qū)別在于配置文件需要輸出到 Kafka。

在 6 進程數(shù)據(jù)寫入日志文件時,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 0.7~0.8 cores。

在 6 進程數(shù)據(jù)寫入日志文件后,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 2.0 cores。

小結:

測試步驟和上述一致,區(qū)別在于配置文件需要輸出到 Kafka。

和上述步驟不同的是,啟動 Filebeat 時需要 systemd 限制 CPU、句柄數(shù),根據(jù)之前的理論,句柄數(shù)限制在 100 已經(jīng)非常夠用,CPU 限制在 1 core。

修改 /usr/lib/systemd/system/filebeat.service :

執(zhí)行 reload:

對 CPU 進行限制:

確認是否限制成功:

有如下輸出表示OK:

在 6 進程數(shù)據(jù)寫入日志文件時,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 0.7 ~ 0.8 cores。

在 6 進程數(shù)據(jù)寫入日志文件后,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 1.0 cores,限制生效。

小結:

在 6 進程數(shù)據(jù)寫入日志文件時,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 0.75 ~ 0.9 cores。

在 6 進程數(shù)據(jù)寫入日志文件后,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 1.0 cores,限制生效。

小結:

在 6 進程數(shù)據(jù)寫入日志文件時,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 0.7 ~ 0.75 cores。

在 6 進程數(shù)據(jù)寫入日志文件后,我們在開啟 python 統(tǒng)計腳本的窗口得到如下穩(wěn)定的統(tǒng)計數(shù)據(jù):

我們在 tsar 看到的統(tǒng)計數(shù)據(jù)為:

我們在 top 中可以看到 Filebeat 大致占據(jù)了 0.9 cores,未達到限制。

小結:

A. FB 全力采集 247B 數(shù)據(jù)(真實環(huán)境類似日志長度),速率為 ~ 40K/s,CPU 開銷為 2 cores;

B. FB 在 CPU 限制 1 cores 情況下,采集 247B 數(shù)據(jù)速率為 ~ 20K/s,可以認為單核采集速率為 ~ 20K/s/core;

C. 日志單行數(shù)據(jù)越大,吞吐越小,5KB 每行已經(jīng)非常夸張,即使如此,沒有壓縮的情況下帶寬消耗 35MBps,gzip 壓縮率一般為 0.3~0.4,占用帶寬為 10.5~14MBps,對于千兆網(wǎng)卡來說壓力較??;

nginx 日志分析goaccesss怎么使用

對于nginx日志分析,有很多工具,衡量好壞的標準大概就是三快:安裝快,解析快,上手快。滿足這三點的goaccess確實是居家必備良藥。

話說這個標題其實有點委屈GoAccess了,它是一個日志分析工具,并不只是為nginx使用的。你也可以用它來分析apache,IIS的日志,甚至你自己寫的web服務,當然前提是你需要定義好解析的日志格式。誠如見到一個美女,你會一眼喜歡上它的幾個功能有:

1 解析速度快

2 使用簡單

3 能生成html,json,csv

安裝GoAccess

如果你是centos,使用yum:

yum install goaccess

如果你的yum找不到goaccess,就先安裝epel

wget

wget

sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

GoAccess有兩種使用方法,一種是直接在控制臺顯示和操作。

當你要立馬分析出今天早上10點到12點的IP訪問情況的時候,直接在控制臺敲命令是最快的。

另外一種就是生成html文件或者數(shù)據(jù)文件。

如果你希望每天管理的服務器集群能給你發(fā)送一個昨天訪問日志的情況,這個就是不二選擇了。

filebeat 什么語言開發(fā)的

1 寫代碼。這是最基礎的一步,即實現(xiàn)C語言的源文件(.c,必需),和可能的頭文件(.h,非必需)。2 編譯。將編寫好的代碼,通過編譯工具,轉換為目標文件。此步中,會對文件內部及包含的頭文件進行語法語義的分析檢查。如果出錯,則必須返回到1步對代碼進行修改,直到?jīng)]有錯誤為止。3 鏈接。將目標文件鏈接成可執(zhí)行文件。此步會對文件直接的關聯(lián)進行檢查。如果出錯需要返回到1修改代碼。直到?jīng)]有錯誤。4 運行。這個是最后一步,也是C語言的最終目的。在運行結果與期望不符時,需要檢查原因,修改代碼,重新執(zhí)行1,2,3直到程序沒有問題。

國內重要的 Go 語言項目:TiDB 3.0 GA,穩(wěn)定性和性能大幅提升

TiDB 是 PingCAP 自主研發(fā)的開源分布式關系型數(shù)據(jù)庫,具備商業(yè)級數(shù)據(jù)庫的數(shù)據(jù)可靠性,可用性,安全性等特性,支持在線彈性水平擴展,兼容 MySQL 協(xié)議及生態(tài),創(chuàng)新性實現(xiàn) OLTP 及 OLAP 融合。

TiDB 3.0 版本顯著提升了大規(guī)模集群的穩(wěn)定性,集群支持 150+ 存儲節(jié)點,300+TB 存儲容量長期穩(wěn)定運行。易用性方面引入大量降低用戶運維成本的優(yōu)化,包括引入 Information_Schema 中的多個實用系統(tǒng)視圖、EXPLAIN ANALYZE、SQL Trace 等。在性能方面,特別是 OLTP 性能方面,3.0 比 2.1 也有大幅提升,其中 TPC-C 性能提升約 4.5 倍,Sysbench 性能提升約 1.5 倍,OLAP 方面,TPC-H 50G Q15 因實現(xiàn) View 可以執(zhí)行,至此 TPC-H 22 個 Query 均可正常運行。新功能方面增加了窗口函數(shù)、視圖(實驗特性)、分區(qū)表、插件系統(tǒng)、悲觀鎖(實驗特性)。

截止本文發(fā)稿時 TiDB 已在 500+ 用戶的生產(chǎn)環(huán)境中長期穩(wěn)定運行,涵蓋金融、保險、制造,互聯(lián)網(wǎng), 游戲 等領域,涉及交易、數(shù)據(jù)中臺、 歷史 庫等多個業(yè)務場景。不同業(yè)務場景對關系型數(shù)據(jù)庫的訴求可用 “百花齊放”來形容,但對關系數(shù)據(jù)庫最根本的訴求未發(fā)生任何變化,如數(shù)據(jù)可靠性,系統(tǒng)穩(wěn)定性,可擴展性,安全性,易用性等。請跟隨我們的腳步梳理 TiDB 3.0 有什么樣的驚喜。

3.0 與 2.1 版本相比,顯著提升了大規(guī)模集群的穩(wěn)定性,支持單集群 150+ 存儲節(jié)點,300+TB 存儲容量長期穩(wěn)定運行,主要的優(yōu)化點如下:

1. 優(yōu)化 Raft 副本之間的心跳機制,按照 Region 的活躍程度調整心跳頻率,減小冷數(shù)據(jù)對集群的負擔。

2. 熱點調度策略支持更多參數(shù)配置,采用更高優(yōu)先級,并提升熱點調度的準確性。

3. 優(yōu)化 PD 調度流程,提供調度限流機制,提升系統(tǒng)穩(wěn)定性。

4. 新增分布式 GC 功能,提升 GC 的性能,降低大集群 GC 時間,提升系統(tǒng)穩(wěn)定性。

眾所周知,數(shù)據(jù)庫查詢計劃的穩(wěn)定性對業(yè)務至關重要,TiDB 3.0 版本采用多種優(yōu)化手段提升查詢計劃的穩(wěn)定性,如下:

1. 新增 Fast Analyze 功能,提升收集統(tǒng)計信息的速度,降低集群資源的消耗及對業(yè)務的影響。

2. 新增 Incremental Analyze 功能,提升收集單調遞增的索引統(tǒng)計信息的速度,降低集群資源的消耗及對業(yè)務的影響。

3. 在 CM-Sketch 中新增 TopN 的統(tǒng)計信息,緩解 CM-Sketch 哈希沖突導致估算偏大,提升代價估算的準確性,提升查詢計劃的穩(wěn)定性。

4. 引入 Skyline Pruning 框架,利用規(guī)則防止查詢計劃過度依賴統(tǒng)計信息,緩解因統(tǒng)計信息滯后導致選擇的查詢計劃不是最優(yōu)的情況,提升查詢計劃的穩(wěn)定性。

5. 新增 SQL Plan Management 功能,支持在查詢計劃不準確時手動綁定查詢計劃,提升查詢計劃的穩(wěn)定性。

1. OLTP

3.0 與 2.1 版本相比 Sysbench 的 Point Select,Update Index,Update Non-Index 均提升約 1.5 倍,TPC-C 性能提升約 4.5 倍。主要的優(yōu)化點如下:

1. TiDB 持續(xù)優(yōu)化 SQL 執(zhí)行器,包括:優(yōu)化 NOT EXISTS 子查詢轉化為 Anti Semi Join,優(yōu)化多表 Join 時 Join 順序選擇等。

2. 優(yōu)化 Index Join 邏輯,擴大 Index Join 算子的適用場景并提升代價估算的準確性。

3. TiKV 批量接收和發(fā)送消息功能,提升寫入密集的場景的 TPS 約 7%,讀密集的場景提升約 30%。

4. TiKV 優(yōu)化內存管理,減少 Iterator Key Bound Option 的內存分配和拷貝,多個 Column Families 共享 block cache 提升 cache 命中率等手段大幅提升性能。

5. 引入 Titan 存儲引擎插件,提升 Value 值超過 1KB 時性能,緩解 RocksDB 寫放大問題,減少磁盤 IO 的占用。

6. TiKV 新增多線程 Raftstore 和 Apply 功能,提升單節(jié)點內可擴展性,進而提升單節(jié)點內并發(fā)處理能力和資源利用率,降低延時,大幅提升集群寫入能力。

TiDB Lightning 性能與 2019 年年初相比提升 3 倍,從 100GB/h 提升到 300GB/h,即 28MB/s 提升到 85MB/s,優(yōu)化點,如下:

1. 提升 SQL 轉化成 KV Pairs 的性能,減少不必要的開銷。

2. 提升單表導入性能,單表支持批量導入。

3. 提升 TiKV-Importer 導入數(shù)據(jù)性能,支持將數(shù)據(jù)和索引分別導入。

4. TiKV-Importer 支持上傳 SST 文件限速功能。

RBAC(Role-Based Access Control,基于角色的權限訪問控制) 是商業(yè)系統(tǒng)中最常見的權限管理技術之一,通過 RBAC 思想可以構建最簡單“用戶-角色-權限”的訪問權限控制模型。RBAC 中用戶與角色關聯(lián),權限與角色關聯(lián),角色與權限之間一般是多對多的關系,用戶通過成為什么樣的角色獲取該角色所擁有的權限,達到簡化權限管理的目的,通過此版本的迭代 RBAC 功能開發(fā)完成。

IP 白名單功能(企業(yè)版特性) :TiDB 提供基于 IP 白名單實現(xiàn)網(wǎng)絡安全訪問控制,用戶可根據(jù)實際情況配置相關的訪問策略。

Audit log 功能(企業(yè)版特性) :Audit log 記錄用戶對數(shù)據(jù)庫所執(zhí)行的操作,通過記錄 Audit log 用戶可以對數(shù)據(jù)庫進行故障分析,行為分析,安全審計等,幫助用戶獲取數(shù)據(jù)執(zhí)行情況。

加密存儲(企業(yè)版特性) :TiDB 利用 RocksDB 自身加密功能,實現(xiàn)加密存儲的功能,保證所有寫入到磁盤的數(shù)據(jù)都經(jīng)過加密,降低數(shù)據(jù)泄露的風險。

完善權限語句的權限檢查 ,新增 ANALYZE,USE,SET GLOBAL,SHOW PROCESSLIST 語句權限檢查。

1. 新增 SQL 方式查詢慢查詢,豐富 TiDB 慢查詢日志內容,如:Coprocessor 任務數(shù),平均/最長/90% 執(zhí)行/等待時間,執(zhí)行/等待時間最長的 TiKV 地址,簡化慢查詢定位工作,提高排查慢查詢問題效率,提升產(chǎn)品易用性。

2. 新增系統(tǒng)配置項合法性檢查,優(yōu)化系統(tǒng)監(jiān)控項等,提升產(chǎn)品易用性。

3. 新增對 TableReader、IndexReader 和 IndexLookupReader 算子內存使用情況統(tǒng)計信息,提高 Query 內存使用統(tǒng)計的準確性,提升處理內存消耗較大語句的效率。

4. 制定日志規(guī)范,重構日志系統(tǒng),統(tǒng)一日志格式,方便用戶理解日志內容,有助于通過工具對日志進行定量分析。

5. 新增 EXPLAIN ANALYZE 功能,提升SQL 調優(yōu)的易用性。

6. 新增 SQL 語句 Trace 功能,方便排查問題。

7. 新增通過 unix_socket 方式連接數(shù)據(jù)庫。

8. 新增快速恢復被刪除表功能,當誤刪除數(shù)據(jù)時可通過此功能快速恢復數(shù)據(jù)。

TiDB 3.0 新增 TiFlash 組件,解決復雜分析及 HTAP 場景。TiFlash 是列式存儲系統(tǒng),與行存儲系統(tǒng)實時同步,具備低延時,高性能,事務一致性讀等特性。 通過 Raft 協(xié)議從 TiKV 中實時同步行存數(shù)據(jù)并轉化成列存儲格式持久化到一組獨立的節(jié)點,解決行列混合存儲以及資源隔離性問題。TiFlash 可用作行存儲系統(tǒng)(TiKV)實時鏡像,實時鏡像可獨立于行存儲系統(tǒng),將行存儲及列存儲從物理隔離開,提供完善的資源隔離方案,HTAP 場景最優(yōu)推薦方案;亦可用作行存儲表的索引,配合行存儲對外提供智能的 OLAP 服務,提升約 10 倍復雜的混合查詢的性能。

TiFlash 目前處于 Beta 階段,計劃 2019 年 12 月 31 日之前 GA,歡迎大家申請試用。

未來我們會繼續(xù)投入到系統(tǒng)穩(wěn)定性,易用性,性能,彈性擴展方面,向用戶提供極致的彈性伸縮能力,極致的性能體驗,極致的用戶體驗。

穩(wěn)定性方面 V4.0 版本將繼續(xù)完善 V3.0 未 GA 的重大特性,例如:悲觀事務模型,View,Table Partition,Titan 行存儲引擎,TiFlash 列存儲引擎;引入近似物理備份恢復解決分布數(shù)據(jù)庫備份恢復難題;優(yōu)化 PD 調度功能等。

性能方面 V4.0 版本將繼續(xù)優(yōu)化事務處理流程,減少事務資源消耗,提升性能,例如:1PC,省去獲取 commit ts 操作等。

彈性擴展方面,PD 將提供彈性擴展所需的元信息供外部系統(tǒng)調用,外部系統(tǒng)可根據(jù)元信息及負載情況動態(tài)伸縮集群規(guī)模,達成節(jié)省成本的目標。

我們相信戰(zhàn)勝“未知”最好的武器就是社區(qū)的力量,基礎軟件需要堅定地走開源路線。截止發(fā)稿我們已經(jīng)完成 41 篇源碼閱讀文章。TiDB 開源社區(qū)總計 265 位 Contributor,6 位 Committer,在這里我們對社區(qū)貢獻者表示由衷的感謝,希望更多志同道合的人能加入進來,也希望大家在 TiDB 這個開源社區(qū)能夠有所收獲。

TiDB 3.0 GA Release Notes:

goaccess可以分析錯誤日志嗎

今天安裝了一下goaccess 測試了一下,把過程寫下來,大家有需要的可以看看.

GoAccess主頁

安裝方法

1、安裝GoAccess需要一些系統(tǒng)支持庫

yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel

如果yum庫找不到Geo-IP 那么需要單獨安裝了.

# cd /usr/local/src

# wget wget

# wget

# wget

安裝GeoIP庫

# tar xzvf GeoIP-1.4.6.tar.gz

# cd GeoIP-1.4.6

# ./configure make make install

# mv GeoIP.dat.gz /usr/local/share/GeoIP/

安裝goaccess

# tar xzvf goaccess-0.5.tar.gz

# cd goaccess-0.5

# ./configure --enable-geoip --enable-utf8 make make install

啟動參數(shù)介紹:

-b 流量消耗統(tǒng)計,如果想要提高解析速度,不要開啟這個選項。缺省值為不開啟此選項

-f 日志文件路徑。

-s HTTP 狀態(tài)碼報告,為了能夠更好的解析日志,選項被默認關閉。

-e 指定IP地址的訪問統(tǒng)計。

-a 通過代理的請求統(tǒng)計。

菜單介紹

F1 幫助菜單

F5 刷新

q 退出當前口窗、菜單、或是當前查看的選項

o 打開當前的選項、菜單

c 改變窗口配色(目前只有兩種 默認和綠色)

SHIFT + TAB 從當前選定模塊向后切換

RIGHT 打開當前選中模塊,查看詳細信息

s 通過日期排序,只會在訪問請求模塊起作用

S 通過點擊次數(shù)排序,只會在訪問請求模塊起作用

/ 查看詳細信息的窗口進行搜索

n 通過/進行查找后,查找下個匹配的內容的位置,如果沒有則在窗口底部顯示“search hit BOTTOM”

t 在查看詳細信息窗口,移動指針到最頂部

b 在查看詳細信息窗口,移動指針到最底部

最簡單、快速的使用方式

goaccess -f access.log

產(chǎn)生完整、全面統(tǒng)計數(shù)據(jù)的使用方式

goaccess -f access.log -a -s -b

用壓縮包直接分析

zcat access-2012-10-10.log.tar.gz | goaccess

就介紹到這吧,具體的用法大家自己在去摸索吧.

分享標題:go語言日志分析工具 go 日志收集
文章網(wǎng)址:http://muchs.cn/article16/hjcedg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、服務器托管、網(wǎng)站制作手機網(wǎng)站建設、網(wǎng)站建設、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管