Prometheus(五):监控物理机并进行数据展示

目录

  • 1 ipmi export安装配置
    • 1.1 ipmi exporter简介
    • 1.2 安装
    • 1.2 创建yaml文件
    • 1.3 systemd启动配置 ipmi_exporter.service
    • 1.4 启动 ipmi_exporter 服务
    • 1.5 Prometheus配置
      • 创建target:
      • 修改Prometheus配置文件
    • 1.6 Grafana配置
    • 1.7 IPMI说明
      • 1、IPMI
      • 2、ipmitool
        • 远程电源管理
        • 远程引导
        • 读取系统状态类
        • 系统日志类
        • 启动设置类
        • 系统相关的命令
        • 网络接口相关命令
        • 通道相关命令
        • 看门狗相关命令
        • 用户管理相关命令

1 ipmi export安装配置

1.1 ipmi exporter简介

ipmi exporter是用来收集物理机信息的一个exporter,有两种收集方式,一种是安装在Prometheus server上,来进行远程收集,并把数据发送给Prometheus;另一种是安装在远程物理机上,收集单台服务器的信息发送给Prometheus。

前面提到使用 vmware exporter 收集VMware Vsphere的信息,主要是收集Vsphere上创建的虚拟机的信息等相关信息。如果想要监控 Vsphere 所在物理机是否宕机,则需要使用 impi exporter来监控

参考文档:
https://github.com/srkaviani/prometheus_exporters/tree/main/ipmi_exporter
https://github.com/prometheus-community/ipmi_exporter/tree/master
https://github.com/prometheus-community/ipmi_exporter/
ipmi exporter下载:https://github.com/prometheus-community/ipmi_exporter/releases
freeipmi参数文档:https://github.com/elitak/freeipmi

1.2 安装

注意

  • 1.此方法的ipmi exporter是安装在Prometheus server所在服务器上,来收集远程物理机的ipmi信息的
  • 2.此方法依赖freeipmi来收集ipmi信息

环境:

  • freeipmi:1.6.9
  • go:1.11.5(1.81未测试)
  • ipmi exporter:1.6.1(链接:https://github.com/prometheus-community/ipmi_exporter/releases/download/v1.6.1/ipmi_exporter-1.6.1.linux-amd64.tar.gz )
# 安装
# centos安装
# 安装freeipmi
yum -y install gcc libgcrypt-devel  
wget https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.9.tar.gz
tar -xvf freeipmi-1.6.9.tar.gz
cd freeipmi-1.6.9/
./configure
make
make install
# 建议安装
yum  -y install ipmitoolvim /etc/profile
export FREEIPMI_PATH=/usr/local/freeipmi/
export FREEIPMI_BIN=$FREEIPMI_PATH/sbin/
export PATH=$PATH:$FREEIPMI_BIN
source /etc/profile# Ubuntu安装
sudo find / -name freeipmi|xargs rm -rf
apt-get remove freeipmi
sudo dpkg --get-selections | grep freeipmi
sudo apt-get --purge remove  freeipmi
# 安装freeipmi
sudo apt update  
sudo apt -y install build-essential libgcrypt-dev
# 注意:Ubuntu22.04不使用libgcrypt11-dev,而是用libgcrypt-dev
# 不建议使用apt安装:sudo apt -y install freeipmi
wget -P /usr/local/src/ https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.9.tar.gz
cd /usr/local/src/
tar -xvf freeipmi-1.6.9.tar.gz
cd freeipmi-1.6.9/
./configure --prefix=/usr/local/freeipmi
make
make install
# 建议安装:
apt -y install ipmitool# go环境安装
wget -c https://storage.googleapis.com/golang/go1.11.5.linux-amd64.tar.gz
tar -C /usr/local/ -zxvf go1.11.5.linux-amd64.tar.gz # centos配置环境变量
vim /etc/profile.d/go.sh
export PATH=$PATH:/usr/local/go/bin
source /etc/profile.d/go.sh# Ubuntu配置环境变量
vim ~/.bashrc
export FREEIPMI_PATH=/usr/local/freeipmi
export PATH=$PATH:$FREEIPMI_PATH/sbin:/usr/local/go/bin
# 刷新使环境变量生效
source  ~/.bashrc# ipmi exporter安装
wget -P /usr/local/src/ https://github.com/prometheus-community/ipmi_exporter/releases/download/v1.6.1/ipmi_exporter-1.6.1.linux-amd64.tar.gz
cd /usr/local/src/
tar -zxf ipmi_exporter-1.6.1.linux-amd64.tar.gz
mv ipmi_exporter-1.6.1.linux-amd64 /usr/local/ipmi_exporter# freeipmi使用源码包安装后,可以做的测试:
ipmimonitoring -h xx.xx.xx.xx -u xxxx -p xxxx -a STRAIGHT_PASSWORD_KEY -l admin -D LAN_2_0
ipmimonitoring -h xx.xx.xx.xx -u xxxx -P -a STRAIGHT_PASSWORD_KEY -l admin -D LAN_2_0
bmc-info -h xx.xx.xx.xx -u xxxx -p xxxx -a STRAIGHT_PASSWORD_KEY -l admin -D LAN_2_0ipmitool -I lanplus -H xx.xx.xx.xx -U xxxx -P xxxx sensor get "CPU1 DTS"
ipmitool -I  lanplus -H xx.xx.xx.xx -U xxxx -P xxxx sol info
ipmitool -I  lanplus -H xx.xx.xx.xx -U xxxx -P xxxx dcmi power reading

freeipmi参数内容可参考文档:https://www.gnu.org/software/freeipmi/manpages/man5/freeipmi.conf.5.html
freeipmi的参数说明(不包括ipmitool,这些参数都可以

在/usr/local/freeipmi/etc/freeipmi/freeipmi.conf文件中设置):

  • -h:远程主机IP
  • -u:用户名
  • -p:密码
  • -P:回车后输入,不需要执行写在命令行里面
  • -a:输入密码的类型,支持:None、STRAIGHT_PASSWORD_KEY(输入正常的密码,无加密类型)、MD5、MD2
  • -l:权限级别,支持:USER, OPERATOR, ADMIN
  • -D:指定要使用的驱动程序类型。 当前可用的带外驱动程序是 LAN 和 LAN_2_0,它们 分别执行 IPMI 1.5 和 IPMI 2.0。当前可用的 带内驱动程序是KCS,SSIF,OPENIPMI,SUNMC和INTELDCMI。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1.2 创建yaml文件

官方文档ipmi_remote.yml地址:https://github.com/srkaviani/prometheus_exporters/blob/main/ipmi_exporter/ipmi_remote.yml

vim /usr/local/ipmi_exporter/ipmi_remote.yml
# 根据需要进行修改
modules:default:user: "xxxx"pass: "xxxx"driver: "LAN_2_0"privilege: "admin"timeout: 10000collectors:- bmc- ipmi- chassisexclude_sensor_ids:- 2- 29- 32- 50- 52- 55dcmi:# Use these settings when scraped with module=dcmi.user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN_2_0"collectors:- dcmithatspecialhost:# Use these settings when scraped with module=thatspecialhost.user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN"collectors:- ipmi- selworkaround_flags:- discretereadingcustom_args:ipmi:- "--bridge-sensors"advanced:# Use these settings when scraped with module=advanced.user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN"collectors:- ipmi- selcollector_cmd:ipmi: sudosel: sudocustom_args:ipmi:- "ipmimonitoring"sel:- "ipmi-sel"#  使用上述内容即可,下面的可以进行参考
modules:default:user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN_2_0"172.170.240.1:user: "xxxx"pass: "xxxx"privilege: "admin"driver: "LAN_2_0"collectors:- bmc- ipmi- dcmi- chassis- selcustom_args:bmc:- "bmc-info"ipmi:- "ipmimonitoring"dcmi:- "ipmi-dcmi"chassis:- "ipmi-chassis"sel:- "ipmi-sel"

参数说明:
1.modules: cloudatlas模块配置,这里配置的是 IPMI 采集器。
2.default: 默认配置,这里包含了一些通用的参数。
3.user: IPMI 用户名。
4.pass: IPMI 密码。
5.privilege: IPMI 权限,这里设置为 “admin”,表示管理员权限。其他可能的权限包括 “user”(用户权限)和 “operator”(操作员权限)。
6.driver: IPMI 驱动,这里设置为 “LAN_2_0”,表示使用网络(LAN)驱动。其他可能的驱动包括 “sci”(串行接口)和 " virtueio"(虚拟化接口)。
7.collectors: 这个部分列出了要收集的数据项(metric collectors)。在这个例子中,配置了以下数据项:

  • bmc: 基础管理控制器(BMC)数据。
  • ipmi: IPMI 传感器数据。
  • dcmi: 直接核心内存接口(DCMI)数据。
  • chassis: 机箱数据。
  • sel: 系统事件日志(System Event Log)数据。
    注意:-D处如果不指定为LAN_2_0,可能会报错:authentication type unavailable for attempted privilege level

1.3 systemd启动配置 ipmi_exporter.service

systemd启动配置 /etc/systemd/system/ipmi_exporter.service

vim /etc/systemd/system/ipmi_exporter.service[Unit]
Description=ipmi_exporter
Wants=network-online.target
After=network-online.targetStartLimitIntervalSec=500
StartLimitBurst=5[Service]
User=root
Group=root
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/ipmi_exporter/ipmi_exporter \--config.file=/usr/local/ipmi_exporter/ipmi_remote.yml \--web.listen-address=0.0.0.0:9290 \--freeipmi.path=/usr/local/freeipmi/sbin/[Install]
WantedBy=multi-user.target

1.4 启动 ipmi_exporter 服务

systemctl daemon-reload
systemctl restart ipmi_exporter.service
systemctl enable --now ipmi_exporter
systemctl status ipmi_exporter.service

1.5 Prometheus配置

创建target:

#
mkdir /usr/local/prometheus/sd_file/ipmi
vim /usr/local/prometheus/sd_file/ipmi/ipmi_targets_240.yml- targets:- xx.xx.xxx.xx- xx.xx.xxx.xxlabels:job: ipmi_exporter_240

修改Prometheus配置文件

cat prometheus.yml- job_name: ipmi_exporter_240params:module: ['default']scrape_interval: 1mscrape_timeout: 30smetrics_path: /ipmischeme: httpfile_sd_configs:- files:- /usr/local/prometheus/sd_file/ipmi_targets_240.ymlrefresh_interval: 5mrelabel_configs:- source_labels: [__address__]separator: ;regex: (.*)target_label: __param_targetreplacement: ${1}action: replace- source_labels: [__param_target]separator: ;regex: (.*)target_label: instancereplacement: ${1}action: replace- separator: ;regex: .*target_label: __address__# impi exporter安装服务器IPreplacement: xx.xx.xx.xx:9290action: replace

1.6 Grafana配置

导入模板:15765
模板地址:https://grafana.com/grafana/dashboards/15765-ipmi-exporter/

可根据需要修改模板

1.7 IPMI说明

1、IPMI

IPMI(Intelligent Platform Management Interface)
智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流。使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理;其次,操作系统不必负担传输系统状态数据的任务。IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC)),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统。简单来说,ipmi可以理解为管理物理服务器硬件的一个模块。
IPMI功能:

  • 监控服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等;
  • 可以通过串口、Modem以及Lan等远程环境管理服务器系统,如远程开关机;

2、ipmitool

ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能.

ipmitool –I open sensor list 
#命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息。
ipmitool –I open sensor thresh 
#设置ID值等于id的监测项的各种限制值。
ipmitool –I open chassis status 
#查看底盘状态,其中包括了底盘电源信息,底盘工作状态等
ipmitool –I open chassis restart_cause 
#查看上次系统重启的原因
远程电源管理
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power off 
# 关机,直接切断电源
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power soft 
# (软关机,即如同轻按一下开机按钮)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power on 
# (硬开机)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power reset 
# (硬重启)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power status 
# (获取当前电源状态)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 chassis power cycle
(注意power cycle 和power reset的区别在于前者从掉电到上电有1秒钟的间隔,而后者是很快上电)
远程引导

当次生效

ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev pxe 
# (网络引导)
ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev disk 
# (硬盘引导)
ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev cdrom 
#(光驱引导)
读取系统状态类
ipmitool sensor list   #显示系统所有传感器列表
ipmitool fru list   #显示系统所有现场可替代器件的列表
ipmitool sdr list   #显示系统所有SDRRepository设备列表 
ipmitool  pef list      #显示系统平台时间过滤的列表
系统日志类
ipmitool sel elist   #显示所有系统事件日志
ipmitool sel clear   #删除所有系统时间日志
ipmitool sel delete ID     #删除第ID条SEL
ipmitool sel time get      #显示当前BMC的时间
ipmitool sel time set  XXX  #设置当前BMC的时间
启动设置类
ipmitool chassis bootdev bios  #重启后停在BIOS 菜单
ipmitool chassis bootdev pxe #重启后从PXE启动
系统相关的命令
ipmitool mc info       #显示BMC版本信息
ipmitool bmc reset cold      #BMC 热启动
ipmitool bmc reset warmBMC    #冷启动
网络接口相关命令
ipmitool lan print 1    #显示channel1的网络配置信息
ipmitool lan set  1ipaddr 10.32.2.2    #设置channel1的IP地址
ipmitool lan  set 1 netmask 255.255.0.0   #设置channel1的netmask
ipmitool lan set 4 defgw ipaddr255.255.0.254    #设置channel4的网关
ipmitool lan set  2 defgw macaddr  <macaddr> #设置channel2的网关mac address
ipmitool lan set 2 ipsrc dhcp         #设置channel2的ip 源在DHCP
ipmitool lan set 3 ipsrc static        #设置channel2的ip是静态获得的
通道相关命令
ipmitool channel info #显示系统默认channel
ipmitool channel  authcap channel-number privilege  #修改通道的优先级别
ipmitool channel  getaccess channel-number user-id #读取用户在通道上的权限
ipmitool channel setacccess channel-number  user-id callin=on ipmi=on link=onprivilege=5   #设置用户在通道上的权限
看门狗相关命令
ipmitool  mc watchdog get #读取当前看门狗的设置
ipmitool watchdog  off   #关掉看门狗
ipmitool watchdog reset  #在最近设置的计数器的基础上重启看门狗
用户管理相关命令
ipmitool user list chan-id   #显示某通道上的所有用户
ipmitool set password <user id>[<password>] #修改某用户的密码
ipmitool disable      <user id>  #禁止掉某用户
ipmitool enable       <user id>  #使能某用户
ipmitool priv         <user id> <privilegelevel> [<channel number>] #修改某用户在某通道上的权限
ipmitool test         <user id> <16|20>[<password]> #测试用户

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++项目——集群聊天服务器项目(五)网络模块与业务模块

今天来正式书写集群聊天服务器网络模块与部分业务模块的代码 环境搭建C项目——集群聊天服务器项目(一)项目介绍、环境搭建、Boost库安装、Muduo库安装、Linux与vscode配置-CSDN博客 Json第三方库 muduo网络库 MySQL数据库 一、工程目录创建 项目通过CMake编译&#xff0c…

C语言:自定义类型:联合体和枚举

目录 联合体 联合体是什么&#xff1f; 联合体的大小计算 枚举 枚举是什么&#xff1f; 为什么要使用枚举&#xff1f; 联合体 联合体是什么&#xff1f; 联合体也是个自定义类型&#xff0c;它和结构体类似&#xff0c;都是由多个成员构成&#xff0c;可以有不同的内置…

【OJ】动归练习二

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 91.解码方法1.1 分析1.2 代码 2. 62.不同路径2.1 分析2.2 代码 3. 63.不同路径 II3.1 分析3.2 代码 1. 91.解码方法 1.1 分析 题目所述就是把一串数字反向解码为字母映射出来&#xff0c;有多少种方法。 题目也说&…

nav仿真(2)

开启仿真和建图 打开第一个窗口启动仿真&#xff1a; source devel/setup.bash export TURTLEBOT3_MODELburger roslaunch turtlebot3_gazebo turtlebot3_world.launch # 启动仿真打开第二个窗口&#xff0c;开始建图&#xff1a; source devel/setup.bash export TURTLEBOT3_…

mysql存储引擎、行锁与索引的关系

一、存储引擎概念介绍 MySQL中的数据用各种不同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎 存储引擎是MySQL将数据存储在文件系统中的存储…

个人网络防范

目录 安全事件频发根源在于背后利益链条 不仅仅是中国 网络安全事件成国际性难题 个人网络信息安全防护 四招来帮忙 首先&#xff0c;预防第一 第二&#xff0c;健康的上网浏览习惯 第三&#xff0c;WiFi安全性 第四&#xff0c;规范的文件处理 黑客攻击无孔不入&…

小程序网络视频组件video经常出现的错误解决

小程序网络视频组件错误 1.错误提示如下 3[渲染层网络层错误] Failed to load media http://www.xxx.net/download/1.mp4#devtools_no_referrer net::ERR_FAILED From server 112.126.62.195(env: Windows,mp,1.06.2401020; lib: 3.3.4)2.解决文章请参考 本文链接&#xff…

隐语技术架构

隐语架构 产品定位 算法层 计算层 密码原语 互联互通–资源层 总结

写了几个难一点的sql

写了几个难一点的sql SELECT bn.id AS book_node_id, t.version_id, bn.textbook_id, s.id AS subject_id, s.stage_id, COUNT( CASE WHEN d.document_type_id 1 AND d.scope IS NULL AND p.document_id IS NOT NULL THEN 1 END ) AS type_1_count, COUNT( CASEWHEN d.docume…

教程1_图像入门

一、读取图像文件 cv2.imread() 是 OpenCV 库中的一个函数&#xff0c;用于读取图像文件。下面是 cv2.imread() 函数的基本介绍和使用方法&#xff1a; 函数定义 cv2.imread(filename, flagscv2.IMREAD_COLOR) 参数 filename&#xff1a;要读取的图像的路径和文件名。flags…

前端理论总结(css3)——三角形/梯形 // 一边固定另一边自适应

三角形/梯形 三角形 width: 0; height: 0; border-top: 40px solid transparent; border-left: 40px solid transparent; border-right: 40px solid transparent; border-bottom: 40px solid #ff0000; 梯形 width: 50px; height: 0; border-bottom: 50px solid red; border-l…

JavaScript typeof运算符使用

typeof NaN 的数据类型是数字对象、数组、null 、日期 的数据类型是 object未定义变量、未赋值变量的数据类型为 undefined typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof NaN …

数据结构(五)——树与二叉树的应用

5.5 树与二叉树的应用 5.5.1 哈夫曼树 结点的权&#xff1a;有某种现实含义的数值。 结点的带权路径长度&#xff1a;从树的根到该结点的路径长度&#xff08;经过的边数&#xff09;与该结点上权值的乘积。 树的带权路径长度&#xff1a;树中所有叶结点的带权路径长度之和…

Spring如何解决循环依赖?

Spring中的循环引用 循环依赖&#xff1a;循环依赖其实就是循环引用,也就是两个或两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于A 循环依赖在spring中是允许存在&#xff0c;spring框架依据三级缓存已经解决了大部分的循环依赖 ①一级缓存&#xff1a;单例池…

linux系统------------Mysql数据库介绍、编译安装

目录 一、数据库基本概念 1.1数据(Data) 1.2表 1.3数据库 1.4数据库管理系统(DBMS) 数据库管理系统DBMS原理 1.5数据库系统&#xff08;DBS) 二、数据库发展史 1、第一代数据库 2、第二代数据库 3、第三代数据库 三、关系型数据库 3.1关系型数据库应用 3.2主流的…

【深度学习】Pytorch中实现交叉熵损失计算的方式总结

在PyTorch中&#xff0c;计算交叉熵损失主要有以下几种方式&#xff0c;它们针对不同的场景和需求有不同的实现方式和适用范围&#xff1a; 1. nn.CrossEntropyLoss 类 这是最常用且方便的方法&#xff0c;特别适用于多分类任务。nn.CrossEntropyLoss 实际上是同时完成了 sof…

前端理论总结(css3)——页面布局方法

瀑布流 优点&#xff1a;节省空间&#xff0c;外表美观&#xff0c;更有艺术性 对于触屏设备非常友好&#xff0c;通过向上滑动浏览 用户浏览时的观赏和思维不容易被打断&#xff0c;留存更容易 缺点&#xff1a;用户…

feign demo

直接上代码 AscendKing/springcloud-feign

Saltstack 最大打开文件数问题之奇怪的 8192

哈喽大家好&#xff0c;我是咸鱼。 今天分享一个在压测过程中遇到的问题&#xff0c;当时排查这个问题费了我们好大的劲&#xff0c;所以我觉得有必要写一篇文章来记录一下。 问题出现 周末在进行压测的时候&#xff0c;测试和开发的同事反映压测有问题&#xff0c;请求打到…

一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧

作为一名互联网技术爱好者&#xff0c;我对数据的探索充满热情。在本文中&#xff0c;我将以豆瓣读书为案例&#xff0c;详细介绍如何利用Python爬虫、Pandas和Excel这三大工具&#xff0c;一键化地实现数据采集和存储。豆瓣读书作为一个备受推崇的图书评价平台&#xff0c;拥有…