Prometheus - 普羅米修斯 - 日誌監控mtail嘗試
Prometheus - 普羅米修斯
文章目錄
計劃 及 參考文章
-
Prometheus 【監控神器普羅米修斯】
-
Prometheus監控報警系統:https://www.cnblogs.com/chenqionghe/p/10494868.html
-
官方文件:https://prometheus.io/docs/introduction/overview/
-
簡書:https://www.jianshu.com/p/93c840025f01
-
Prometheus+ Grafana :https://www.cnblogs.com/sunyllove/p/11212835.html
-
入門教程:https://www.jianshu.com/p/28f71ea99e3a
-
報警外掛:Alertmanager
-
如何將日誌輸入Prometheus?【官方說明】
簡短的回答:不要!請改用ELK堆疊之類的東西。
更長的答案:Prometheus是一個收集和處理指標的系統,而不是事件記錄系統。Raintank部落格文章 Logs and Metrics and Graphs,Oh My! 提供有關日誌和指標之間差異的更多詳細資訊。
-
Pushgateway : https://www.cnblogs.com/shhnwangjian/p/10706660.html
-
mtail : 可以從應用程式日誌中提取指標,並將其匯出到時間序列資料庫或時間序列計算器中,以便配置警報和儀表盤的工具。
-
操作指南:https://www.bookstack.cn/read/prometheus-book/README.md
-
《Prometheus監控實戰》第9章 日誌監控: https://cloud.tencent.com/developer/article/1556769
-
容器領域的十大監控系統對比: https://zhuanlan.zhihu.com/p/57740192
-
介紹
Prometheus 是一個開源的系統監控和警報工具包。非常適合記錄時間序列資料,比如可以記錄機器CPU、Memory的使用情況;也可以在微服務中收集各個維度的資訊。
而,商圈專案那邊,用的確實用這個來收集日誌資料,進行處理的。
感覺與官方的推薦相悖啊
ε=(´ο`*)))唉
關於它的特點就不介紹了,官方有各種好聽的說法,我覺得重點還是在與他是個生態系統。
其本身,就是一個存時間序列的資料集【資料庫】,支援拉取資料,以及擁有外圍元件生態的東東。
簡單說明下特點:
多種圖表和儀表盤,靈活的查詢語言(PromQL),支援push資料到中介軟體(pushgateway)。
Prometheus生態系統由多個元件構成,其中多是可選的,根據具體情況選擇
- Prometheus server - 收集和儲存時間序列資料
- client library - 用於client訪問server/pushgateway
- pushgateway - 對於短暫執行的任務,負責接收和快取時間序列資料,同時也是一個資料來源
- exporter - 各種專用exporter,面向硬體、儲存、資料庫、HTTP服務等
- alertmanager - 處理報警
- Grafana - 度量分析和視覺化工具
- 其他各種支援的工具
官方給的架構:
差不多就是這個樣子了。
說法上,用來監控各個專案服務情況,JVM的使用情況等的效能資料,很是合適的。
安裝Promotheus
為了方便,當然是在docker上搞咯;
先準備個配置:
vim /u01/promotheus/promotheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
然後建立開啟容器:
docker run \
-p 9090:9090 \
-v /u01/promotheus/promotheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
對,這個樣子就可以了。
然後訪問:http://192.168.1.180:9090 ,就可以看到東東了。【當然要翻譯了,英文看不懂 ╮(╯_╰)╭】
exporter 各種匯出器 -> Promotheus
先搞點資料進去看看,會是什麼樣子的。
prometheus官方下載地址:https://prometheus.io/download/
go官方下載地址:https://golang.org/dl/
64位下載包地址(此地址下載比較快):https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
有好多的匯出器,先搞個機器本身資料的試試:node_exporter - 機器指標匯出器;
node_exporter配置參考:
安裝配置:https://www.jianshu.com/p/7bec152d1a1f
資料監控配置:https://www.cnblogs.com/minseo/p/13403478.html 【很實用】
exporter種類參考:https://www.bookstack.cn/read/prometheus-book/exporter-what-is-prometheus-exporter.md完成後,請使用上面這個資料監控配置,查詢資料。語法我還不會,先copy用著吧。
安裝配置node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
tar xvf node_exporter-1.0.1.linux-amd64.tar.gz
[root@localhost node_exporter-1.0.1.linux-amd64]# nohup ./node_exporter
nohup: 忽略輸入並把輸出追加到"nohup.out"
[root@localhost node_exporter-1.0.1.linux-amd64]# ps -ef |grep node
root 15542 15184 0 14:11 pts/0 00:00:00 ./node_exporter
root 15554 15184 0 14:11 pts/0 00:00:00 grep --color=auto node
curl http://192.168.1.180:9100/metrics
...... # 這裡就可以看到一堆的資訊了
配置Promotheus 拉取資料
vim /u01/promotheus/promotheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'linux-180'
static_configs:
- targets: ['192.168.1.180:9100']
labels:
instance: node1
:qw
# 然後去重啟Promotheus ,我就直接docker重啟了
然後再訪問就有資料啦!!!!
Promotheus 服務的東東,先就這樣吧。可以各種操作統計資料,然後懶得試了,以後再研究了。
這裡就玩個表面的東東了先 ┐(゚~゚)┌
安裝Grafana
Grafana官網(https://grafana.com/)
安裝什麼的,檢視官方的就行了,無論在什麼平臺的好像都有詳細的文件的。o( ̄▽ ̄)d
docker run -d --name grafana -p 3000:3000 grafana/grafana
# http://192.168.1.180:3000/ 預設 admin:admin
然後參考文章:https://www.cnblogs.com/imyalost/p/9873641.html 進行玩耍。
或者,像我一樣隨便玩 (~ ̄▽ ̄)~
建立好資料來源,建立儀表盤,然後把在上面用的查詢語句,copy進去就可以了:
Grafana-的好用處就是,花裡胡哨。可以弄出來灰常好看很有噱頭的儀表盤主頁 罒ω罒
花裡胡哨的儀表盤 罒ω罒
儀表盤匯入教程參考:https://www.cnblogs.com/imyalost/p/9873641.html
- 資料庫:https://github.com/percona/grafana-dashboards
- 官方就有很多的儀表盤:BashBoard地址:BashBoard
- 只要一個id就可以完成儀表盤匯入了 罒ω罒
- 而且足夠的豐富,足夠的花裡胡哨。(~ ̄▽ ̄)~
- Node Exporter Full:https://github.com/rfrail3/grafana-dashboards/blob/master/prometheus/node-exporter-full.json
這才是花裡胡哨:
日誌監控 -> Promotheus
參考文章:https://cloud.tencent.com/developer/article/1556769
可選方案:
- grok_exporter(https://github.com/fstab/grok_exporter)
- mtail的Google實用程式(https://github.com/google/mtail)
- 配置:https://blog.csdn.net/bluuusea/article/details/105508897
選用mtail,官方說明就是:從應用程式日誌中提取白盒監視資料以收集到時間序列資料庫中;【完全符合的】
mtail -測試
安裝配置mtail
wget https://github.com/google/mtail/releases/download/v3.0.0-rc38/mtail_v3.0.0-rc38_linux_amd64
chmod 777 mtail_v3.0.0-rc38_linux_amd64
mv mtail_v3.0.0-rc38_linux_amd64 mtail
# sudo cp mtail /usr/local/bin 這個我就不操作到系統使用者下了
./mtail --version
mtail version v3.0.0-rc38 git revision 0601c73197c5e314dcf3e27218de8f8ad5a83691 go version go1.15.2 go arch amd64 go os linux
# 測試
touch line_count.mtail
vim line_count.mtail
# 去這裡找一個合適的配置 https://github.com/google/mtail/tree/master/examples
./mtail -logtostderr --progs /u01/mtail/line_count.mtail --logs '/u01/happyPay/admin/logs/admin-log/*.log'
# nohup ./mtail -port 3903 -logtostderr -progs /u01/mtail/line_count.mtail -logs '/u01/happyPay/admin/logs/admin-log/*.log' >/dev/null 2>&1 &
# 訪問http://192.168.1.194:3903/ 就可以看到資訊了
雖然看不懂,但是感覺有點內容了。
配置普羅米修斯
- job_name: 'mtail-194'
static_configs:
- targets: ['192.168.1.194:3903']
labels:
instance: log-dev
重啟,載入配置之後,可以看到抓取點已經配置進去了。
雖然這裡已經有資料了,但是這些資料不能用啊,都是些沒什麼用的量,比如日誌檔案數量啥的。
我麼真正想要的是:分析日誌的資料,各個介面等的東西。
這結果算是成功,後續還要自己寫分析日誌的配置。
調整mtail配置-日誌分析
由於各個專案的日誌格式不同,這裡如有想做日誌分析,辣麼在mtial這裡就需要用正規表示式進行建立對應的指標了。
可以分組的,依據各個內容引數。【如果日誌格式確定的話,多專案也可同時使用】
栗子-統計報錯原因
mtail配置檔案:
counter error_type by type
/^.+Exception:(?P<type>.*)/ {
error_type[$type]++
}
結果資料:
error_type{prog="line_count.mtail",type=" 使用者名稱或密碼錯誤"} 2
error_type{prog="line_count.mtail",type=" 使用者名稱或密碼錯誤] with root cause"} 1
恩,差不多就這樣了,學不動了 ε=(´ο`)))唉*
日誌監控小結
這個日誌監控,如果是專案日誌還是用ELK的好啊!
中介軟體的日誌:比如nginx,是可以使用這個的,畢竟有裝本的exporter.【日誌格式一般是標準的】一定要做的話,需要在mtail收集的地方,就要配置各種的指標了,對運維還是有點要求和工作量的。
對比於ELK的全量檔案匯入,進行全文檢索,進行後續分析。這個的動態可配置性就差了很多了。
小結
Prometheus這一套監控系統,在對硬體以及中介軟體的監控上灰常的強大,且配置使用成本低。
【硬體:本身linux機子;中介軟體:資料庫,nginx等】
需要使用各種官方提供的匯出器【exporter】+ Grafana的官方儀表盤,這種組合很炫,還很輕鬆。
如果是專案日誌監控,使用起來需要在收集器進行指標分析等的了。【專案日誌標準話是在哪都推薦的】
這樣,在Grafana才可以進行再次分析展示出來。
所以日誌監控,還是建議使用ELK啊。。。ε=(´ο`*)))唉 雖然學習成本比較高,但是運維輕鬆啊!【使用交給專案人員自己查詢即可】
其他
至於,Prometheus還有其他的元件,比如重要的報警外掛:Alertmanager 等,已經學不動了。
以後有機會再研究了。。。。。。。。
小杭 2020-12 (((┏(; ̄▽ ̄)┛裝完逼就跑
相關文章
- 監控神器普羅米修斯Prometheus安裝配置Prometheus
- Prometheus(普羅米修斯)Prometheus
- Grafana、Prometheus、mtail-日誌監控GrafanaPrometheusAI
- 普羅米修斯 PromisePromise
- centos安裝普羅米修斯和GrafanaCentOSGrafana
- 普羅米修斯告警折騰記錄
- 一步步教你用Prometheus搭建實時監控系統系列(一)——上帝之火,普羅米修斯的崛起Prometheus
- Centos7.9安裝普羅米修斯+grafanaCentOSGrafana
- Java微服務監控及與普羅米整合Java微服務
- OPPO小布助手正在改變普羅米修斯的世界
- 記-Windows環境下Prometheus+alertmanager+windows_exporter+mtail監控部署WindowsPrometheusExportAI
- 黑盒監控、日誌監控
- 網龍子公司普羅米休斯推出ActivPanel LX
- Mysql事件監控日誌MySql事件
- 小程式日誌監控工具
- 03-Loki 日誌監控Loki
- prometheus JVM監控PrometheusJVM
- Prometheus監控mongoPrometheusGo
- Prometheus 監控arangodbPrometheusGo
- 6.prometheus監控--監控dockerPrometheusDocker
- FBEC2023 | 普羅米修斯CEO張煜:數字生命——大模型可驅動的體積影片大模型
- ELK監控nginx日誌總結Nginx
- 部署Sentry日誌監控系統
- SpringBoot使用prometheus監控Spring BootPrometheus
- prometheus 監控學習Prometheus
- prometheus監控+alertmanager告警Prometheus
- 05 . Prometheus監控NginxPrometheusNginx
- 使用Prometheus監控FlinkPrometheus
- 11.prometheus監控之黑盒(blackbox)監控Prometheus
- 前端異常日誌監控 – 使用Sentry前端
- mongodb profiling慢請求監控日誌MongoDB
- Zabbix如何監控Oracle的告警日誌Oracle
- Prometheus監控神器-Rules篇Prometheus
- prometheus+grafana 監控nginxPrometheusGrafanaNginx
- prometheus監控04-AlertManagerPrometheus
- Prometheus監控之Blackbox ExporterPrometheusExport
- Prometheus MySQL監控+grafana展示PrometheusMySqlGrafana
- 跟我一起學docker(15)--監控日誌和日誌管理Docker