日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志

發(fā)布時(shí)間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一 Prometheus 入門

1.1 入門介紹

運(yùn)維體系~指標(biāo)監(jiān)控

先來一張圖,說明一下Prometheus監(jiān)控相關(guān)的軟件和知識(shí)點(diǎn)。

1: 首先要安裝:Prometheus, 負(fù)責(zé)收集各種監(jiān)控指標(biāo),也包括自己定監(jiān)控

2: 接著安裝Grafana全面瓦解,負(fù)責(zé)展示監(jiān)控指標(biāo)

3:接著安裝各種收集插件(導(dǎo)出器)exporter

4: 安裝告警工具 alarmManager

新增指標(biāo)步驟:

安裝配置exporter、到premetheus中進(jìn)行配置、grafana新增圖表

1.2 相關(guān)軟件、端口說明

1.2.1 端口說明

軟件

端口

作用

安裝形式

地位

核心

Prometheus

9090

收集器,負(fù)責(zé)收集導(dǎo)出器exportor的數(shù)據(jù)

二進(jìn)制、docker、rancher應(yīng)用商店安裝,下載地址: Prometheus.io, 有官方導(dǎo)出器,也有第三方只要按照 Prometheus的格式 暴露對(duì)應(yīng)的指標(biāo) 即可

Prometheus、alertmanager、node_exporter、mysqld_exporter 都在一個(gè)官網(wǎng)上面

配置文件持久化, prometheus.yml

Grafana

3000

展示Prometheus的數(shù)據(jù)

專業(yè)展示數(shù)據(jù),數(shù)據(jù)源可以是:Prometheus,Elasticsearch、Mysql、PostgreSql、InfluxDB(時(shí)序數(shù)據(jù)庫(kù))、json自定義 等各種插件支持;可以界面配置數(shù)據(jù)源,https://grafana.com/、可視化工具Grafana:簡(jiǎn)介及安裝

專業(yè)展示

1.2.2 導(dǎo)出器exporter說明

Exporter是Prometheus的一類數(shù)據(jù)采集組件的總稱。

它負(fù)責(zé)從目標(biāo)處搜集數(shù)據(jù),并將其轉(zhuǎn)化為Prometheus支持的格式。

與傳統(tǒng)的數(shù)據(jù)采集組件不同的是,它并不向中央服務(wù)器發(fā)送數(shù)據(jù),而是等待中央服務(wù)器主動(dòng)前來抓取,

默認(rèn)的抓取地址為http://CURRENT_IP:9100/metrics

導(dǎo)出器名稱

作用

安裝方式

下載地址

安裝形式

暴露端點(diǎn)

Node exporter

類似zabbix-agent收集服務(wù)器自身的mem、cpu、network等服務(wù)器本身的數(shù)據(jù)

prometheus官方提供、維護(hù)

官網(wǎng)直接搜索:node_exporter 、參考地址 容器監(jiān)控實(shí)踐—node-exporter

二進(jìn)制安裝、docker安裝、k8s安裝;需要在每臺(tái)主機(jī)上面都安裝

host:9100/metrics,如果服務(wù)器端口不開發(fā),可以映射到項(xiàng)目根路徑,eg: https://ngniot.bgysmartcity.com/metrics

-cAdvisor(Container Advisor )

收集docker容器的指標(biāo)和性能

google開源 GO開發(fā)

docker、二進(jìn)制都行

host:8080/metrics

mysql_exporter

收集數(shù)據(jù)庫(kù)的

docker、二進(jìn)制都行

host:9104/metrics

mongodb_exporter

收集

docker、二進(jìn)制都行

host:9001/metrics

1.3 簡(jiǎn)單介紹

由于安裝牽扯的軟件和導(dǎo)出器比較多,

prometheus、Grafana、alertmanager、node_exporter、mysqld_exporter 等等,

我們先使用 rancher1 應(yīng)用商店自帶的 prometheus

默認(rèn)操作,開發(fā)3000和9090里面就可以訪問了

1.3.1 Grafana 使用事項(xiàng)

默認(rèn)登錄需要密碼,沒有密碼,隨便輸入的賬號(hào)和密碼,就是初始化賬號(hào)密碼

設(shè)置數(shù)據(jù)源,默認(rèn)已經(jīng)添加了數(shù)據(jù)源 http://prometheus:9090,可以添加新的數(shù)據(jù)源,可以跨服務(wù)器

默認(rèn)不用做啥配置,就可以看到 node-exporter【服務(wù)器主機(jī)信息】、prometheus-rancher-exporter【rancher簡(jiǎn)要信息】

每個(gè)圖標(biāo)需要自定義 promSQL 來展示數(shù)據(jù)

官方有很多模板,可以導(dǎo)入

6: 上官網(wǎng)搜索自己需要的展示模板

1.3.2 prometheus 使用說明

prometheus數(shù)據(jù)來源說明

1:基于 http pull 方式采集, 被采集端只要 暴露http metrics 接口, prometheus主動(dòng)定時(shí)來采集

2:對(duì)于非常規(guī)數(shù)據(jù),比如定時(shí)器的結(jié)果數(shù)據(jù),定時(shí)來去可能取不到,這里 借助:pushGateway 收集采集數(shù)據(jù)

3:通過服務(wù)發(fā)現(xiàn)或者靜態(tài)配置發(fā)現(xiàn)目標(biāo): 比如要監(jiān)控10個(gè)服務(wù)就可以靜態(tài)配置,如果要監(jiān)控1000個(gè)服務(wù),就只能 把服務(wù)器注冊(cè)到 注冊(cè)中心(如:Consul), prometheus 從注冊(cè)中心動(dòng)態(tài)取。

1.3.3 PromSQL (prometheus) 的使用

PromSQL可以類似sql一樣對(duì)收集到的相關(guān)指標(biāo)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析和處理

#按照每臺(tái)服務(wù)器,查看最近5分鐘的cpu空率

100 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100

#內(nèi)存使用

100 - (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes ) / node_memory_MemTotal_bytes * 100

#監(jiān)控磁盤占用率,如果沒有數(shù)據(jù),可以去掉 mountpoint 參數(shù)或者修改該參數(shù)

100 - ( node_filesystem_free_bytes{mountpoint="/.r", fstype =~ "ext4|xfs"} / node_filesystem_size_bytes{mountpoint = "/.r", fstype =~ "ext4|xfs"} * 100)

1.3.4 prometheus 配置文件說明

當(dāng)新增了 exporter 都要在 prometheus 里面進(jìn)行配置,新增配置之后service-discovery 和 targets 里面就能看到新增的保留點(diǎn)。

job: 是一一類指標(biāo)

targets:是一類指標(biāo)下面的多臺(tái)機(jī)器

直接使用rancher 應(yīng)用商店的 好處,prometheus 配置文件就不用關(guān)心了基本上都配置完美了

配置文件實(shí)例,可以對(duì)照http://ityun.ltd:9090/config 對(duì)著看差異

參考:Prometheus 配置文件詳解

編輯 prometheus.yml配置文件

檢查配置文件:./promtool check config promethues.yml

配置檢查沒有問題,重載配置kill -hup 4100

重載完成,可以進(jìn)入到 prometheus管理界面查看配置和監(jiān)控?cái)?shù)據(jù)

服務(wù)發(fā)現(xiàn),當(dāng)需要監(jiān)控的機(jī)器是動(dòng)態(tài)擴(kuò)容或者所容的時(shí)候,服務(wù)發(fā)現(xiàn)就非常有用,支持的方式有:

1.4 安裝promethues

1.4.1 二進(jìn)制安裝部署

官網(wǎng)進(jìn)行下載,prometheus download, 下載:wget https://github.com/prometheus/prometheus/releases/download/v2.20.0-rc.1/prometheus-2.20.0-rc.1.linux-386.tar.gz、解壓到**/usr/local/promethues/promethues**:tar zxvf *.gz

最好是參見最新的官方文檔:prometheus docs getting_started

重要的啟動(dòng)選項(xiàng),./prometheus --help, 一個(gè)是:配置文件指定--config.file="prometheus.yml"、監(jiān)控端口--web.listen-address=" 0.0.0.0:9090"、數(shù)據(jù)存儲(chǔ)目錄 --storeage.tsdb.path=" data/"、數(shù)據(jù)存儲(chǔ)保留時(shí)間默認(rèn)15D=--storage.tsdb.retention=15d

配置為系統(tǒng)服務(wù)

#1: systemd,先copy一個(gè)模板進(jìn)行修改

cd /usr/lib/systemd/system

# 2: copy一個(gè)配置文件 service

cp sshd.service prometheus.service

# 3: 修改配置文件

[Unit]

Description=prometheus.io

After=network.target

[Service]

Restart=on-failure

ExecStart=/usr/local/prometheus/promethues/promethues --config.file=/usr/local/prometheus/promethues/promethues/promethues.yml //自已的tomcat目錄

ExecReload=/bin/kill -s HUP $MAINPID

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

#4: #在命令執(zhí)行,重新加載service配置

systemctl daemon-reload

#5 啟動(dòng)測(cè)試

systemctl start prometheus

#6 查看進(jìn)程執(zhí)行情況

ps -ef |grep prometheus

1.4.2 rancher部署

映射配置文件:/usr/local/docker_volume/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

1.4.3 docer 部署

看官網(wǎng)文檔: prometheus installation 搜索 Using Docker

執(zhí)行docker運(yùn)行命令

#執(zhí)行啟動(dòng)命令,掛載卷地址,/usr/local/docker_volume/prometheus/prometheus.yml

docker run -d \

-p 9090:9090 \

-v /usr/local/docker_volume/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \

-v /usr/local/docker_volume/prometheus/data:/prometheus\

prom/prometheus

二 導(dǎo)出器和可視化圖表

2.1 node exporter 服務(wù)器資源導(dǎo)出器

node導(dǎo)出器,負(fù)責(zé)導(dǎo)出 服務(wù)器自身的cpu、內(nèi)存、網(wǎng)絡(luò)、平均負(fù)載等。

使用展示模板,特別方便不用自己寫PromSQL

1 Node Exporter for Prometheus Dashboard CN v20200628

官方Grafana模板地址:1 Node Exporter for Prometheus Dashboard CN v20200628

2.2 cadvisor 容器導(dǎo)出器

cadvisor是谷歌開發(fā)的容器導(dǎo)出器,可以監(jiān)控容器的各項(xiàng)指標(biāo),可以手工安裝

Grafana的顯示cadvisor數(shù)據(jù)模板

Docker and system monitoring 893 - 推薦使用

2.3 Rancher 導(dǎo)出器

我們監(jiān)聽rancher 的指標(biāo),這個(gè) rancher promethues自身就有的exporter

導(dǎo)出器名稱prometheus-rancher-exporter 、infinityworks/prometheus-rancher-exporter:v0.22.52

可視化模板 Rancher的 promethues數(shù)據(jù)源模板 1674

可視化模板 Ranche2 - 8721

2.4 mysql_exporter 導(dǎo)出器

mysql_exporter,下載安裝到自己需要監(jiān)控的mysql主機(jī),

創(chuàng)建用戶授權(quán)一個(gè)賬號(hào),具體查看github; 可以自己配置采集信息,具體查看:

./mysql_exporter --help

eg: mysql最大連接數(shù)、當(dāng)前連接數(shù)、innodb利用率、讀寫流量、查詢速度

導(dǎo)出器 mysql_exporter 下載地址:prometheus mysqld_exporter

grafan圖表模板 mysql grafana 的 promethues數(shù)據(jù)源模板 - 7362

2.4.1 mysql_exporter詳細(xì)安裝步驟

下載 包到本機(jī) /usrl/local/promethues/exporter/mysql_exporter, 最新版本到官網(wǎng)下載,見:【mysql_exporter 】download

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-386.tar.gz,官網(wǎng):下載特別慢,可以從第三方下載,見grafana-prometheus-mysqld-node_exporter.rar

解壓:tar -zxvf *.gz

查看啟動(dòng)選項(xiàng):``

進(jìn)入mysql里面創(chuàng)建一個(gè)mysql用戶&授權(quán),具體搜索:Required Grants在github mysqld_exporter

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'exporter123pwdxx.' WITH MAX_USER_CONNECTIONS 3; #創(chuàng)建一個(gè)新用戶,只允許localhost有權(quán)限,也可以變成%; & 限制最大連接數(shù)是3; 如果報(bào)錯(cuò),刪除 用戶連接數(shù)限制。

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost'; #授權(quán)

在當(dāng)前目錄創(chuàng)建一個(gè)my.cnf文件,通過該文件,就可以每次免密使用。touch my.cnf,查看設(shè)置選項(xiàng):./mysqld_exporter --help

[client]

user=exporter

password=exporter123pwdxx.

centos主機(jī)上面啟動(dòng)&指定配置文件:./mysqld_exporter --config.my-cnf="./my.cnf",啟動(dòng)完成驗(yàn)證:http://localhost:9104/metrics, 后臺(tái)運(yùn)行:nohup ./mysqld_exporter --config.my-cnf="./my.cnf" &

配置完畢,我們回到promethes配置文件中進(jìn)行配置,vi prometheus.yml

如果9104端口無(wú)法對(duì)外開放,可以進(jìn)行映射,nginx配置如下:

location /metrics { #Node exporter metrics 監(jiān)控

proxy_pass http://localhost:9104;

}

2.4.2 MySQL 監(jiān)控指標(biāo)

2.5 mongodb_exporter 導(dǎo)出器

mongodb_exporter,下載安裝到自己需要監(jiān)控的MongoDB主

這個(gè)插件手工安裝還有點(diǎn)麻煩,需要手工安裝go、安裝glide,然后才能安裝exporter。

參考,文檔非常詳細(xì)、或者直接看github:prometheus監(jiān)控mongo

使用的插件是:dcu/mongodb_exporter

使用的展示json是 2583 :https://grafana.com/dashboards/2583

使用的dcu/mongodb_exporter 對(duì)應(yīng)的docker 鏡像是:targetprocess/mongodb_exporter

需要給指定MongoDB賬號(hào),監(jiān)控的權(quán)限

# E0727 04:19:12.553163 1 oplog_status.go:127] Failed to get local.oplog_rs collection stats.

# E0727 04:19:42.490771 1 server_status.go:173] Failed to get server status.

# E0727 04:19:42.522262 1 replset_status.go:231] Failed to get replSet status.

# Prometheus Mongodb Exporter - Correct DB User Permissions

#When you see the error Failed to get local.oplog_rs collection stats. in your mongodb exporter logs, make sure the DB user account you use has the right permissions.

db.getSiblingDB("admin").createUser({

user: "mongodb_exporter",

pwd: "mongodb_exporter_pwd.",

roles: [

{ role: "clusterMonitor", db: "admin" },

{ role: "read", db: "local" }

]

})

docker run -d \

-p 9001:9001 \

--mongodb.uri="mongodb://iotMongoUserX:.123aB.iotMongoUserXpWD@39.198.173.142:37071" \

targetprocess/mongodb_exporter

啟動(dòng)參數(shù):--mongodb.uri=mongodb://iotMongoUserX:.123aB.iotMongoUserXpWD@39.198.173.142:37071

如何查看啟動(dòng)參數(shù),進(jìn)入容器內(nèi)部find / -name '*exporter*'查找安裝目錄, 執(zhí)行cd /bin , ./mongodb_exporter --help

三 告警alartmanager

前面我們講解了監(jiān)控?cái)?shù)據(jù)的可視化,但是數(shù)據(jù)量很多,指標(biāo)很多,我們不可能一直盯著屏幕。因此我們需要對(duì)數(shù)據(jù)進(jìn)行巡檢和告警處理。

告警也有一些高級(jí)使用步驟:分組、抑制、靜默等

3.1 使用步驟

安裝部署 alartmanager, 通過官網(wǎng)或者github,官網(wǎng)同:promethues

配置Promethues和alertmanager通信

在promethues中配置告警規(guī)則

在alartmanager中配置接收者

三 告警alartmanager

前面我們講解了監(jiān)控?cái)?shù)據(jù)的可視化,但是數(shù)據(jù)量很多,指標(biāo)很多,我們不可能一直盯著屏幕。因此我們需要對(duì)數(shù)據(jù)進(jìn)行巡檢和告警處理。

告警也有一些高級(jí)使用步驟:分組、抑制、靜默等

3.1 使用步驟

安裝部署 alartmanager, 通過官網(wǎng)或者github,官網(wǎng)同:promethues

配置Promethues和alertmanager通信

在promethues中配置告警規(guī)則

在alartmanager中配置接收者

3.2 配置alartmanager和premethues通信

alartmanager.yml

route 告警路由 分配 、receivers: 接收者、inhibit_rules: 抑制配置、

./amtool check-config alartmanger.yml檢查配置語(yǔ)法是否正確

總結(jié)

以上是生活随笔為你收集整理的服务器运维监控指标,运维体系~指标监控~Prometheus监控告警与日志的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。