Prometheus(普羅米修斯)是一個最初在SoundCloud上構建的監控系統。自2012年成為社區開源項目,擁有非常活躍的開發人員和用戶社區。為強調開源及獨立維護,Prometheus于2016年加入云原生云計算基金會(CNCF),成為繼Kubernetes之后的第二個托管項目。
https://prometheus.io
https://github.com/prometheus

作為新一代的監控框架,Prometheus 具有以下特點:
? 多維數據模型:由度量名稱和鍵值對標識的時間序列數據
? PromSQL:一種靈活的查詢語言,可以利用多維數據完成復雜的查詢
? 不依賴分布式存儲,單個服務器節點可直接工作
? 基于HTTP的pull方式采集時間序列數據
? 推送時間序列數據通過PushGateway組件支持
? 通過服務發現或靜態配置發現目標
? 多種圖形模式及儀表盤支持
Prometheus適用于以機器為中心的監控以及高度動態面向服務架構的監控。

二.Prometheus部署
轉載:https://blog.gmem.cc/prometheus-study-note
1.安裝環境:
server1:centos7.6 主節點 190.168.3.250
server2:centos7.6 節點1 190.168.3.251

為您的平臺下載最新版本的Prometheus,然后解壓縮并運行它:

https://prometheus.io/download/

https://prometheus.io/docs/prometheus/latest/getting_started/

2.二進制安裝
tar xvfz prometheus-2.15.0.linux-amd64.tar.gz
cd prometheus-2.15.0.linux-amd64
mv prometheus-2.15.0.linux-amd64 /usr/local/prometheus

啟動
./prometheus –config.file=prometheus.yml

為了方便,加入到服務配置文件里
vi /usr/lib/systemd/system/prometheus.service
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus –config.file=/usr/local/prometheus/prometheus.yml

[Install]
WantedBy=multi-user.target

重啟服務
systemctl daemon-reload
systemctl start prometheus.service

3.容器安裝
https://prometheus.io/docs/prometheus/latest/installation/
prometheus.yml通過運行以下命令將您從主機綁定:
docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \\\\
prom/prometheus
或者為配置使用額外的卷:
docker run -p 9090:9090 -v /prometheus-data \\\\
prom/prometheus –config.file=/prometheus-data/prometheus.yml

4.訪問web
http://190.168.3.250:9090訪問自己的狀態頁面
可以通過訪問localhost:9090驗證Prometheus自身的指標:190.168.3.250:9090/metrics

三.配置監控服務
1.配置Prometheus監控本身
全局配置文件簡介
有關配置選項的完整,請參閱:https://prometheus.io/docs/prometheus/latest/configuration/configuration/
Prometheus以scrape_interval規則周期性從監控目標上收集數據,然后將數據存儲到本地存儲上。scrape_interval可以設定全局也可以設定單個metrics。
Prometheus以evaluation_interval規則周期性對告警規則做計算,然后更新告警狀態。evaluation_interval只有設定在全局。

global:全局配置
alerting:告警配置
rule_files:告警規則
scrape_configs:配置數據源,稱為target,每個target用job_name命名。又分為靜態配置和服務發現

global:
默認抓取周期,可用單位ms、smhdwy #設置每15s采集數據一次,默認1分鐘
[ scrape_interval: <duration> | default = 1m ]
默認抓取超時
[ scrape_timeout: <duration> | default = 10s ]
估算規則的默認周期 # 每15秒計算一次規則。默認1分鐘
[ evaluation_interval: <duration> | default = 1m ]
和外部系統(例如AlertManager)通信時為時間序列或者警情(Alert)強制添加的標簽列表
external_labels:
[ <labelname>: <labelvalue> … ]

規則文件列表
rule_files:
[ – <filepath_glob> … ]

抓取配置列表
scrape_configs:
[ – <scrape_config> … ]

Alertmanager相關配置
alerting:
alert_relabel_configs:
[ – <relabel_config> … ]
alertmanagers:
[ – <alertmanager_config> … ]

遠程讀寫特性相關的配置
remote_write:
[ – <remote_write> … ]
remote_read:
[ – <remote_read> … ]

vi prometheus.yml
下面就是拉取自身服務采樣點數據配置
scrape_configs:
別監控指標,job名稱會增加到拉取到的所有采樣點上,同時還有一個instance目標服務的host:port標簽也會增加到采樣點上

job_name: \\\’prometheus\\\’
覆蓋global的采樣點,拉取時間間隔5s
scrape_interval: 5s
static_configs:

targets: [\\\’localhost:9090\\\’]

最下面,靜態配置監控本機,采集本機9090端口數據

注:每次修改配置完成,用promtool檢測配置文件是否正確
[root@server1 prometheus]# ./promtool check config prometheus.yml

重啟服務
可以用kill -hup 進程id 自動加載新配置文件

查看targets可以看到節點正常

也可以在這里搜尋收集來的數據

2.配置服務發現監控linux主機及相關服務
在server2 190.168.3.251上安裝node_exporter
使用文檔:https://prometheus.io/docs/guides/node-exporter/
GitHub:https://github.com/prometheus/node_exporter
exporter列表:https://prometheus.io/docs/instrumenting/exporters/

在server2安裝節點采集器,mysql服務,nginx服務
tar zxf node_exporter-0.17.0.linux-amd64.tar.gz
mv node_exporter-0.17.0.linux-amd64 /usr/local/node_exporter
cd /usr/local/node_exporter/
./node_exporter –help

服務發現,我們這里使用file_sd_configs,寫監控配置文件,服務發現node節點

mkdir sd_config創建服務發現目錄

寫采集地址targets
[root@server1 prometheus]# vi sd_config/node.yml

方便管理服務,將宿主機節點監控采集node_exporter加入到服務配置文件里,

如果要監控節點的系統服務,需要在后面添加名單參數
–collector.systemd.unit-whitelist=". " 從systemd中循環正則匹配單元
–collector.systemd.unit-whitelist="(docker|sshd|nginx).service" 白名單,收集目標

/usr/bin/node_exporter –collector.systemd –collector.systemd.unit-whitelist=(docker|sshd|nginx).service

在http://190.168.3.250:9090/graph已經能看到節點采集到的宿主機信息,已經可以看到監控到了服務,值為1就是服務正常

補充:
也可以將之前190.168.3.250上監控本機的9090的靜態采集改成文件服務發現的形式

[root@server1 prometheus]# vi sd_config/test.yml ,其中的加上了標簽,添加采集地址,可以在targets里使用標簽查找

四.使用grafana前端展示數據并監控docker服務

1.cAdvisor采集容器信息
使用cAdvisor(Container Advisor)用于收集正在運行的容器資源使用和性能信息。
docker run \\\\
–volume=/:/rootfs:ro \\\\
–volume=/var/run:/var/run:ro \\\\
–volume=/sys:/sys:ro \\\\
–volume=/var/lib/docker/:/var/lib/docker:ro \\\\
–volume=/dev/disk/:/dev/disk:ro \\\\
–publish=8080:8080 \\\\
–detach=true \\\\
–name=cadvisor \\\\

http://190.168.3.250:8080/訪問web端口,已經采集到了容器的數據

2.Grafana

https://grafana.com/grafana/download

Grafana是一個開源的度量分析和可視化系統,Grafana支持查詢普羅米修斯。自Grafana 2.5.0(2015-10-28)以來,包含了Prometheus的Grafana數據源。

在官網上下載https://grafana.com/grafana/download?platform=docker
我們這里用的是docker版的
docker run -d –name=grafana -p 3000:3000 grafana/grafana

跑起來后,190.168.3.250:3000訪問web接口
密碼賬號都是admin,第一次登陸需要修改密碼
添加數據源

已經有一個Prometheus數據源

3.添加監控宿主機模板

輸入9276,導入

修改名字和數據庫

完成,查看最后模板效果

4.查看docker監控
添加新job,修改采集配置文件prometheus.yml
[root@server1 prometheus]# vi prometheus.yml

檢查配置文件后,重啟主服務 ./promtool check config prometheus.yml

同樣方法在Grafana下載模板,導入193
也可以在https://grafana.com/dashboards/下載別的模板

五.監控Mysql服務

MYSQL_exporter:用于收集MySQL性能信息。

下載https://github.com/prometheus/mysqld_exporter
監控模板https://grafana.com/dashboards/7362

我們在server2 190.168.3.251上配置,需要下載mysqld_exporter數據庫采集和安裝mariadb

登錄mysql為exporter創建賬號,以便可以采集數據:
mysql> CREATE USER \\\’exporter\\\’@\\\’localhost\\\’ IDENTIFIED BY \\\’123456\\\’;
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON . TO \\\’exporter\\\’@\\\’localhost\\\’;

vi .my.cnf ,添加用戶隱藏的數據庫賬號,prometheus監控mysql需要用這個賬號采集

在server1 190.168.3.250修改采集配置文件
[root@server1 prometheus]# vi prometheus.yml

檢查配置文件并重啟服務,systemctl restart prometheus.service

[root@server2 mysql_exporter]# ./mysqld_exporter –config.my-cnf=.my.cnf

數據庫信息已經采集到了
http://190.168.3.251:9104/metrics

導入模板后7362后

六.郵件告警
1.告警介紹
在Prometheus平臺中,警報由獨立的組件Alertmanager處理。通常情況下,我們首先告訴Prometheus Alertmanager所在的位置,然后在Prometheus配置中創建警報規則,最后配置Alertmanager來處理警報并發送給接收者(郵件,webhook、slack等)。

地址1:https://prometheus.io/download/
地址2:https://github.com/prometheus/alertmanager/releases
設置告警和通知的主要步驟如下:
第一步 部署Alertmanager
第二步 配置Prometheus與Alertmanager通信
第三步 在Prometheus中創建告警規則

2.配置Prometheus與Alertmanager通信

需要在官網下載以上的報警包

修改告警媒介,使用郵箱發送
[root@server1 alertmanager-0.16.0.linux-amd64]# vi alertmanager.yml

注意:上面的驗證密碼不是郵箱密碼,是授權碼

修改完檢查配置文件alertmanager.yml是否正確,然后重啟服務
./alertmanager –config.file alertmanager.yml
systemctl restart prometheus.service

修改prometheus連接告警模塊,并設定告警規則
[root@server1 prometheus]# vi prometheus.yml

[root@server1 prometheus]# vi rules/test.yml
參照官網告警上寫的

groups:

name: example # 報警規則組名稱
rules:

alert: InstanceDown
expr: up == 0
for: 1m #持續時間 , 表示持續一分鐘獲取不到信息,則觸發報警
labels:
severity: page # 自定義標簽
annotations:
summary: "Instance {{ $labels.instance }} down" # 自定義摘要
description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes." # 自定義具體描述

3.測試郵箱告警
我們把server2 上的mysql監控關閉,測試告警
http://190.168.3.250:9090/alerts,已經觸發

我們看郵箱,收到報警

更多關于云服務器,域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » Prometheus簡單搭建

登錄

找回密碼

注冊

主站蜘蛛池模板: 欧洲精品码一区二区三区| 夜色福利站WWW国产在线视频| 精品无码国产日韩制服丝袜| 国产成人精品无码一区二区老年人 | 精选国产av精选一区二区三区| 人人爽亚洲aⅴ人人爽av人人片| 西乡县| 日本xxxx色视频在线播放| 99久久精品国产一区二区蜜芽| 苍井空毛片精品久久久| 亚洲人成亚洲人成在线观看| 性色欲情网站iwww| 中国亚州女人69内射少妇| 天天爽天天摸天天碰| 无码人妻丰满熟妇啪啪网不卡| 久久发布国产伦子伦精品| 亚洲av精彩一区二区| 国产成人a在线观看视频免费| 亚洲天堂伊人久久a成人| 午夜精品福利亚洲国产| 日韩一本不卡一区二区三区| 国产精品偷伦费观看一次 | 翘臀少妇被扒开屁股日出水爆乳| 99久久精品久久久久久婷婷| A级日本乱理伦片免费入口| 4hu亚洲人成人无码网www电影首页| 久久一日本道色综合久久| 亚洲午夜无码久久久久蜜臀av | 爆乳喷奶水无码正在播放| 亚洲女人天堂成人av在线| 影音先锋AV成人资源站在线播放| 密山市| 欧美人与动交视频在线观看 | 亚洲日韩一区二区| 亚洲理论在线A中文字幕| 久久九九久精品国产免费直播| 国产首页一区二区不卡| 粉嫩小泬无遮挡久久久久久| 一个人看的www视频免费观看| 隔壁老王国产在线精品| 人妻熟女一区二区aⅴ向井蓝|