【30天精通Prometheus:一站式監控實戰指南】第16天:snmp_exporter從入門到實戰:安裝、配置詳解與生產環境搭建指南,超詳細

親愛的讀者們👋

??歡迎加入【30天精通Prometheus】專欄!📚 在這里,我們將探索Prometheus的強大功能,并將其應用于實際監控中。這個專欄都將為你提供寶貴的實戰經驗。🚀

??Prometheus是云原生和DevOps的核心監控工具,我們將從基礎概念開始,逐步涵蓋配置、查詢、告警和可視化。💪

??在接下來的30天里,我們將解鎖Prometheus的實戰技巧,通過案例和分享,助你深入理解其工作原理。📆

??目標:30天后,你將熟練掌握Prometheus,為未來的項目挑戰做好準備!💯

??這是一段精彩旅程,期待你的加入!🎉


文章目錄

  • 一、snmp_exporter概述📘
  • 二、安裝snmp_exporter💾
    • 2.1 訪問snmp_exporter官方網站 🌐
    • 2.2 選擇適合的版本🔍
    • 2.3 下載snmp_exporter??
    • 2.4 解壓安裝包📂
    • 2.5 運行snmp_exporter🚀
  • 三、snmp_exporter指標和配置詳解📖
    • 3.1 snmp.yml
    • 3.2 snmp_exporter.service
  • 四、實戰演練:生產環境搭建指南🔨
    • 4.1 創建普通用戶管理snmp_exporter👤
    • 4.2 解壓snmp_exporter.tar.gz📦
    • 4.3 將snmp_exporter集成到Prometheus配置中??
    • 4.4 更改snmp_exporter軟件包名稱??
    • 4.5 創建snmp.yml文件
    • 4.6 編輯snmp_exporter.service文件📝
    • 4.7 啟動snmp_exporter.service🔌
    • 4.8 查看服務是否正常啟動🔍
  • 相關資料下載地址📚

一、snmp_exporter概述📘

定義
??snmp_exporter是一個開源軟件,用于收集支持SNMP(Simple Network Management Protocol,簡單網絡管理協議)的設備指標。它充當Prometheus監控系統與SNMP設備之間的橋梁,定期從設備獲取數據并將其轉換為Prometheus可讀的指標數據。

功能
??數據采集:snmp_exporter能夠定期向SNMP設備(如路由器、交換機、防火墻等)發送SNMP請求,獲取特定的OID(Object Identifier)值。

??數據轉換:將采集到的SNMP數據轉換為Prometheus可以理解和處理的時間序列數據。

??指標暴露:通過HTTP或HTTPS端點暴露轉換后的指標數據,供Prometheus服務器獲取。

??配置靈活性:snmp_exporter支持通過YAML配置文件自定義要查詢的MIB對象和OIDs,甚至設置定時任務,實現定制化的數據采集。

??SNMP版本支持:支持SNMP v1、v2c和v3三種版本,以適應不同安全需求和環境。

應用場景
??網絡設備監控:用于監控路由器、交換機、防火墻等網絡設備的狀態和性能指標,如接口流量、CPU利用率、內存使用情況等。這有助于管理員及時了解設備運行狀態,預防潛在問題。

??服務器硬件監控:跟蹤服務器硬件的健康狀況,包括硬盤空間、電源狀態等。通過監控這些關鍵指標,可以確保服務器穩定運行并及時發現潛在故障。

??應用性能監控:實時查看應用的I/O性能,如數據庫、存儲系統的性能指標。這有助于評估和優化應用的運行效率。

??自動觸發警報:當特定設備或服務出現異常時,snmp_exporter可以配合Prometheus的警報機制及時通知運維團隊,以便快速響應和解決問題。

二、安裝snmp_exporter💾

2.1 訪問snmp_exporter官方網站 🌐

注意事項和常見問題
??1.環境配置:確保服務器滿足snmp_exporter的運行要求,包括操作系統兼容性和硬件資源。

??2.依賴安裝:安裝snmp_exporter之前,需要安裝相關的依賴包,如net-snmp和net-snmp-utils等,以確保SNMP功能的正常使用。根據操作系統的不同,可能需要使用特定的包管理器(如yum、apt等)來安裝這些依賴。

??3.配置文件:在安裝過程中,需要正確配置snmp_exporter的YAML配置文件,以確保能夠正確地連接到SNMP設備并收集所需的指標。配置文件中需要指定要監控的設備、SNMP版本、認證信息等。

2.2 選擇適合的版本🔍

  • 打開瀏覽器,訪問snmp_exporter的官方下載頁面,通常位于Github官方網站的snmp_exporter下:https://github.com/prometheus/snmp_exporter/releases

2.3 下載snmp_exporter??

  • 在下載頁面,你將看到不同操作系統的snmp_exporter二進制包。根據你的操作系統選擇適合的版本。例如,如果你使用的是Linux 64位系統,就選擇snmp_exporter-0.25.0.linux-arm64.tar.gz(其中x.x.x是版本號)。

2.4 解壓安裝包📂

  • 將下載的snmp_exporter壓縮包解壓到你想要安裝的目錄。你可以使用命令行工具(如tar)來完成這個步驟。解壓后,你將看到一個名為snmp_exporter-x.x.x.linux-amd64的目錄,其中包含snmp_exporter的二進制文件和其他相關文件。
tar -xzf snmp_exporter-0.25.0.linux-amd64.tar.gz

2.5 運行snmp_exporter🚀

  • 進入解壓后的目錄,并運行snmp_exporter服務器。在Linux下,你可以使用如下命令。如果一切正常,你應該能在終端看到snmp_exporter的啟動日志。
cd snmp_exporter-x.x.x.linux-amd64./snmp_exporter

三、snmp_exporter指標和配置詳解📖

  • 黑色:作為默認文本顏色。
  • 綠色:表示常規配置項
  • 橙色:表示具有互斥參數的配置項 / 建議開啟(根據自己的場景確定需求)
  • 藍色:不重要的配置項 / 建議不開啟
  • 紅色:表示關鍵信息和警告 / 最好開啟

注意:

  • 1.相關參數配置建議僅供參考,具體要以自己生產的實際需要自行配置。
  • 2.以下配置參數介紹是基于snmp_exporter-0.25.0.linux-amd64版本說明的,其它版本會有不同。

3.1 snmp.yml

auths:public_v1:community: publicsecurity_level: noAuthNoPrivauth_protocol: MD5priv_protocol: DESversion: 1public_v2:community: publicsecurity_level: noAuthNoPrivauth_protocol: MD5priv_protocol: DESversion: 2
modules:apcups:walk:- 1.3.6.1.4.1.318.1.1.1.12- 1.3.6.1.4.1.318.1.1.1.2- 1.3.6.1.4.1.318.1.1.1.3- 1.3.6.1.4.1.318.1.1.1.4- 1.3.6.1.4.1.318.1.1.1.7.2- 1.3.6.1.4.1.318.1.1.10.2.3.2- 1.3.6.1.4.1.318.1.1.26.10.2.2- 1.3.6.1.4.1.318.1.1.26.4.3- 1.3.6.1.4.1.318.1.1.26.6.3- 1.3.6.1.4.1.318.1.1.26.8.3get:- 1.3.6.1.4.1.318.1.1.1.8.1.0metrics:- name: upsOutletGroupStatusTableSizeoid: 1.3.6.1.4.1.318.1.1.1.12.1.1type: gaugehelp: The number of outlet groups for the UPS. - 1.3.6.1.4.1.318.1.1.1.12.1.1- name: upsOutletGroupStatusIndexoid: 1.3.6.1.4.1.318.1.1.1.12.1.2.1.1type: gaugehelp: The index to the outlet group entry. - 1.3.6.1.4.1.318.1.1.1.12.1.2.1.1indexes:- labelname: upsOutletGroupStatusIndextype: gaugelookups:- labels:- upsOutletGroupStatusIndexlabelname: upsOutletGroupStatusNameoid: 1.3.6.1.4.1.318.1.1.1.12.1.2.1.2type: DisplayString- labels: []labelname: upsOutletGroupStatusIndex......

auths

  • public_v1 和 public_v2
    ??自定義的認證名稱,可以根據需要進行命名
  • community: public
    ??SNMP 團體字符串,相當于密碼,用于 SNMP v1 和 v2c 的身份驗證
  • security_level: noAuthNoPriv
    ??安全級別,noAuthNoPriv 表示不進行身份驗證和加密
  • auth_protocol: MD5
    ??身份驗證協議,雖然這里指定了 MD5,但在 noAuthNoPriv 安全級別下它實際上不會被使用
  • priv_protocol: DES
    ??加密協議,同樣地,在 noAuthNoPriv 安全級別下,DES 也不會被使用
  • version: 1
    ??SNMP 版本,可以是 1、2 或 3

modules

  • apcups
    ??一個自定義的模塊名稱,代表 APC UPS 設備
  • walk
    ??一個 OID 列表,snmp_exporter 會遍歷這些 OID 并收集它們的信息。這些 OID 通常對應于 SNMP MIB 中的表或組
  • get
    ??一個 OID 列表,snmp_exporter 會直接獲取這些 OID 的值,而不是遍歷。這些 OID 通常對應于單個值,而不是表
  • metrics
    ??定義如何從收集的 SNMP 數據中生成 Prometheus 指標
    • name: upsOutletGroupStatusOutletType
      ??Prometheus 指標的名稱
    • oid: 1.3.6.1.4.1.318.1.1.1.12.1.2.1.5
      ??對應的 SNMP OID
    • type: gauge
      ??指標類型,如 gauge(表示一個可以任意變化的數值)、counter(表示一個只會增加的數值)等
    • help
      ??指標的描述信息
    • indexes
      ??定義指標的索引,通常用于處理 SNMP 表。每個索引包含一個 labelname(標簽名稱)和一個類型
    • lookups
      ??用于從其他 OID 查找額外的標簽值。每個查找包含一個或多個 labels(用于查找的 OID),一個 labelname(生成的標簽名稱),一個 oid(查找的 OID),和一個類型(如 DisplayString)
    • enum_values
      ??
      • 1: upsSwitchedOutletGroup
        ??用于將數字值映射到更具可讀性的字符串。在這個例子中,數字 1 被映射到字符串 upsSwitchedOutletGroup
      • 2: upsMainOutletGroup
        ??數字 2 被映射到 upsMainOutletGroup。

3.2 snmp_exporter.service

  • - -[no-]snmp.wrap-large-counters
    ??控制是否將大計數器(如接口流量計數器)的值進行“包裝”處理,以防止計數器溢出。當啟用時,如果計數器的值達到其數據類型的最大值并回繞到零,snmp_exporter 會嘗試正確處理這種情況,以便在 Prometheus 中得到連續增長的計數器值。加上 no- 前綴會禁用這個功能
  • - -snmp.source-address=“”
    ??設置 SNMP 請求的源 IP 地址。在某些網絡環境中很有用,特別是當 SNMP 設備需要基于源地址進行訪問控制時。留空則表示使用默認的網絡接口地址
  • - -config.file=snmp.yml
    ??指定包含 SNMP 設備和模塊配置的文件路徑。這個文件定義了要監控的設備列表、使用的 SNMP 模塊以及其他相關配置
  • - -[no-]dry-run
    ??啟用這個選項后,snmp_exporter 會加載配置并驗證其有效性,但不會實際執行任何 SNMP 請求或暴露指標。主要用于測試配置文件的正確性。加上 no- 前綴會禁用這個功能
  • - -snmp.module-concurrency=1
    ??設置同時執行的 SNMP 請求的并發數。這個值可以根據你的系統和網絡條件進行調整,以提高數據采集的效率。但是過高的并發數可能會導致資源消耗過多或網絡擁塞
  • - -web.telemetry-path=“/metrics”
    ??指定暴露 Prometheus 指標的 HTTP 路徑。默認情況下,這個路徑是 /metrics
  • - -[no-]web.systemd-socket
    ??當這個選項啟用時,snmp_exporter 會使用 systemd 提供的 socket 激活功能來監聽網絡請求。通常用于與 systemd 的服務管理集成。加上 no- 前綴會禁用這個功能,使得 snmp_exporter 直接監聽指定的網絡地址和端口。
  • - -web.listen-address=:9116
    ??設置 snmp_exporter 監聽的 IP 地址和端口。:9116 表示監聽所有可用的網絡接口上的 9116 端口。可以根據需要更改這個地址和端口
  • - -web.config.file=“”
    ??用于指定 web 服務器的配置文件,在 snmp_exporter 的上下文中不常用。留空表示不使用額外的 web 配置。

四、實戰演練:生產環境搭建指南🔨

4.1 創建普通用戶管理snmp_exporter👤

useradd deploy

4.2 解壓snmp_exporter.tar.gz📦

注意:
??我的是x86,所以使用snmp_exporter-0.25.0.linux-amd64.tar.gz,您可以使用uname -a命令查看系統架構

tar xvf snmp_exporter-0.25.0.linux-amd64.tar.gz -C /home/deploy/

4.3 將snmp_exporter集成到Prometheus配置中??

??將snmp_exporter集成到Prometheus配置中,確保數據能夠正常采集。編輯Prometheus的配置文件(通常是prometheus.yml),在scrape_configs部分添加snmp_exporter的配置。告訴Prometheus將采集snmp_exporter:9116 的數據。

  - job_name: 'snmp_exporter'static_configs:- targets:- targets: ["localhost:9116 "]labels:exporter: snmp_exporter

4.4 更改snmp_exporter軟件包名稱??

mv snmp_exporter-0.25.0.linux-amd64 /home/deploy/snmp_exporter

4.5 創建snmp.yml文件

??這個文件太大了,可自行從百度網盤下載snmp.yml

4.6 編輯snmp_exporter.service文件📝

cat > /etc/systemd/system/snmp_exporter.service <<EOF
[Unit]
Description=Snmp Exporter
After=network.target[Service]
Type=simple
User=deploy
Group=deploy
ExecStart=/home/deploy/snmp_exporter/snmp_exporter \
--config.file=/home/deploy/snmp_exporter/snmp.yml \
--web.listen-address=:9116
ExecReload=/bin/kill -HUP
Restart=on-failure[Install]
WantedBy=multi-user.target
EOF

4.7 啟動snmp_exporter.service🔌

sudo systemctl daemon-reloadsudo systemctl enable --now snmp_exporter.service

4.8 查看服務是否正常啟動🔍

# 查看service服務是否啟動
sudo systemctl status snmp_exporter.service# 查看端口是否存在
sudo ss -ntulp | grep 9116

相關資料下載地址📚

  • 官方文檔:https://prometheus.io/docs/introduction/overview/
  • 下載地址:https://github.com/prometheus/prometheus/releases/tag/v2.52.0
  • 文檔地址:https://prometheus.io/docs/prometheus/latest/installation/
  • 離線包下載鏈接:https://pan.baidu.com/s/1ANF_AlFnM5_FMIbKBuzBmg 提取碼:yqpt

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

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

相關文章

【java11】java11新特性之增強String的API

Java11在String類上引入了一系列新的API增強&#xff0c;這些改進顯著提升了開發者在處理字符串時的便捷性和效率。 以下是Java11中增強String API的主要新特性&#xff1a; String.repeat()&#xff1a;重復給定次數的字符串。返回連接的字符串。String.isBlank()&#xff1…

ldap協議(常用于統一身份認證)與dict協議(在線詞典)

文章目錄 LDAPDICT LDAP LDAP&#xff08;Light Directory Access Portocol&#xff09;&#xff0c;輕量目錄訪問協議。 目錄是一個為查詢、瀏覽和搜索而優化的數據庫&#xff0c;它成樹狀結構組織數據&#xff0c;類似文件目錄一樣。 目錄數據庫和關系數據庫不同&#xff0c…

spring security 使用記錄

spring security 使用記錄 Bad credentials配置類密碼匹配 Bad credentials org.springframework.security.authentication.BadCredentialsException: Bad credentialsat org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticatio…

Docker安裝極簡版(三分鐘搞定)

什么是Docker? Docker是一個開源的應用容器引擎&#xff0c;它允許開發者打包他們的應用以及依賴包到一個可移植的容器中&#xff0c;然后發布到任何流行的Linux機器上&#xff0c;也可以實現虛擬化。容器是完全使用沙箱機制&#xff0c;相互之間不會有任何接口。 化。容器是…

日志脫敏功能

前言 數據安全尤為重要&#xff0c;最為簡單的防線就是防止重要信息&#xff08;身份證、手機號、姓名等&#xff09;明文顯示&#xff0c;對此需要在數據庫層、日志層等做好數據加解密。 思路 1、編寫需加密的正則模板、加密字段 2、重寫ch.qos.logback.classic.pattern.Me…

簡易圖像處理器的設計

1 概述 Python是一種高級、通用、解釋型的編程語言&#xff0c;由Guido van Rossum于1991年創造。它被設計為易讀易寫的語言&#xff0c;具有簡潔而清晰的語法&#xff0c;使得它成為許多領域的首選語言&#xff0c;如Web開發、科學計算、人工智能、數據分析等。結合本科階段以…

三維地圖校內導航系統解決方案

在如今的數字化時代&#xff0c;越來越多的學校開始實施智慧校園計劃&#xff0c;旨在為學生和教師提供更高效、便捷的學習和教學環境。智慧校園運用互聯網、大數據、人工智能等技術&#xff0c;對校園內各信息進行收集、整合、分析和應用&#xff0c;實現教學、管理、服務等多…

【matlab】繪圖插入并放大/縮小子圖

參考鏈接 代碼分為兩個&#xff1a;繪圖代碼與magnify.m 繪圖代碼就是普通的繪圖代碼&#xff0c;以下為例 %https://zhuanlan.zhihu.com/p/655767542 clc clear close all x 0:pi/100:2*pi; y1 sin(x); plot(x,y1,r-o); hold on y2sin(x)-0.05; y3sin(x)0.05; xlim([0 2*…

C#關鍵字概覽

C#是一種面向對象的編程語言&#xff0c;由微軟開發并作為.NET框架的一部分。它具有豐富的關鍵字&#xff0c;用于定義程序的結構和行為。本文將詳細介紹C#中的關鍵字&#xff0c;包括基本關鍵字、上下文關鍵字以及它們在C#編程中的使用方式。 訪問修飾符 訪問修飾符控制成員…

Python變量age:深入探索其內涵與運用

Python變量age&#xff1a;深入探索其內涵與運用 在Python的世界里&#xff0c;變量age不僅是一個簡單的標識符&#xff0c;它更是一個承載著豐富信息和功能的實體。今天&#xff0c;我們就來深入探索這個看似簡單的age變量&#xff0c;揭示其背后的奧秘和魅力。 四個方面&am…

供應SKYA21001思佳訊芯片現貨

長期供應各進口品牌芯片現貨&#xff1a; SKYA21001 QM11024TR13 QM12113TR13 QM42391 QM45392 QM28005 RF8020TR13 QM77033DTR13 QM56021TR13-5K 885171 QM77043 QM78207 QM77038TR13 SKY58081-11 QPF5752QTR13-5K RF7198TR13-5K SKY58255-11 SKY85720-11 …

Ubuntu中安裝和配置SSH的完全指南

目錄 前言 第1步&#xff1a;安裝SSH服務器 第2步&#xff1a;檢查防火墻設置 第3步&#xff1a;連接到SSH服務器 第4步&#xff1a;配置SSH服務器&#xff08;可選&#xff09; 更改SSH端口 禁用root登錄 第5步&#xff1a;公鑰認證&#xff08;建議&#xff09; 結論…

XSS Challenges 闖關游戲環境準備:深入指南

在網絡安全領域&#xff0c;理解并掌握跨站腳本攻擊&#xff08;XSS&#xff09;的防御技巧至關重要。為了幫助學習者深入實踐XSS攻擊與防御&#xff0c;“XSS Challenges” 闖關游戲提供了一個實操平臺。本文將詳細介紹如何準備這一環境。 1. 環境準備概述 XSS Challenges 闖…

Kubernetes 之 Secret

Kubernetes 之 Secret Secret 的定義 Secret 解決了密碼、token、秘鑰等敏感數據的配置問題&#xff0c;它避免了把這些敏感數據直接暴露在鏡像或者 Pod 的配置文件中。但是它只是一種相對安全的策略&#xff0c;我們還是可以在容器內找到這些信息。 Secret 的認證方式 認證…

eclipse-向Console控制臺輸出信息

首先這里主要用到的是org.eclipse.ui.console這個包&#xff0c;所以現在順道先來了解一下&#xff1a; org.eclipse.ui.console是一個可擴展的console視圖插件&#xff0c;利用它可以實現各種console&#xff0c;并把它們顯示出來。該插件本身就實現了一個Message Console&…

本地 Java API 訪問云上 HDFS 集群的問題與解決

前言 這篇文章默認是已經在云上配置好了 Haoop 集群&#xff0c;因此本文主要是記錄一些可能會出現錯誤的地方。 如果還不會配置 Hadoop 集群&#xff0c;那么可以參考本專欄的另一篇文章&#xff1a;云上配置 Hadoop 集群詳解 另外在進行本文的學習之前也建議先看看該文章&…

邊緣計算的AI小板——OrangePi AI Pro

簡介 OrangePi AI Pro是一款基于Allwinner H6處理器的嵌入式AI計算設備&#xff0c;適用于物聯網和邊緣計算。它具有強大的性能、低功耗、多接口和小尺寸。 本文分為三個部分&#xff1a; 一、對該板進行簡單的開箱介紹。 二、 將SD卡中的系統遷移到由于該板支持SD卡、SSD…

必看——怎么讓網站實現HTTPS訪問?

讓網站實現HTTPS訪問的步驟可以簡化為以下幾個基本步驟&#xff0c;非常適合非技術背景人士理解&#xff1a; 1. 申請SSL證書&#xff1a; - SSL證書是實現HTTPS的關鍵&#xff0c;它能加密網站數據&#xff0c;保證用戶信息的安全。你可以從一些提供免費SSL證書的機構&#xf…

Spring boot集成mybatis

Spring boot集成mybatis maven依賴 我的spring boot版本是2.5.0&#xff0c;集成mybatis&#xff0c;首先需要數據庫的支持&#xff0c;這里我選擇mysql數據庫&#xff0c;版本是8.0.11&#xff0c;然后使用druid連接池&#xff0c;其次就需要加上mybatis的依賴。 <!--mys…

[ue5]建模場景學習筆記(2)——用vectornoise降低重復率

1.問題分析&#xff1a; 利用改uv的方式降低重復率并不理想&#xff0c;在一定程度上的確能夠達到降低重復率的效果&#xff0c;但遠看仍然有較清晰的重復效果&#xff0c;嘗試優化一下。 2.操作實現&#xff1a; 1.首先先看一下修改后的效果&#xff1a; 這是未修改前&#…