Prometheus的安裝部署

目錄

一、概述

二、Prometheus的安裝

1、二進制方式

1.1、下載系統安裝包?編輯

1.2、解壓

1.3、創建數據目錄,服務運行用戶

1.4、設置為系統服務(創建服務運行腳本)

1.5、啟動服務,并通過瀏覽器訪問驗證

2、容器方式

2.1、安裝docker-ce

?編輯

2.2、下載Prometheus鏡像

2.3、直接使用官方鏡像啟動,并映射prometheus.yml配置文件到本地進行管理

2.4、瀏覽器訪問驗證

三、Prometheus監控案例

1、監控遠程linux主機:

1.1、在遠程linux主機(就是被監控端)上安裝node_exporter組件

1.2、驗證:瀏覽器訪問http://被監控端IP:9100/metrics就可以查看到node_exporrter在被監控端手機的監控信息?編輯

1.3、添加Prometheus相關配置,采集node_exporter數據

1.4、通過Prometheus管理界面查看:點擊status——>點擊targets——>發現多了一臺監控目標?編輯

2、監控Windows機器

2.1、安裝vmi-exporter

2.2、修改Prometheus主配置文件?/usr/local/prometheus/prometheus.yml

2.3、驗證

3、監控遠程MySQL?

3.1、下載并解壓mysqld_exporter組件

3.2、安裝mariadb數據庫,并授權

3.3、添加至系統服務

3.4、啟動服務

3.5、修改Prometheus的主配置文件?

3.6、驗證


一、概述

基本原理

????????通過HTTP協議周期性抓取被監控組件的狀態,任意組件只要提供對應的HTTP接口就可以接入監控。不需要任何SDK或者其他的集成過程。這樣做非常適合做虛擬化環境監控系統,比如VM、Docker、Kubernetes等。輸出被監控組件信息的HTTP接口被叫做exporter 。目前互聯網公司常用的組件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系統信息(包括磁盤、內存、CPU、網絡等等)。

基本組件

  • Prometheus Server 根據配置完成數據采集, 服務發現以及數據存儲,提供PromQL查詢語言的支持。

  • Alertmanager 警告管理器,用來進行報警。

  • Exporters(探針): 是Prometheus的一類數據采集組件的總稱。它負責從目標處搜集數據,并將其轉化為Prometheus支持的格式。與傳統的數據采集組件不同的是,它并不向中央服務器發送數據,而是等待中央服務器主動前來抓取。

  • Push Gateway 支持臨時性Job主動推送指標的中間網關。

Prometheus的特點??

  • 多維度數據模型。

  • 靈活的查詢語言PromQL。

  • 不依賴分布式存儲,單個服務器節點是自主的。

  • 通過基于HTTP的pull方式采集時序數據。

  • 可以通過中間網關進行時序列數據推送。

  • 通過服務發現或者靜態配置來發現目標服務對象。

  • 支持多種多樣的圖表和界面展示,比如Grafana等。

二、Prometheus的安裝

【在防火墻SELinux關閉的情況下,操作系統:?cat /etc/centos-release? ?CentOS Linux release 7.9.2009 (Core) 】

1、二進制方式

1.1、下載系統安裝包

1.2、解壓

# tar xf prometheus-2.21.0.linux-amd64.tar.gz -C /usr/local/
創建軟鏈接
# ln -sv /usr/local/prometheus-2.21.0.linux-amd64/ /usr/local/prometheus

1.3、創建數據目錄,服務運行用戶

# mkdir /usr/local/prometheus/data
# useradd prometheus -M -s /sbin/nologin
修改權限
# chown -R prometheus.prometheus /usr/local/prometheus/*

1.4、設置為系統服務(創建服務運行腳本)

# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
After=network.target[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle --web.enable-admin-api --storage.tsdb.path=/usr/local/prometheus/data
Restart=on-failure
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
  • --config.file:指定prometheus的配置文件路徑
  • --web.enable-lifecycle:指定prometheus配置更改后可以進行熱加載
  • --web.enable-admin-api
  • --storage.tsdb.path:指定監控數據存儲路徑
  • --storage.tsdb.retention:指定數據保留時間?

1.5、啟動服務,并通過瀏覽器訪問驗證

?瀏覽器訪問:? http://192.168.8.187:9090

2、容器方式

2.1、安裝docker-ce

1.安裝一些系統工具
yum install -y yum-utils device-mapper-persistent-data lvm22、添加軟件信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3、安裝docker-ce
yum -y install docker-ce4、開啟服務
systemctl start docker5、查看版本
docker --version

2.2、下載Prometheus鏡像

#拉取鏡像
docker pull prom/prometheus

查看:

2.3、直接使用官方鏡像啟動,并映射prometheus.yml配置文件到本地進行管理

(1)創建prometheus.yml文件
????????# mkdir /data
????????# vim /data/prometheus.yml

global:scrape_interval:     15s scrape_configs:- job_name: 'local'metrics_path: "/metrics"scrape_interval: 5sstatic_configs:- targets: ['192.168.8.189:9090']

(2)使用官方鏡像運行

[root@k8s-node02 ~]# docker run -d --name prometheus -v /data:/data -p 9090:9090 prom/prometheus --config.file=/data/prometheus.yml
22322ff646c0aad39a1521607b7fcc2f42855f8458e2a0bdd85e938248cb7dc3

2.4、瀏覽器訪問驗證

三、Prometheus監控案例

1、監控遠程linux主機:

1.1、在遠程linux主機(就是被監控端)上安裝node_exporter組件

下載軟件
[root@agent ~]# wget -c https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz解壓軟件
[root@agent ~]# tar xf node_exporter-1.0.1.linux-amd64.tar.gz -C /usr/local/
[root@agent ~]# ln -sv /usr/local/node_exporter-1.0.1.linux-amd64/ /usr/local/node_exporter
‘/usr/local/node_exporter’ -> ‘/usr/local/node_exporter-1.0.1.linux-amd64/’創建服務運行用戶
# useradd prometheus -M -s /sbin/nologin
修改權限
# chown -R prometheus.prometheus /usr/local/node_exporter/*添加系統服務
[root@agent ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure[Install]
WantedBy=multi-user.target啟動服務
[root@agent ~]# systemctl daemon-reload
[root@agent ~]# systemctl start node_exporter.service端口檢查(默認端口)
[root@agent ~]# netstat -lnupt | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      62158/node_exporter

1.2、驗證:瀏覽器訪問http://被監控端IP:9100/metrics就可以查看到node_exporrter在被監控端收集的監控信息

1.3、添加Prometheus相關配置,采集node_exporter數據

?vim /usr/local/prometheus/prometheus.yml
????????在主配置文件的最后加上下面三行:

????????? - job_name: 'agent1'
????????? ? static_configs:
? ????????? - targets: ['192.168.8.188:9100']

# 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"]# The label name is added as a label `label_name=<label_value>` to any timeseries scraped from this config.labels:app: "prometheus"- job_name: 'agent1'static_configs:- targets: ['192.168.8.188:9100']

1.4、通過Prometheus管理界面查看:點擊status——>點擊targets——>發現多了一臺監控目標

2、監控Windows機器

2.1、安裝vmi-exporter

首先在需要監控的Windows機器上安裝wmi_exporter。wmi_exporter下載地址:https://github.com/martinlindhe/wmi_exporter/releases

安裝完畢后,會自動創建一個開機自啟的服務,默認端口為9182。

2.2、修改Prometheus主配置文件?/usr/local/prometheus/prometheus.yml

2.3、驗證

3、監控遠程MySQL?

3.1、下載并解壓mysqld_exporter組件

#下載
wget -c https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz#解壓
tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
ln -sv /usr/local/mysqld_exporter-0.12.1.linux-amd64/ /usr/local/mysqld_exporter
‘/usr/local/mysqld_exporter’ -> ‘/usr/local/mysqld_exporter-0.12.1.linux-amd64/’

3.2、安裝mariadb數據庫,并授權

下載yum install -y mariadb-server
啟動服務
systemctl enable --now mariadb
授權用戶mysql -e "grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123'"
(注意:授權ip為localhost,因為不是prometheus服務器來直接找mariadb獲取數據,而是prometheus服務器找mysql_exporter,mysql_exporter再找mariadb。所以這個localhost是指的mysql_exporter的IP)

3.3、添加至系統服務

vim /usr/lib/systemd/system/mysql_exporter.service
[Unit]
Description=mysqld_exporter
After=network.target[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure[Install]
WantedBy=multi-user.target

3.4、啟動服務

# chown -R prometheus.prometheus /usr/local/mysqld_exporter/*
# systemctl daemon-reload
# systemctl start mysql_exporter.service# netstat -lnupt | grep 9104
tcp6       0      0 :::9104                 :::*                    LISTEN      11295/mysqld_export

3.5、修改Prometheus的主配置文件?

vim /usr/local/prometheus/prometheus.yml

3.6、驗證

查看mysql_exporter在被監控端收集的監控信息:

web管理界面查看:

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

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

相關文章

Jupyter Notebook為什么適合數據分析?

Jupyter Notebook 是一款超實用的 Web 應用程序&#xff0c;在數據科學、編程等諸多領域都發揮著重要作用。它最大的特點就是能讓大家輕松創建和共享文學化程序文檔。這里說的文學化程序文檔&#xff0c;簡單來講&#xff0c;就是把代碼、解釋說明、數學公式以及數據可視化結果…

Python清空Word段落樣式的方法

在 Python 中&#xff0c;你可以使用 python-docx 庫來操作 Word 文檔&#xff0c;包括清空段落樣式。以下是幾種清空段落樣式的方法&#xff1a; 方法一&#xff1a;直接設置段落樣式為"Normal" from docx import Documentdoc Document(your_document.docx) # 打…

macOS 上是否有類似 WinRAR 的壓縮軟件?

對于習慣使用 Windows 的用戶來說&#xff0c;WinRAR 是經典的壓縮/解壓工具&#xff0c;但 macOS 系統原生并不支持 RAR 格式的解壓&#xff0c;更無法直接使用 WinRAR。不過&#xff0c;macOS 平臺上有許多功能相似甚至更強大的替代工具&#xff0c;以下是一些推薦&#xff1…

WebRtc09:網絡基礎P2P/STUN/TURN/ICE

網絡傳輸基本知識 NATSTUN&#xff08;Session Traversal Utilities for NAT&#xff09;TURNICE NAT 產生的原因 IPV4地址不夠出于網絡安全的原因 NAT種類 完全錐型NAT(Full Cone NAT)地址限制型NAT(Address Restricted Cone NAT)端口限制型NAT(Port Restricted Cone NAT…

如何添加或刪除極狐GitLab 項目成員?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 項目成員 (BASIC ALL) 成員是有權訪問您的項目的用戶和群組。 每個成員都有一個角色&#xff0c;這決定了他們在項目中可以…

用單目相機和apriltag二維碼aruco實現單目定位

目錄 一、核心流程與代碼框架 1. ?環境準備? 2. ?ArUco定位實現 3. ?AprilTag定位實現&#xff08;需額外安裝Apriltag庫&#xff09; 二、關鍵優化點 1?.亞像素角點優化 2? 多標簽聯合定位 三、性能指標&#xff08;實測&#xff09; 四、常見問題 ?檢測失敗…

tinyrenderer筆記(透視矯正)

tinyrenderer個人代碼倉庫&#xff1a;tinyrenderer個人練習代碼 引言 還要從上一節知識說起&#xff0c;在上一節中我為了調試代碼&#xff0c;換了一個很簡單的正方形 obj 模型&#xff0c;配上紋理貼圖與法線貼圖進行渲染&#xff0c;得了下面的結果&#xff1a; what&…

MySQL的內置函數與復雜查詢

目錄 前言 一、聚合函數 1.1日期函數 1.2字符串函數 1.3數學函數 1.4其它函數 二、關鍵字周邊 2.1關鍵字的生效順序 2.2數據源 2.3可以使用聚合函數的關鍵字 前言 在前面幾篇文章中&#xff0c;講解了有關MySQL數據庫、數據庫表的創建、數據庫表的數據操作等等。本文我…

見多識廣4:Buffer與Cache,神經網絡加速器的Buffer

目錄 前言傳統意義上的Buffer與Cache一言以蔽之定義與主要功能BufferCache 數據存儲策略二者對比 神經網絡加速器的bufferInput BufferWeight BufferOutput Buffer與傳統buffer的核心區別總結 前言 知識主要由Qwen和Kimi提供&#xff0c;我主要做筆記。 參考文獻&#xff1a; …

內存的位運算

示例&#xff1a;提取和設置標志位 假設我們有一個32位的整數&#xff0c;其中不同的位代表不同的標志。例如&#xff1a; 位0&#xff1a;是否開啟日志&#xff08;0表示關閉&#xff0c;1表示開啟&#xff09; 位1&#xff1a;是否啟用調試模式&#xff08;0表示禁用&#…

linux -shell原理與運用

1---shell的工作方式和功能 shell的工作方式: shell本身也是一個應用程序,存儲在/bin 或者是/user/bin中 登錄的時候 會根據/etc/passwd文件載入shell默認執行 shell啟動后,就會顯示命令提示符,等待用戶輸入命令 命令的邏輯: 首先會判斷時內部命令還是外部命令,如果是內部…

js獲取uniapp獲取webview內容高度

js獲取uniapp獲取webview內容高度 在uni-app中&#xff0c;如果你想要獲取webview的內容高度&#xff0c;可以使用uni-app提供的bindload事件來監聽webview的加載&#xff0c;然后通過調用webview的invokeMethod方法來獲取內容的高度。 以下是一個示例代碼&#xff1a; <te…

Windows系統升級Nodejs版本

什么是nodejs Node.js 是一個免費、開源、跨平臺的 JavaScript 運行時環境, 它讓開發人員能夠創建服務器 Web 應用、命令行工具和腳本。 NodeJs官網 網址&#xff1a;Node.js — 在任何地方運行 JavaScript 可以通過網址下載安裝&#xff0c;通過官網可以看到現在最新版本為22…

Relay算子注冊(在pytorch.py端調用)

1. Relay算子注冊 (C層) (a) 算子屬性注冊 路徑: src/relay/op/nn/nn.cc RELAY_REGISTER_OP("hardswish").set_num_inputs(1).add_argument("data", "Tensor", "Input tensor.").set_support_level(3).add_type_rel("Identity…

【JavaEE】網絡原理之初識(1.0)

目錄 ?編輯 局域網與廣域網 IP地址和端口號 實現簡單的服務器客戶端交互 簡單理解socket TCP和UDP的差別&#xff08;初識&#xff09; socket面對udp DatagramSocket API DatagramSocket 構造方法 DatagramSocket 方法&#xff1a; DatagramPacket API Data…

Redis數據結構ZipList,QuickList,SkipList

目錄 1.ZipList 1.2.解析Entry&#xff1a; 1.3Encoding編碼 1.4.ZipList連鎖更新問題 2.QuickList SkipList跳表 RedisObject 五種數據類型 1.ZipList redis中的ZipList是一種緊湊的內存儲存結構&#xff0c;主要可以節省內存空間儲存小規模數據。是一種特殊的雙端鏈表…

laravel 12 監聽syslog消息,并將消息格式化后存入mongodb

在Laravel 12中實現監聽Syslog消息并格式化存儲到MongoDB&#xff0c;需結合日志通道配置、Syslog解析和MongoDB存儲操作。以下是具體實現方案&#xff1a; 一、環境配置 安裝MongoDB擴展包 執行以下命令安裝必要的依賴&#xff1a; composer require jenssegers/mongodb ^4.0確…

【STM32項目實戰】一文了解單片機的SPI驅動外設功能

前言&#xff1a;在前面我有文章介紹了關于單片機的SPI外設CUBEMX配置&#xff0c;但是要想使用好SPI這個外設我們還必須對其原理性的時序有一個詳細的了解&#xff0c;所以這篇文章就補充一下SPI比較偏向底層的時序性的邏輯。 1&#xff0c;SPI簡介 SPI是MCU最常見的對外通信…

【挖洞利器】GobyAwvs解放雙手

【滲透測試工具】解放雙手&Goby配合Awvs滲透測試利器\x0a通過Goby和Awvs 解放雙手https://mp.weixin.qq.com/s/SquRK8C5cRpWmfGbIOqxoQ

LangChain4j(15)——RAG高級之跳過檢索

之前的文章中&#xff0c;我們介紹了RAG的使用&#xff0c;但是&#xff0c;每次提問時&#xff0c;都會通過RAG進行檢索。有時&#xff0c;檢索是不必要執行的&#xff0c;比如&#xff0c;當用戶只是說“你好”時。于是&#xff0c;我們需要有條件的跳過檢索過程。 跳過決策…