promethues是一套開(kāi)源的系統(tǒng)監(jiān)控報(bào)警框架。
成都創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)與策劃設(shè)計(jì),北流網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:北流等地區(qū)。北流做網(wǎng)站價(jià)格咨詢(xún):028-86922220? Prometheus 所有采集的監(jiān)控?cái)?shù)據(jù)均以指標(biāo)(metric)的形式保存在內(nèi)置的時(shí)間序列數(shù)據(jù)庫(kù)當(dāng)中(TSDB):屬于同一指標(biāo)名稱(chēng),同一標(biāo)簽集合的、有時(shí)間戳標(biāo)記的數(shù)據(jù)流。除了存儲(chǔ)的時(shí)間序列,Prometheus 還可以根據(jù)查詢(xún)請(qǐng)求產(chǎn)生臨時(shí)的、衍生的時(shí)間序列作為返回結(jié)果。
? 特點(diǎn):
prometheus組成和架構(gòu):
基本工作原理
基本概念:
數(shù)據(jù)模型:prometheus中存儲(chǔ)的數(shù)據(jù)為時(shí)間序列,是由Metric的名字和一系列的標(biāo)簽(鍵值對(duì))唯一標(biāo)識(shí)的,不同的標(biāo)簽代表不同的時(shí)間序列。
? 樣本:實(shí)際時(shí)間序列,每個(gè)序列包括一個(gè)float64的值和一個(gè)毫秒級(jí)的時(shí)間戳。(指標(biāo)+時(shí)間戳+樣本值)
? metric名字: 具有語(yǔ)義,表示功能:例如:http_requeststotal, 表示 http 請(qǐng)求的總數(shù)。其中,metric 名字由 ASCII 字符,數(shù)字,下劃線(xiàn),以及冒號(hào)組成,且必須滿(mǎn)足正則表達(dá)式 [a-zA-Z:][a-zA-Z0-9_:]*。
? 標(biāo)簽:使一個(gè)時(shí)間序列有不同未讀的識(shí)別。例如 http_requeststotal{method="Get"} 表示所有 http 請(qǐng)求中的 Get 請(qǐng)求。當(dāng) method="post" 時(shí),則為新的一個(gè) metric。標(biāo)簽中的鍵由 ASCII 字符,數(shù)字,以及下劃線(xiàn)組成,且必須滿(mǎn)足正則表達(dá)式 [a-zA-Z:][a-zA-Z0-9_:]*。
? 格式:<metric name>{<label name>=<label value>, …},例如:http_requests_total{method="POST",endpoint="/api/tracks"}。
Metric類(lèi)型
counter: 累加性metirc。
Gauge:可增減性metric
Histogram:樹(shù)狀圖
summary: 匯總
數(shù)據(jù)類(lèi)型
瞬時(shí)向量(instant vector):一組時(shí)間序列,每個(gè)時(shí)間序列包含單個(gè)樣本。
區(qū)間向量(range vector):一組時(shí)間序列,每個(gè)時(shí)間序列包含一段時(shí)間范圍內(nèi)的樣本數(shù)據(jù)。
標(biāo)量(scalar): 一個(gè)浮點(diǎn)型數(shù)據(jù)值。
字符串(string): 一個(gè)簡(jiǎn)單的字符串值。
時(shí)間序列過(guò)濾器
瞬時(shí)向量過(guò)濾器:
eg: http_requests_total ,通過(guò){}里附件一組標(biāo)簽過(guò)濾時(shí)間序列。
標(biāo)簽匹配云算符:
= : 選擇與提供的字符串完全相同的標(biāo)簽。
!= : 選擇與提供的字符串不相同的標(biāo)簽。
=~ : 選擇正則表達(dá)式與提供的字符串(或子字符串)相匹配的標(biāo)簽。
!~ : 選擇正則表達(dá)式與提供的字符串(或子字符串)不匹配的標(biāo)簽。
區(qū)間向量過(guò)濾器:
eg:http_requests_total{job="prometheus"}[5m],通過(guò)[]指定區(qū)間提取數(shù)值。
時(shí)間單位:
s - 秒
m - 分鐘
h - 小時(shí)
d - 天
w - 周
y - 年
時(shí)間位移操作:
在瞬時(shí)向量表達(dá)式或者區(qū)間向量表達(dá)式中,都是以當(dāng)前時(shí)間為基準(zhǔn).
eg:http_requests_total offset 5m "offset 關(guān)鍵字需要緊跟在選擇器({})后面"
操作符
算數(shù)二次元運(yùn)算符
eg:加減乘除
布爾運(yùn)算符:
eg:= ,!= ,< , > ,<= ,>=
集合運(yùn)算符:
and,or,unless
匹配模式
聚合操作
語(yǔ)法:<aggr-op>([parameter,] <vector expression>) [without|by (<label list>)] 只有count_values, quantile, topk, bottomk支持參數(shù)(parameter)
sum (求和);min (最小值);max (大值);avg (平均值);stddev (標(biāo)準(zhǔn)差);stdvar (標(biāo)準(zhǔn)差異);count (計(jì)數(shù));count_values (對(duì) value 進(jìn)行計(jì)數(shù));bottomk (樣本值最小的 k 個(gè)元素);topk (樣本值大的k個(gè)元素);quantile (分布統(tǒng)計(jì))
eg:<aggr-op>([parameter,] <vector expression>) [without|by (<label list>)]
without 用于從計(jì)算結(jié)果中移除列舉的標(biāo)簽,而保留其它標(biāo)簽。by 則正好相反,結(jié)果向量中只保留列出的標(biāo)簽,其余標(biāo)簽則移除。通過(guò) without 和 by 可以按照樣本的問(wèn)題對(duì)數(shù)據(jù)進(jìn)行聚合。
任務(wù)和實(shí)例
? 采集不同的監(jiān)控指標(biāo),我們需要運(yùn)行相應(yīng)的監(jiān)控采集程序,并且讓prometheus server知道這些export實(shí)例的訪(fǎng)問(wèn)地址。每一個(gè)監(jiān)控樣本的http服務(wù)稱(chēng)之為一個(gè)實(shí)例。node exporter可以稱(chēng)之為一個(gè)實(shí)例。
? 一組用于相同采集目的的實(shí)例,或者一個(gè)采集進(jìn)程的多個(gè)副本則通過(guò)一個(gè)一個(gè)任務(wù)管理。
* job: node
* instance 2: 1.2.3.4:9100
* instance 4: 5.6.7.8:9100
HTTP API中響應(yīng)格式
瞬時(shí)數(shù)據(jù)查詢(xún):
url請(qǐng)求參數(shù):
eg:'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z'
query=:PromQL表達(dá)式。
time=<rfc3339 | unix_timestamp>:用于指定用于計(jì)算PromQL的時(shí)間戳??蛇x參數(shù),默認(rèn)情況下使用當(dāng)前系統(tǒng)時(shí)間。
timeout=:超時(shí)設(shè)置。可選參數(shù),默認(rèn)情況下使用-query,timeout的全局設(shè)置
區(qū)間數(shù)據(jù)查詢(xún):
url請(qǐng)求參數(shù):
eg:'http://localhost:9090/api/v1/query_range?query=up&start=2015-07-01T20:10:30.781Z&end=2015-07-01T20:11:00.781Z&step=15s'
query=: PromQL表達(dá)式。
start=<rfc3339 | unix_timestamp>: 起始時(shí)間。
end=<rfc3339 | unix_timestamp>: 結(jié)束時(shí)間。
step=: 查詢(xún)步長(zhǎng)。
timeout=: 超時(shí)設(shè)置??蛇x參數(shù),默認(rèn)情況下使用-query,timeout的全局設(shè)置。
Prometheus告警
告警規(guī)則定義(Alertrule difinition)
告警名稱(chēng): 自定義名稱(chēng).
告警規(guī)則:基于PromQL表達(dá)式定義告警觸發(fā)條件.定義在配置文件中
groups:
- name: example
rules:
- alert: HighErrorRate
expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
for: 10m
labels:
severity: page
annotations:
summary: High request latency
description: description info
#group:定義一組相關(guān)規(guī)則
#alert:告警規(guī)則名稱(chēng)
#expr:基于PromQL的觸發(fā)條件
#for 等待評(píng)估時(shí)間
#label 自定義標(biāo)簽
#annotation: 指定一組附加信息Alertmanger特性
Altermanager特性
分組:可以將詳細(xì)的告警機(jī)制合并成一個(gè)通知
抑制:當(dāng)發(fā)出一個(gè)警告時(shí),可以停止重復(fù)發(fā)送此告警的引發(fā)的其他告警機(jī)制
靜默:將告警進(jìn)行靜默處理
安裝啟動(dòng)Altermanger
wget https://github.com/prometheus/alertmanager/releases/download/v0.15.3/alertmanager-0.15.3.linux-amd64.tar.gz
cd alertmanager-0.15.3.linux-amd64/
./alertmanager
altermanager.yml配置文件介紹
global:
resolve_timeout: 5m
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: 'web.hook'
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://127.0.0.1:5001/'
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
路由(route)以及接收器(receivers)。所有的告警信息都會(huì)從配置中的頂級(jí)路由(route)進(jìn)入路由樹(shù),根據(jù)路由規(guī)則將告警信息發(fā)送給相應(yīng)的接收器。
全局配置(global):用于定義一些全局的公共參數(shù),如全局的SMTP配置,Slack配置等內(nèi)容;
模板(templates):用于定義告警通知時(shí)的模板,如HTML模板,郵件模板等;
告警路由(route):根據(jù)標(biāo)簽匹配,確定當(dāng)前告警應(yīng)該如何處理;
接收人(receivers):接收人是一個(gè)抽象的概念,它可以是一個(gè)郵箱也可以是微信,Slack或者Webhook等,接收人一般配合告警路由使用;
抑制規(guī)則(inhibit_rules):合理設(shè)置抑制規(guī)則可以減少垃圾告警的產(chǎn)生
重啟prometheus
killall -9 prometheus
nohup prometheus &
安裝prometheus server
wget https://github.com/prometheus/prometheus/releases/download/v2.6.0/prometheus-2.6.0.linux-amd64.tar.gz
tar -zxvf prometheus-2.6.0.linux-amd64.tar.gz
cd prometheus-2.6.0.linux-amd64
./prometheus &
ln -s /root/prometheus/prometheus-2.6.0.linux-amd64/prometheus /usr/local/bin/prometheus
設(shè)置開(kāi)機(jī)啟動(dòng)
cat >> /usr/lib/systemd/system/multi-user.target.wants/prometheus.service <<EOF
[Unit]
Description=prometheus
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/prometheus --config.file="/root/prometheus-2.6.0.linux-amd64/prometheus.yml" --storage.tsdb.path=/root/prometheus-2.6.0.linux-amd64/data
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl enable prometheus
systemctl start prometheus
安裝Node Exporter 采集主機(jī)運(yùn)行數(shù)據(jù)(采集主機(jī)運(yùn)行指標(biāo)比如cpu,內(nèi)存和磁盤(pán)等信息)
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
tar -zxvf node_exporter-0.17.0.linux-amd64.tar.gz
cd node_exporter-0.17.0.linux-amd64/
mv node_exporter /usr/local/bin/
nohup node_exporter &
curl -l -H "Content-type: application/json" -X POST -d '{"msgtype": "markdown","markdown": {"title":"Prometheus告警信息","text": "#### 監(jiān)控指標(biāo)\n> 監(jiān)控描述信息\n\n> ###### 告警時(shí)間 \n"},"at": {"isAtAll": false}}' https://oapi.dingtalk.com/robot/send?access_token=51345145d106753486bd71614bf881283f91e2124535276b257f99327e41dc87
{"errcode":0,"errmsg":"ok"}
Prometheus中添加收集的監(jiān)控?cái)?shù)據(jù),修改prometheus.yml文件,并在scrape_configs添加一下內(nèi)容。
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
# 采集node exporter監(jiān)控?cái)?shù)據(jù)
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
使用Grafana創(chuàng)建可視化Dashboard
docker run -d -p 3000:3000 grafana/grafana
#訪(fǎng)問(wèn)http://localhost:3000 默認(rèn)用戶(hù)名admin 密碼admin
先記錄,后補(bǔ)充。
參考文章如下:
prometheus非官方手冊(cè)
prometheus-book
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱(chēng):prometheus基本概念用法記錄-創(chuàng)新互聯(lián)
瀏覽地址:http://jinyejixie.com/article4/jgpie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、用戶(hù)體驗(yàn)、動(dòng)態(tài)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容