mongo日誌視覺化

2022-06-22 22:36:16 字數 4111 閱讀 5525

原始mongod.log格式:

2020-11-26t21:33:45.896+0800 i  network  [listener] connection accepted from 10.10.6.192:52138 #1663452 (121 connections now open)

2020-11-26t21:33:45.896+0800 i network [conn1663452] received client metadata from 10.10.6.192:52138 conn1663452: , os: , platform: ".net core 3.1.4" }

2020-11-26t21:33:45.910+0800 i access [conn1663452] successfully authenticated as principal push on push from client 10.10.6.192:52138

2020-11-26t21:33:46.325+0800 i network [listener] connection accepted from 10.10.3.144:50170 #1663453 (122 connections now open)

2020-11-26t21:33:46.325+0800 i network [conn1663453] received client metadata from 10.10.3.144:50170 conn1663453: , os: , platform: "cpython 3.7.3.final.0" }

2020-11-26t21:33:46.326+0800 i network [listener] connection accepted from 10.10.3.144:50172 #1663454 (123 connections now open)

2020-11-26t21:33:46.326+0800 i network [conn1663454] received client metadata from 10.10.3.144:50172 conn1663454: , os: , platform: "cpython 3.7.3.final.0" }

2020-11-26t21:33:46.339+0800 i access [conn1663454] successfully authenticated as principal crawl on crawl from client 10.10.3.144:50172

2020-11-26t21:33:46.888+0800 i network [conn1663454] end connection 10.10.3.144:50172 (122 connections now open)

2020-11-26t21:33:46.888+0800 i network [conn1663453] end connection 10.10.3.144:50170 (121 connections now open

這種格式非常不便於閱讀,於是各種找尋mongo日誌視覺化工具,發現乙個mtools好工具,能夠格式化mongo日誌,並且可以直接輸出為json格式,於是學習了一下簡單的吧日誌傳到elk裡面展示。

(1)首先寫乙個簡單的指令碼:

#!/usr/bin/env bash

#取最近1min 執行耗時超過200ms慢日誌

start_time=`date -d "1 min ago" "+%b %e %r"`

然後加入crontab,每分鐘執行一次,取最近一分鐘的日誌新產生的日誌,這樣mongod.log就可以實時json化為mongo.json

# * * * * *

#min hour day month day_of_week

#* * * * * script -c "/backup_local/dba/scripts/mongo_mfilter.sh >>/tmp/crontab.log

檢查日誌輸出已經沒問題,然後開始接入elk,我這裡直接用阿里雲的日誌服務。

(2)安裝配置阿里雲的logstail,並且接入json檔案,接入以後的顯示效果為:

看起來還是不夠友好,然後再用json函式格式化一下,取關鍵資訊:

*|select replace(substr(datetime,1,19),'t',' ') as datetime,

duration,operation,thread,namespace,concat(json_format(json_array_get(split_tokens,5)),

json_format(json_array_get(split_tokens,6)),

json_format(json_array_get(split_tokens,7)),

json_format(json_array_get(split_tokens,8)),

json_format(json_array_get(split_tokens,9)),

json_format(json_array_get(split_tokens,10)),

json_format(json_array_get(split_tokens,11)),

json_format(json_array_get(split_tokens,12)),

json_format(json_array_get(split_tokens,13)),

json_format(json_array_get(split_tokens,14)),

json_format(json_array_get(split_tokens,15)),

json_format(json_array_get(split_tokens,16)),

json_format(json_array_get(split_tokens,17)),

json_format(json_array_get(split_tokens,18)),

json_format(json_array_get(split_tokens,19)),

json_format(json_array_get(split_tokens,20)),

json_format(json_array_get(split_tokens,21)),

json_format(json_array_get(split_tokens,22)),

json_format(json_array_get(split_tokens,23)),

json_format(json_array_get(split_tokens,24)),

json_format(json_array_get(split_tokens,25)),

json_format(json_array_get(split_tokens,26)),

json_format(json_array_get(split_tokens,27)),

json_format(json_array_get(split_tokens,28)),

json_format(json_array_get(split_tokens,29)),

json_format(json_array_get(split_tokens,30)),

json_format(json_array_get(split_tokens,31)),

json_format(json_array_get(split_tokens,32)),

json_format(json_array_get(split_tokens,33)),

json_format(json_array_get(split_tokens,34)),

json_format(json_array_get(split_tokens,35))) as query_sql where duration>200

這個是日誌服務sql語法,最終效果為:

最後再利用日誌服務自帶的告警功能配好webhook釘釘告警,簡單的mongo日誌視覺化就算是完成了。

資料視覺化 什麼是資料視覺化

資料對應的英文單詞是data,從資訊獲取的角度看,資料是對目標觀察和記錄的結果,是現實世界中的時間 地點 事件 其他物件或概念的描述。不同學者對資料的作用也給出不同的定義,大致分為以下3類 視覺化對應的兩個英文單詞 visualize和visualization。visualize是動詞,描述 生成...

GoAccess 視覺化 Web 日誌監控工具使用

軟體簡介 goaccess 是乙個開源的實時網路日誌分析器和互動式檢視器,可以在 nix 系統或通過瀏覽器的終端中執行。它為需要動態可視伺服器報告的系統管理員提供快速且有價值的 http 統計資訊。特性使用 c 語言編寫,快速 實時,毫秒 秒級的更新 只使用 ncurses 作為依賴 支援幾乎所有的...

視覺化建模

中科永聯高階技術培訓中心 www.itisedu.com 視覺化建模 visual modeling 是利用圍繞現實想法組織模型的一種思考問題的方法。模型對於了解問題 與專案相關的每個人 客戶 行業專家 分析師 設計者等 溝通 模仿企業流程 準備文件 設計程式和資料庫來說都是有用的。建模促進了對需求...