grafana + Prometheus + node-exporter + pushgateway + alertmanager的監控解決方案

業內比較著名的監控解決方案,據筆者所知,大概是三套:

一個是zabbix的解決方案,一個是prometheus+grafana,一個是ELK

zabbix比較重,而且原生支持監控SNMP,自帶一個儀表盤,不需要額外部署

promethues,對K8S的支持比較好,并且比較輕量化,但是需要配grafana才能出圖

ELK非常重,筆者沒咋玩過,但據說對大規模日志和實時分析非常好,你可以看到數據部門特別喜歡用Elastic search這個東西

今天筆者陽了,頭疼的要命,哎上次陽了之后做了個核磁發現有腦萎縮和脫髓鞘希望這次不要加重。趁著這會寫一個prometheus的搭建和配置教程吧。

一、【環境準備】

如果你打算創造就業崗位,建議用傳統方法部署一個Prometheus,這樣你可以創造一個專門維護Prometheus的崗位。

如果為了給自己省事,建議直接上docker(docker compose)或者K8S(chart),不過注意docker需要有root權限,雖然docker有root less版本,但是官網文檔提出有一些潛在的和尚未探知的問題。

這里筆者就直接用docker搭了

prometheus是監控的中心節點,grafana是畫圖的,node-exporter是采集指標的放在哪臺機器就是采集哪臺機器指標,pushgateway是做短時任務的,alertmanager是告警的,當然你也可以用grafana自帶的告警。

1. 安裝docker

# 先查一下自己的發行版本,根據發行版本,下一步下載對應的安裝包
lsb_release

比如我這個是Ubuntu 18.04的版本,bionic,那么接下來我們就下載?對應的五個包

  • containerd.io_<version>_<arch>.deb
  • docker-ce-cli_<version>_<arch>.deb
  • docker-ce_<version>_<arch>.deb
  • docker-buildx-plugin_<version>_<arch>.deb
  • docker-compose-plugin_<version>_<arch>.deb

# 下載一下離線包,設法傳到機器上
# ubuntu:https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/
# centos:https://download.docker.com/linux/centos/
# 隨后逐個安裝
sudo dpkg -i 安裝包路徑

這個安裝順序一般是先裝container,再裝剩下的,有時候新版本的container在老版本的linux上會有依賴錯誤,更新一下依賴就行。

全部安裝完后,最好還要換一下contanier的源,在/etc/containerd下面的config.toml,換源的教程很多,這里就不展開了

2. 測試docker

docker run helloword

如果docker成功運行了你會看到這個

3. 寫配置文件

這個是一個yml文件,簡單來講就是編排容器用的,可以一下起好幾個,很方便。我們創建一個 docker-compose.yml

version: '3.7'services:prometheus:image: prom/prometheus:latestcontainer_name: prometheusvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml- prometheus_data:/prometheusports:- "9090:9090"command:- '--config.file=/etc/prometheus/prometheus.yml'- '--storage.tsdb.path=/prometheus'- '--web.console.libraries=/usr/share/prometheus/console_libraries'- '--web.console.templates=/usr/share/prometheus/consoles'alertmanager:image: prom/alertmanager:latestcontainer_name: alertmanagervolumes:- ./alertmanager.yml:/etc/alertmanager/alertmanager.ymlports:- "9093:9093"command:- '--config.file=/etc/alertmanager/alertmanager.yml'node-exporter:image: prom/node-exporter:latestcontainer_name: node-exporterports:- "9100:9100"command:- '--path.rootfs=/host'network_mode: "host"pid: "host"volumes:- /:/host:ro,rslavepushgateway:image: prom/pushgateway:latestcontainer_name: pushgatewayports:- "9091:9091"grafana:image: grafana/grafana:latestcontainer_name: grafanaenvironment:- GF_SECURITY_ADMIN_PASSWORD=your_passwordvolumes:- grafana_data:/var/lib/grafanaports:- "3000:3000"volumes:prometheus_data:grafana_data:

再寫一個prometheus.yml,輸入一下內容,這個是配置連接用的

global:scrape_interval: 15s  # 默認抓取間隔scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['prometheus:9090']- job_name: 'node-exporter'static_configs:- targets: ['node-exporter:9100']- job_name: 'pushgateway'static_configs:- targets: ['pushgateway:9091']alerting:alertmanagers:- static_configs:- targets: ['alertmanager:9093']rule_files:- 'alert.rules.yml'

再寫一個 alermanager.yml,先這么寫后期有告警加進去了再改

global:resolve_timeout: 5mroute:receiver: 'default'receivers:- name: 'default'

二、【容器!啟動~】

然后cd到剛才你寫docker-compose.yml的路徑,輸入

sudo docker compose up -d
# 如果要停止就是 sudo docker compose down

看到這個,沒報錯,就算是成功了

三、【網頁上的檢查與配置】

1. 訪問prometheus

瀏覽器訪問prometheus的地址(我們這里是127.0.0.1:9090)里面有個target

看到這邊的state都是up狀態,就是連接成功了

2. 訪問grafana?

瀏覽器訪問prometheus的地址(我們這里是127.0.0.1:9094)

先配一個數據源,選prometheus

有了數據源就可以制圖了,點左側的dashboard儀表盤,new一個dashboard出來

點右上角新建一個視圖

進來之后就可以設置自己的監控項目了,右側有一些其他設置,感興趣也可以看看,設置完右上角保存

?然后再保存dashboard配置

3. 配置告警?

告警可以用alertmanager也可以用grafana的告警,前者需要寫yml,后者可以在網頁上點點點,如果告警量大建議用alertmanager,告警不多不復雜用grafana的告警也行

新建一個自己用的告警方式,這里有很多比如什么email、dingding、webhook、slack等

?然后配置一下alert rules,簡單來說就是在里面查詢某個指標,達成條件了發出告警

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14506.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14506.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14506.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker redis 持久化

1、拉取redis鏡像 docker pull redis:latest 2、 mkdir /data/redis 3、填充redis.conf文件及根據需求修改相應的配置 ?通過官網地址找到對應版本的配置文件 ?將配置信息復制到redis.conf中 ?常見的修改配置 https://redis.io/docs/latest/operate/oss_and_stack/managem…

高仿果汁導航模板

參考原文&#xff1a;果汁導航風格模板_1234FCOM專注游戲工具及源碼例子分享 極速云

sdut pta 鏈表3(優化)-----7-3 sdut-C語言實驗-鏈表的結點插入

7-3 sdut-C語言實驗-鏈表的結點插入 分數 20 全屏瀏覽 切換布局 作者 馬新娟 單位 山東理工大學 給出一個只有頭指針的鏈表和 n 次操作&#xff0c;每次操作為在鏈表的第 m 個元素后面插入一個新元素x。若m 大于鏈表的元素總數則將x放在鏈表的最后。 輸入格式: 多組輸入。…

基于springboot的畢業設計系統的開發源碼

風定落花生&#xff0c;歌聲逐流水&#xff0c;大家好我是風歌&#xff0c;混跡在java圈的辛苦碼農。今天要和大家聊的是一款基于springboot的畢業設計系統的開發。項目源碼以及部署相關請聯系風歌&#xff0c;文末附上聯系信息 。 項目簡介&#xff1a; 畢業設計系統能夠實現…

學習通高分免費刷課實操教程

文章目錄 概要整體架構流程詳細步驟云上全平臺登錄步驟小結 概要 我之前提到過一個通過瀏覽器的三個腳本就可以免費高分刷課的文章&#xff0c;由于不方便拍視頻進行實操演示&#xff0c;然后寫下了這個實操教程&#xff0c;之前的三個腳本劃到文章末尾 整體架構流程 整體大…

窗口函數 | rows between …… and ……

ROWS BETWEEN ... AND ... 是 SQL 窗口函數中的一個子句&#xff0c;用于定義窗口函數操作的行范圍。窗口函數允許用戶對一組相關的記錄執行計算&#xff0c;這些記錄被稱為窗口。 基本語法 <窗口函數> OVER ( [PARTITION BY <列名>] ORDER BY <列名> [AS…

前端基礎入門三大核心之HTML篇 —— SVG的viewBox、width和height:繪制矢量圖的魔法比例尺【含代碼示例】

前端基礎入門三大核心之HTML篇 —— SVG的viewBox、width和height&#xff1a;繪制矢量圖的魔法比例尺【含代碼示例】 基本概念與作用viewBoxwidth和height 代碼示例與實踐基礎示例動態調整示例 不同角度的使用思路保持比例縮放自動適應容器 實際問題與解決方案結語與討論 在前…

華為云之Zabbix監控平臺部署實踐

華為云之Zabbix監控平臺部署實踐 一、本次實踐介紹1.1 實踐環境簡介1.3 本次實踐完成目標 二、 相關服務介紹2.1 華為云ECS云服務器介紹2.2 Zabbix介紹 三、環境準備工作3.1 預置實驗環境3.2 查看預置環境信息 四、登錄華為云4.1 登錄華為云4.2 查看ECS狀態4.3 連接ECS彈性云服…

力扣HOT100 - 287. 尋找重復數

解題思路&#xff1a; 快慢指針 第一步&#xff0c;慢指針每次移動一步&#xff0c;快指針每次移動兩步&#xff0c;直到它們相遇。這一步保證了它們在環中相遇。 接下來&#xff0c;將其中一個指針&#xff08;快指針或慢指針&#xff09;重置到起點&#xff08;即數組的第一…

SpringBoot實現郵箱驗證碼

自行創建一個SpringBoot項目 導入SpringBoot所需要的郵箱驗證碼的包 <!--郵件發送--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.6.1</version>…

前后端部署筆記

windows版&#xff1a; 如果傻唄公司讓用win電腦部署&#xff0c;類似于我們使用筆記本做局域網服務器&#xff0c;社內使用。 1.安裝win版的nginx、mysql、node、jdk等 2.nginx開機自啟參考Nginx配置及開機自啟動&#xff08;Windows環境&#xff09;_nginx開機自啟動 wind…

UPPAAL使用方法

UPPAAL使用方法 由于剛開始學習時間自動機及其使用方法&#xff0c;對UPPAAL使用不太熟悉&#xff0c;網上能找到的教程很少&#xff0c;摸索了很久終于成功實現一個小例子&#xff0c;所以記錄一下詳細教程。 這里用到的例子參考【UPPAAL學習筆記】1&#xff1a;基本使用示例…

專業級潤滑油,一站式批發服務

要為機械設備提供持久穩定的動力保障嗎&#xff1f;選擇我們的專業級潤滑油&#xff0c;讓您的設備運轉更順暢&#xff0c;效率更高。 我們專業從事潤滑油批發多年&#xff0c;以優質的產品、合理的價格和完善的服務贏得了廣大客戶的信賴。無論是汽車、機械還是工業設備&#x…

【Vue3】env環境變量的配置和使用(區分cli和vite)

原文作者&#xff1a;我輩李想 版權聲明&#xff1a;文章原創&#xff0c;轉載時請務必加上原文超鏈接、作者信息和本聲明。 文章目錄 前言一、env文件二、vue3cli加載env1..env配置2..dev配置&#xff08;其他環境參考&#xff09;3.package.json文件4.使用 三、vue3vite加載e…

【html5】03-新表單元素及屬性

目錄 1 引言 2 智能表單控件-type 3 表單屬性 form input 5 答疑--解決required自定義提示信息 1 引言 HTML5引入了一系列新的表單輸入類型&#xff0c;如email、url、number、range、date、time、datetime-local、month、week、search、color和tel等。這些新類型增強了表…

FFmpeg源碼:bytestream_get_byte函數解析

一、引言 FFmpeg源碼中經常使用到bytestream_get_byte這個函數&#xff0c;比如使用FFmpeg對BMP圖片進行解析&#xff0c;其源碼會調用函數bmp_decode_frame&#xff0c;而該函數內部會通過bytestream_get_byte讀取BMP 的header。本文講解函數bytestream_get_byte的作用和內部…

Spark SQL 中DataFrame DSL的使用

在上一篇文章中已經大致說明了DataFrame APi,下面我們具體介紹DataFrame DSL的使用。DataFrame DSL是一種命令式編寫Spark SQL的方式&#xff0c;使用的是一種類sql的風格語法。 文章鏈接&#xff1a; 一、單詞統計案例引入 import org.apache.spark.sql.{DataFrame, SaveMod…

在SpringBoot中添加自定義增強SpringEvent事件組件

場景說明&#xff1a;在使用SpringBoot時&#xff0c;總是要添加一大堆自定義事件&#xff0c;實現ApplicationEvent&#xff0c;來實現事件發送。 這樣寫代碼量非常大。為了方便和避免出錯&#xff0c;封裝自定義的模塊&#xff0c;快速實現泛型中調用SpringEvent實現事件。省…

Xinstall助力實現App間直接跳轉,提升用戶體驗

在移動互聯網時代&#xff0c;App已成為我們日常生活中不可或缺的一部分。然而&#xff0c;在使用各類App時&#xff0c;我們經常會遇到需要在不同App之間切換的情況&#xff0c;這時如果能夠直接跳轉&#xff0c;將會大大提升用戶體驗。而Xinstall正是這樣一款能夠幫助開發者實…

OpenCV 獲取 RTSP 攝像頭視頻流保存至本地

介紹 Java OpenCV 是一個強大的開源計算機視覺庫&#xff0c;它提供了豐富的圖像處理和分析功能&#xff0c;越來越多的應用需要使用攝像頭來獲取實時視頻流進行處理和分析。 在 Java 中使用 OpenCV 打開攝像頭的基本步驟如下&#xff1a; 確保已經安裝了OpenCV庫使用 OpenC…